پرش به مطلب اصلی

مشارکت

منبع این مستندات برای هر کسی که بخواهد تغییرات را مشارکت کند باز است! تنها چیزی که نیاز دارید یک حساب GitHub و کمی وقت آزاد است. حتی نیازی به دانستن Git ندارید، می‌توانید همه چیز را از رابط وب انجام دهید!

اگر می‌خواهید کمک کنید زبان خاصی را نگهداری کنید، یک PR علیه فایل CODEOWNERS باز کنید و خط برای دایرکتوری زبان خود با نام کاربری‌تان اضافه کنید.

ویرایش محتوا

در پایین هر صفحه، دکمه‌ای هست که شما را به صفحه GitHub برای ویرایش می‌برد:

Edit this page link present on each wiki page

مثلاً، کلیک روی این در SetVehicleAngularVelocity شما را به این صفحه می‌برد که ویرایشگر متنی برای ایجاد تغییرات در فایل ارائه می‌دهد (فرض کنید به GitHub لاگین کرده‌اید).

ویرایش خود را انجام دهید و "Pull Request" ارسال کنید این یعنی نگهدارندگان Wiki و سایر اعضای جامعه می‌توانند تغییر شما را بررسی کنند، بحث کنند آیا نیاز به تغییرات اضافی دارد یا نه و سپس آن را ادغام کنند.

اضافه کردن محتوای جدید

اضافه کردن محتوای جدید کمی پیچیده‌تر است. می‌توانید به دو روش انجام دهید:

رابط GitHub

هنگام مرور دایرکتوری در GitHub، دکمه Add file در گوشه بالا راست لیست فایل وجود دارد:

Add file button

می‌توانید فایل Markdown که قبلاً نوشته‌اید آپلود کنید یا مستقیماً در ویرایشگر متن GitHub بنویسید.

فایل باید پسوند .md داشته باشد و شامل Markdown باشد. برای اطلاعات بیشتر در مورد Markdown، این راهنما را بررسی کنید.

وقتی انجام شد، "Propose new file" را بزنید و Pull Request برای بررسی باز خواهد شد.

Git

اگر می‌خواهید از Git استفاده کنید، تمام آنچه نیاز دارید clone کردن repository Wiki با:

git clone https://github.com/openmultiplayer/wiki.git

آن را در ویرایشگر مورد علاقه خود باز کنید. Visual Studio Code را توصیه می‌کنم زیرا ابزارهای عالی برای ویرایش و فرمت کردن فایل‌های Markdown دارد. همان طور که می‌بینید، من دارم این را با Visual Studio Code می‌نویسم!

Visual Studio Code markdown preview

دو extension برای بهتر کردن تجربه‌تان توصیه می‌کنم:

  • markdownlint توسط David Anson - این extension ای است که مطمئن می‌شود Markdown شما درست فرمت شده. از برخی اشتباهات نحوی و معنایی جلوگیری می‌کند. همه هشدارها مهم نیستند، اما برخی می‌توانند به بهبود خوانایی کمک کنند. قضاوت بهتری استفاده کنید و اگر شک دارید، از reviewer بپرسید!
  • Prettier توسط Prettier.js Team - این formatter ای است که خودکار فایل‌های Markdown شما را فرمت می‌کند تا همه از style یکسان استفاده کنند. repository Wiki تنظیماتی در package.json دارد که extension باید خودکار استفاده کند. مطمئن شوید "Format On Save" را در تنظیمات ویرایشگر فعال کنید تا فایل‌های Markdown خودکار هر بار که ذخیره می‌کنید فرمت شوند!

نکات، راهنمایی‌ها و قراردادها

لینک‌های داخلی

