1. "لینکی برای دانلود سادهی یک کتاب" همیشه به معنی لینکی به یک کتاب *رایگان* نیست. لطفا فقط محتوای رایگان را قرار دهید. مطمئن شوید که این محتوا رایگان است. ما لینکهایی را که وارد کردن ایمیل کاری را برای دانلود کتاب *اجباری* کردهاند نمیپذیریم اما اگر بدون اجبار، این ایمیل را بخواهند، در این مخزن فهرستشان میکنیم.
2. نیاز نیست گیت بلد باشید: اگر چیز جذابی پیدا کردید که *در این مخزن وجود ندارد*، یک [Issue](https://github.com/EbookFoundation/free-programming-books/issues) با نوشتن لینکها درست کنید.
3. ما پنج نوع فهرست داریم. فهرست درست را انتخاب کنید:
* *کتابها* : PDF، HTML، ePub، سایت بر اساس gitbook.io، یک مخزن گیت و غیره.
* *دورهها* : دوره محتوایی آموزشی است که کتاب نیست. مثلا [این یک دوره است](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/).
* *آموزشهای تعاملی* : وبسایتی تعاملی که به کاربر اجازهی تایپ کد یا دستور میدهد و نتیجه را ارزیابی میکند (منظور ما از "ارزیابی"، "نمرهدهی" نیست). مثلا: [Try Haskell](http://tryhaskell.org), [Try GitHub](http://try.github.io).
* *مجموعه مشکلات و برنامهنویسی رقابتی* : وبسایت یا نرمافزاری که به شما امکان بررسی مهارتهای برنامهنویسی را با کمک حل مشکلات ساده یا پیچیده، با یا بدون بررسی کد، با یا بدون مقایسهی نتایج با کاربران دیگر میدهد.
5. GitHub Actions تستهایی را اجرا میکند که مطمئن شود **فهرست شما الفبایی است** و **قوانین فرمتبندی رعایت شده است**. **مطمئن شوید که** تغییرات شما تستها را با موفقیت گذرانده است.
* مطمئن شوید که یک کتاب رایگان است. اگر لازم بود، دوباره هم بررسی کنید. اگر دربارهی علت این که فکر میکنید کتاب رایگان است در پولریکوئست (PR)، کامنت بگذارید، به ادمینها کمک کردهاید.
1. با همتای `http` همان لینک *جایگزینش کنید* (چون پذیرش استثناقائل شدن برای آن وبسایت در دستگاههای موبایل سخت است).
2. اگر نسخهی `http` ندارد اما همچنان با `https` و اضافه کردن استثناقائلشدن برای آن وبسایت در مرورگر یا نادیده گرفتن هشدار قابل دسترس است، *به همان حالت بگذاریدش*
* اگر لینکی در چندین فرمت وجود داشت، لینکی جدا با یادداشتی دربارهی هر فرمت قرار دهید.
* اگر منبعی در جاهای دیگری از اینترنت وجود دارد
* از لینک معتبرترین منبع استفاده کنید (این یعنی وبسایت نویسنده بهتر از وبسایت ویراستار و وبسایت ویراستار بهتر از وبسایت سوم شخص است)
* اگر به ویرایشهای مختلف لینک شده است و شما معتقدید این ویرایشها به حد کافی متفاوت هستند که هر دو نگه داشته شوند، یک لینک جدا با یادداشتی دربارهی هر ویرایش بنویسید (برای مشارکت در فرمتبندی [Issue #2353](https://github.com/EbookFoundation/free-programming-books/issues/2353) را ببینید).
* کامیتهای تکی (یک کامیت اضافه کردن/ حذف کردن/ تغییر دادن) بهتر از کامیتهای بزرگ هستند. نیاز نیست کامیتهای خود را قبل از ثبت یک پیآر خرد کنید (ما به دنبال اجباری کردن این قانون نیستیم چون این قانون فقط به خاطر راحتی نگهدارندگان مخزن است)
* اگر کتاب قدیمی است، تاریخ انتشار را در کنار عنوان بنویسید.
* نام نویسنده یا نویسندگان را در صورت امکان بنویسید. میتوانید فهرست نویسندگان را با "و همکاران" (به انگلیسی: "`et al.`") کوتاه کنید.
* اگر کتاب هنوز تمام نشده است و هنوز روی آن کار میشود، عبارت "`in process`" را همان طور که در [پایین صفحه](#in_process) آمده به آن اضافه کنید.
* اگر پیش از دانلود، نشانی ایمیل یا ساخت حساب کاربری خواسته میشود، در پرانتز توضیح متناسبی بنویسید. مثلا: `(نشانی ایمیل *خواسته میشود* اما اجباری نیست)`.
* همه فهرستها فایلهای ".md" هستند. سعی کنید دستور زبان [Markdown](https://guides.github.com/features/mastering-markdown/) را یاد بگیرید. ساده است!
* همه فهرستها با یک فهرست محتوایی شروع میشود. ایده این است که همه بخشها و زیربخشها در این فهرست محتوایی لیست و لینک شوند. این فهرست محتوایی را به ترتیب الفبایی قرار دهید.
* بخشها از تیترهای سطح 3 (`###`) استفاده میکنند و زیربخشها از تیترهای سطح 4 (`###`).
* قوانین فرمتبندی از طریق [GitHub Actions](https://docs.github.com/en/actions) با استفاده از [fpb-lint](https://github.com/vhf/free-programming-books-lint) بررسی میشوند ([`.github/workflows/fpb-lint.yml`](.github/workflows/fpb-lint.yml) را ببینید)
* اگر بیش از یک فایل را مشخص کردید، نتایج بیلد بر اساس نتیجه آخرین فایل بررسیشده خواهد بود. دقت کنید که ممکن است به همین علت، نتیجه سبز را ببینید. پس برای اطمینان لاگ بیلد را با کلیک روی "Show all checks" -> "Details" در پایان پول ریکوئست (PR) ببینید.