از URL مطلق برای لینک‌های بین سایت استفاده نکنید. از مسیرهای نسبی استفاده کنید.

  • To be used with [OnPlayerClickPlayer](https://www.open.mp/docs/scripting/callbacks/OnPlayerClickPlayer)
  • To be used with [OnPlayerClickPlayer](../callbacks/OnPlayerClickPlayer)

../ یعنی "یک دایرکتوری بالا برو" پس اگر فایلی که ویرایش می‌کنید داخل دایرکتوری functions است و به callbacks لینک می‌دهید از ../ استفاده می‌کنید تا به scripting/ بروید سپس callbacks/ تا دایرکتوری callbacks را وارد کنید، سپس نام فایل (بدون .md) callback که می‌خواهید لینک کنید.

تصاویر

تصاویر در زیردایرکتوری داخل /static/images قرار می‌گیرند. سپس وقتی تصویری را در ![]() لینک می‌کنید فقط از /images/ به عنوان مسیر پایه استفاده می‌کنید (نیازی به static نیست آن فقط برای repository است).

اگر شک دارید، صفحه دیگری که از تصاویر استفاده می‌کند بخوانید و نحوه انجام آن را کپی کنید.

Metadata

اولین چیز در هر سندی در اینجا باید metadata باشد:

---
title: My Documentation
sidebar_label: My Documentation
description: This is a page about stuff and things and burgers, yay!
---

هر صفحه باید title و description داشته باشد.

برای لیست کامل آنچه می‌تواند بین --- باشد، مستندات Docusaurus را بررسی کنید.

سرتیترها

سرتیتر سطح 1 (<h1>) با # ایجاد نکنید زیرا خودکار تولید می‌شود. اولین سرتیتر شما همیشه باید ## باشد

  • # My Title

    This is documentation for ...

    # Sub-Section
  • This is documentation for ...

    ## Sub-Section

از Code Snippets برای مراجع فنی استفاده کنید

هنگام نوشتن پاراگرافی که شامل نام توابع، اعداد، عبارات یا چیزی که زبان نوشتاری استاندارد نیست، آنها را با `backticks` مثل این احاطه کنید. این جدا کردن زبان برای توصیف چیزها از مراجع به عناصر فنی مانند نام توابع و قطعات کد را آسان‌تر می‌کند.

  • The fopen function will return a value with a tag of type File:, there is no problem on that line as the return value is being stored to a variable also with a tag of File: (note the cases are the same too). However on the next line the value 4 is added to the file handle. 4 has no tag [...]

  • The fopen function will return a value with a tag of type File:, there is no problem on that line as the return value is being stored to a variable also with a tag of File: (note the cases are the same too). However on the next line the value 4 is added to the file handle. 4 has no tag

در مثال بالا، fopen نام تابع است، نه کلمه انگلیسی، پس احاطه کردن آن با علامت‌گذار code snippet کمک می‌کند آن را از محتوای دیگر متمایز کند.

همچنین، اگر پاراگراف به بلاک کد مثال اشاره می‌کند، این به خواننده کمک می‌کند کلمات را با مثال مرتبط کند.

جداول

اگر جدولی سرتیتر دارد، در قسمت بالا می‌روند:

  • |         |                                      |
    | ------- | ------------------------------------ |
    | Health | Engine Status |
    | 650 | Undamaged |
    | 650-550 | White Smoke |
    | 550-390 | Grey Smoke |
    | 390-250 | Black Smoke |
    | < 250 | On fire (will explode seconds later) |
  • | Health  | Engine Status                        |
    | ------- | ------------------------------------ |
    | 650 | Undamaged |
    | 650-550 | White Smoke |
    | 550-390 | Grey Smoke |
    | 390-250 | Black Smoke |
    | < 250 | On fire (will explode seconds later) |

مهاجرت از SA-MP Wiki

بیشتر محتوا منتقل شده، اما اگر صفحه‌ای را گم شده پیدا کردید، در اینجا راهنمای کوتاهی برای تبدیل محتوا به Markdown است.

گرفتن HTML

  1. این دکمه را کلیک کنید

    (Firefox)

    image

    (Chrome)

    image

  2. بالای سمت چپ صفحه اصلی wiki، در حاشیه چپ یا گوشه تا #content را ببینید hover کنید

    image

    یا برای <div id=content> جستجو کنید

    image

  3. HTML داخلی آن element را کپی کنید

    image

    حالا شما فقط کد HTML برای محتوای واقعی صفحه، چیزی که به آن اهمیت می‌دهیم، دارید و می‌توانید آن را به Markdown تبدیل کنید.

تبدیل HTML به Markdown

برای تبدیل HTML ساده (بدون جدول) به Markdown استفاده کنید:

https://mixmark-io.github.io/turndown/

image

^^ توجه کنید حالا جدول را کاملاً خراب کرده...

جداول HTML به جداول Markdown

چون ابزار بالا از جداول پشتیبانی نمی‌کند، از این ابزار استفاده کنید:

https://jmalarcon.github.io/markdowntables/

و فقط element <table> را کپی کنید در:

image

تمیز کردن

تبدیل احتمالاً کامل نخواهد بود. پس باید کمی تمیز کردن دستی انجام دهید. extension های فرمت فهرست شده بالا باید با آن کمک کنند اما همچنان ممکن است نیاز داشته باشید کمی زمان صرف کار دستی کنید.

اگر وقت ندارید، نگران نباشید! پیش‌نویس ناتمام ارسال کنید و شخص دیگری می‌تواند از جایی که رها کردید ادامه دهد!

توافقنامه مجوز

همه پروژه‌های open.mp توافقنامه مجوز مشارکت‌کننده دارند. این اساساً فقط یعنی موافقت می‌کنید اجازه دهید ما از کار شما استفاده کنیم، و آن را تحت مجوز منبع باز قرار دهیم. وقتی برای اولین بار Pull Request باز می‌کنید، ربات CLA-Assistant لینکی پست می‌کند جایی که می‌توانید توافقنامه را امضا کنید.