Add RTL/LTR Markdown linter for mixed-direction text consistency and PR annotation (#11877)

* Add RTL/LTR Markdown linter for mixed-direction text consistency and PR annotation

Introduce a Python-based linter (scripts/rtl_ltr_linter.py) to automatically detect and annotate issues related to mixed Right-To-Left (RTL) and Left-To-Right (LTR) text in Markdown files. The linter analyzes list items, book entries, and metadata for potential bidirectional text rendering problems, such as missing Unicode directionality markers (RLM/LRM) and improper handling of LTR keywords or symbols in RTL contexts.

Key features:
- Scans all Markdown files in the repository, with full logs saved as workflow artifacts.
- Annotates only changed or added lines in pull requests, providing targeted feedback in the GitHub Actions Job Summary.
- Detects common RTL/LTR issues, including:
  - Missing directionality markers after LTR keywords (e.g., "HTML") or symbols (e.g., "C#") in RTL text.
  - BIDI (bidirectional) mismatches that may affect text display.
  - Incorrect ordering of author names and metadata in RTL contexts.
- Configurable via rtl_linter_config.yml for keywords, symbols, and severity levels.
- Includes a GitHub Actions workflow (rtl-ltr-linter.yml) for automated checks on PRs.

* Add test cases for RTL/LTR linter in English and Arabic book lists

Add sample entries to free-programming-books-en.md and free-programming-books-ar.md to test the RTL/LTR Markdown linter.
These test cases include various combinations of RTL and LTR text, keywords, symbols, and metadata to verify that the linter correctly detects directionality issues and outputs the expected logs and annotations.

* Restore original book lists after RTL/LTR linter test cases

Revert test entries in free-programming-books-en.md and free-programming-books-ar.md, restoring the original book lists. This commit removes temporary test data used for validating the RTL/LTR Markdown linter, preparing the repository for merging the PR with a clean state.

No functional changes to the linter or configuration files; only test content has been removed.

* Update RTL/LTR linter workflow and script: run only on RTL file changes or "RTL" label, fail only on errors

The GitHub Actions workflow for the RTL/LTR Markdown linter now runs only if:
- The PR modifies .md files related to RTL languages (ar, he, fa, ur), or
- The PR has the "RTL" label.
The linter script has been updated to fail the check only if errors are found on changed lines, not for warnings.

* Only upload linter artifact if linter step runs

Prevent warning about missing artifact by uploading the linter output log only if the linter step was executed (success or failure). This avoids unnecessary warnings when the linter is skipped because no RTL files were changed and no RTL label is present.

* Test workflow: modify non-RTL markdown file

Modified free-programming-books-en.md to verify that the RTL/LTR linter workflow does not run when only non-RTL markdown files are changed and the "RTL" label is not present.

* Test workflow: modify RTL markdown file to trigger linter

Modified free-programming-books-ar.md to verify that the RTL/LTR linter workflow runs as expected when an RTL markdown file is changed.

* Fix RTL/LTR BIDI issues in some markdown files

Applied directional markers (‎, ‏) and other formatting fixes to resolve BIDI (bidirectional text) errors and warnings reported by the linter in several .md files.

* Fix workflow: upload linter log only if linter step has not been skipped

Updated the workflow to upload the linter output artifact only when the linter step was actually executed (not skipped)

* Add debug step to check linter outcome in workflow

Added a debug step after the linter execution in the workflow to print the outcome and conclusion of the run_linter step.

* Set continue-on-error for linter step to allow artifact upload and debug

* Remove workflow debug step and update markdown file

Removed the debug step from the RTL/LTR linter workflow and applied further changes to a markdown file.

* Fix RTL/LTR BIDI issues in some markdown files

Applied directional markers (‎, ‏) and other formatting fixes to resolve BIDI (bidirectional text) errors and warnings reported by the linter in several .md files. This commit is a second batch of corrections to improve RTL/LTR rendering and pass the linter checks.

* Fix RTL/LTR BIDI issues in some markdown files

Applied directional markers (‎, ‏) and other formatting fixes to resolve BIDI (bidirectional text) errors and warnings reported by the linter in several .md files. This commit is a third batch of corrections to improve RTL/LTR rendering and pass the linter checks.

* Do not produce log file if no issues found

Updated the linter script to avoid creating the log file when no issues, warnings, or notices are found. If no issues are detected, the script now prints a "::notice ::No issues found"

* Always print annotation with number of errors and warnings found

Updated the linter script to always print an annotation indicating how many errors and warnings were found, even if there are none.

* Fix: always print summary annotation with number of issues found

* Add a missing newline character at end of file free-courses-he.md

* Update linter configuration and revert markdown files to pre-fix state

Updated the organization of keywords and symbols in the linter configuration file. Reverted all markdown files to their original state prior to the fixes.

* Update free-programming-books-he.md with fixes

* Update free-programming-books-he.md with further fixes

* Update free-programming-books-he.md with fixes

* Update free-programming-books-fa_IR.md with fixes

* Update free-programming-books-he.md with further fixes

* Update free-programming-books-ar.md with fixes

* Update free-programming-books-ar.md with further fixes

* Update free-podcasts-screencasts-ar.md with fixes

* Update free-podcasts-screencasts-fa_IR.md with fixes

* Update free-courses-he.md with fixes

* Update free-courses-he.md with further fixes

* Update free-courses-fa_IR.md with fixes

* Update free-courses-fa_IR.md with further fixes

* Update free-courses-ar.md with fixes

* Update free-courses-ar.md with further fixes

* Update free-courses-ar.md with further fixes

* Update free-courses-ur.md with fixes

* Update some markdown files with further improvements

* Fix alignment of nested lists in free-programming-books-fa_IR.md

* Update CONTRIBUTING.md and CONTRIBUTING-it.md with RTL/LTR linter error fixing guidelines

Added a section to CONTRIBUTING.md and CONTRIBUTING-it.md explaining how to fix RTL/LTR Markdown linter errors, including when to use ‏ and ‎ with practical examples for contributors working on files with mixed RTL and LTR text
This commit is contained in:
Gabriele Ciccotelli
2025-05-28 16:46:25 +02:00
committed by GitHub
parent 1be7c48c60
commit caa05be694
14 changed files with 1425 additions and 465 deletions
+101
View File
@@ -0,0 +1,101 @@
name: RTL/LTR Markdown Linter
on: [pull_request]
permissions:
contents: read # Required to checkout the repository content
jobs:
lint:
runs-on: ubuntu-latest
steps:
# Checkout the repository code
- name: Checkout code
uses: actions/checkout@v4
# Fetch the full history of 'main' for accurate git diff in PRs
- name: Fetch all history for main
run: git fetch --no-tags --prune --depth=50 origin main
# Set up the required Python version for the linter
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11' # Use a recent Python version for compatibility
# Install only the Python dependencies needed for the linter script
- name: Install Python dependencies
run: |
pip install python-bidi PyYAML
# (Optional) List files for debugging purposes
- name: List files in scripts directory and current path
run: |
echo "Current working directory:"
pwd
echo "Listing contents of scripts directory (if it exists at root):"
ls -la scripts/ || echo "scripts/ directory not found at root or ls failed"
# Identify all changed Markdown files in the PR using tj-actions/changed-files
- name: Get changed Markdown files
id: changed_md_files
uses: tj-actions/changed-files@v44
with:
files: |
**/*.md
# Check if the PR has the "RTL" label
- name: Check for RTL label
id: rtl_label
run: |
gh pr view ${{ github.event.pull_request.number }} --json labels --jq '.labels[].name' | grep -q '^RTL$' && echo "has_labels=true" >> $GITHUB_OUTPUT || echo "has_labels=false" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ github.token }}
# Check if any changed file is in ar, he, fa, ur
- name: Check for RTL language file changes
id: rtl_lang_files
run: |
RTL_CHANGED=false
for f in ${{ steps.changed_md_files.outputs.all_changed_files }}; do
if [[ "$f" =~ (ar|he|fa|ur) ]]; then
RTL_CHANGED=true
break
fi
done
echo "rtl_changed=$RTL_CHANGED" >> $GITHUB_OUTPUT
# Run the RTL/LTR Markdown linter:
# - Scans all Markdown files for issues and writes a full log
# - Prints GitHub Actions annotations only for issues on changed lines in changed files
# - Fails the job if any error or warning is found on changed lines
- name: Run RTL/LTR Markdown linter
id: run_linter
if: steps.rtl_label.outputs.has_labels == 'true' || steps.rtl_lang_files.outputs.rtl_changed == 'true'
continue-on-error: true
run: |
echo "Scanning all specified paths for full log..."
echo "Changed Markdown files for PR annotations: ${{ steps.changed_md_files.outputs.all_changed_files }}"
CHANGED_FILES_ARGS=""
if [ "${{ steps.changed_md_files.outputs.all_changed_files_count }}" -gt 0 ]; then
# Pass changed files to the script for PR annotation generation
CHANGED_FILES_ARGS="--changed-files ${{ steps.changed_md_files.outputs.all_changed_files }}"
fi
# Execute the linter.
# Annotations for changed files will be printed to stdout by the script.
# The script will also write a full log to 'rtl-linter-output.log'.
# If the script exits with a non-zero code (error found), this step will fail.
python3 scripts/rtl_ltr_linter.py books casts courses more ${CHANGED_FILES_ARGS} --log-file rtl-linter-output.log
# Upload the linter output log as a workflow artifact
# Only if the linter step was executed (success or failure)
- name: Upload linter output artifact
if: steps.run_linter.conclusion == 'success' || steps.run_linter.conclusion == 'failure'
uses: actions/upload-artifact@v4
with:
name: rtl-linter-output # Name of the artifact
path: rtl-linter-output.log # Path to the output file
if-no-files-found: ignore # Ignore if no files are found
+12 -12
View File
@@ -24,7 +24,7 @@
* [احترف الأردوينو](https://www.ev-center.com/uploads/2/1/2/6/21261678/arduino.pdf) - Working Group‏ (PDF)
* [اردوينو ببساطة](https://simplyarduino.com/%D9%83%D8%AA%D8%A7%D8%A8-%D8%A7%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88-%D8%A8%D8%A8%D8%B3%D8%A7%D8%B7%D8%A9/) - عبدالله علي عبدالله, Abdallah Ali Abdallah Elmasry‏ (PDF)
* [AVR ببساطة: من تشغيل دايود ضوئي إلى أنظمة الوقت الحقيقي](https://github.com/abdallah-ali-abdallah/Simply-AVR-Book) - عبدالله علي عبدالله, Abdallah Ali Abdallah Elmasry‏ (ODT, PDF)
* [AVR‏ ببساطة: من تشغيل دايود ضوئي إلى أنظمة الوقت الحقيقي](https://github.com/abdallah-ali-abdallah/Simply-AVR-Book) - عبدالله علي عبدالله, Abdallah Ali Abdallah Elmasry‏ (ODT, PDF‏)
### Artificial Intelligence
@@ -34,7 +34,7 @@
### DB & DBMS
* [تصميم قواعد البيانات](https://academy.hsoub.com/files/26-تصميم-قواعد-البيانات/) - Adrienne Watt, Nelson Eng، ترجمة أيمن طارق وعلا عباس (PDF)
* [تصميم قواعد البيانات](https://academy.hsoub.com/files/26-تصميم-قواعد-البيانات/) - Adrienne Watt, Nelson Eng‏، ترجمة أيمن طارق وعلا عباس‏ (PDF)
### HTML and CSS
@@ -50,31 +50,31 @@
### JavaScript
* [تعلم JavaScript‏](https://itwadi.com/node/3002) - Cody Lindley, عبداللطيف ايمش (PDF)
* [سلسلة تعلم Next.js بالعربية](https://blog.abdelhadi.org/learn-nextjs-in-arabic/) - Flavio Copes, عبدالهادي الأندلسي
* [تعلم JavaScript‏](https://itwadi.com/node/3002) - Cody Lindley,‏ عبداللطيف ايمش‏ (PDF)
* [سلسلة تعلم Next.js‏ بالعربية](https://blog.abdelhadi.org/learn-nextjs-in-arabic/) - Flavio Copes,‏ عبدالهادي الأندلسي
#### Vue.js
* [أساسيات إطار العمل Vue.js](https://academy.hsoub.com/files/22-أساسيات-إطار-العمل-vuejs/) - حسام برهان (PDF)
* [أساسيات إطار العمل Vue.js‏](https://academy.hsoub.com/files/22-أساسيات-إطار-العمل-vuejs/) - حسام برهان‏ (PDF)
### Linux
* [أوبنتو ببساطة](https://www.simplyubuntu.com) - Ahmed AbouZaid‏ (PDF)
* [دفتر مدير دبيان](https://ar.debian-handbook.info) - Raphaël Hertzog, Roland Mas, MUHAMMET SAİT Muhammet Sait‏ (PDF, HTML)
* [دليل إدارة خواديم أوبنتو 14.04](https://academy.hsoub.com/files/10-دليل-إدارة-خواديم-أوبنتو/) - Ubuntu documentation team, Abdullatif Eymash‏ (PDF)
* [سطر أوامر لينكس](https://itwadi.com/node/2765) - Willam E. Shotts Jr., ترجمة عبد اللطيف ايمش (PDF)
* [دفتر مدير دبيان](https://ar.debian-handbook.info) - Raphaël Hertzog, Roland Mas, MUHAMMET SAİT Muhammet Sait‏ (PDF, HTML‏)
* [دليل إدارة خواديم أوبنتو 14.04‏](https://academy.hsoub.com/files/10-دليل-إدارة-خواديم-أوبنتو/) - Ubuntu documentation team, Abdullatif Eymash‏ (PDF)
* [سطر أوامر لينكس](https://itwadi.com/node/2765) - Willam E. Shotts Jr.‎, ترجمة عبد اللطيف ايمش‏ (PDF)
### Open Source Software
* [دليل البرمجيات الحرة مفتوحة](https://www.freeopensourceguide.com) - أحمد م. أبوزيد (PDF)
* [دليل البرمجيات الحرة مفتوحة](https://www.freeopensourceguide.com) - أحمد م. أبوزيد‏ (PDF)
### Operating Systems
* [أنظمة التشغيل للمبرمجين](https://academy.hsoub.com/files/24-أنظمة-التشغيل-للمبرمجين/) - Allen B. Downey ,ترجمة علا عباس (PDF)
* [أنظمة التشغيل للمبرمجين](https://academy.hsoub.com/files/24-أنظمة-التشغيل-للمبرمجين/) - Allen B. Downey,‏ ترجمة علا عباس‏ (PDF)
### Python
@@ -100,12 +100,12 @@
### SQL
* [ملاحظات للعاملين بلغة SQL](https://academy.hsoub.com/files/16-%D9%85%D9%84%D8%A7%D8%AD%D8%B8%D8%A7%D8%AA-%D9%84%D9%84%D8%B9%D8%A7%D9%85%D9%84%D9%8A%D9%86-%D8%A8%D9%84%D8%BA%D8%A9-sql/)
* [ملاحظات للعاملين بلغة SQL‏](https://academy.hsoub.com/files/16-%D9%85%D9%84%D8%A7%D8%AD%D8%B8%D8%A7%D8%AA-%D9%84%D9%84%D8%B9%D8%A7%D9%85%D9%84%D9%8A%D9%86-%D8%A8%D9%84%D8%BA%D8%A9-sql/)
#### PostgreSQL
* [الدليل العملي إلى قواعد بيانات PostgreSQL‏](https://academy.hsoub.com/files/18-%D8%A7%D9%84%D8%AF%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A-%D8%A5%D9%84%D9%89-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-postgresql/) - Craig Kerstiens، مصطفى عطا العايش (PDF)
* [الدليل العملي إلى قواعد بيانات PostgreSQL‏](https://academy.hsoub.com/files/18-%D8%A7%D9%84%D8%AF%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A-%D8%A5%D9%84%D9%89-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-postgresql/) - Craig Kerstiens،‏ مصطفى عطا العايش‏ (PDF)
* [بوستجريسكل كتاب الوصفات](https://itwadi.com/PostgreSQL_Cookbook) - Chitij Chauhan‏ (PDF)
+24 -15
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### فهرست
* [رایانش ابری](#%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D8%B4-%D8%A7%D8%A8%D8%B1%DB%8C)
@@ -8,9 +10,13 @@
* [LaTeX](#latex)
* [Linux](#linux)
* [PHP](#php)
* [Symfony](#symfony)
<ul dir="rtl">
<li><a href="#symfony">Symfony</a></li>
</ul>
* [Python](#python)
* [Django](#django)
<ul dir="rtl">
<li><a href="#django">Django</a></li>
</ul>
* [R](#r)
@@ -26,14 +32,14 @@
### مهندسی نرم‌افزار
* [الگوهای طراحی](https://holosen.net/what-is-design-pattern/) - Hossein Badrnezhad *(نیاز به ثبت نام دارد)*
* [الگوهای طراحی](https://holosen.net/what-is-design-pattern/) - Hossein Badrnezhad&rlm; *(نیاز به ثبت نام دارد)*
* [الگوهای طراحی در برنامه‌نویسی شیء‌گرا](https://github.com/khajavi/Practical-Design-Patterns)
* [ترجمه آزاد کتاب کد تمیز](https://codetamiz.vercel.app) - Robert C. Martin, et al.
* [ترجمه آزاد کتاب کد تمیز](https://codetamiz.vercel.app) - Robert C. Martin, et al.&lrm;
### HTML and CSS
* [یادگیری پیکربندی با CSS](http://fa.learnlayout.com)
* [یادگیری پیکربندی با CSS&rlm;](http://fa.learnlayout.com)
### Java
@@ -45,14 +51,14 @@
### JavaScript
* [جاوااسکریپت شیوا](http://eloquentjs.ir) - مارین هاوربک, مهران عفتی (HTML)
* [جاوااسکریپت شیوا](http://eloquentjs.ir) - مارین هاوربک, مهران عفتی&rlm; (HTML)
* [ریکت جی اس](https://github.com/reactjs/fa.reactjs.org)
* [یادگیری اصولی جاوااسکریپت](https://github.com/Mariotek/BetterUnderstandingOfJavascript)
### LaTeX
* [مقدمه‌ای نه چندان کوتاه بر LaTeX](http://www.ctan.org/tex-archive/info/lshort/persian)
* [مقدمه‌ای نه چندان کوتاه بر LaTeX&rlm;](http://www.ctan.org/tex-archive/info/lshort/persian)
### Linux
@@ -66,24 +72,27 @@
#### Symfony
* [سیمفونی ۵: سریع‌ترین مسیر](https://web.archive.org/web/20210122133755/https://symfony.com/doc/current/the-fast-track/fa/index.html) *(:card_file_box: archived)*
* [سیمفونی ۵: سریع‌ترین مسیر&rlm;](https://web.archive.org/web/20210122133755/https://symfony.com/doc/current/the-fast-track/fa/index.html) - *(:card_file_box: archived)*
### Python
* [پایتون به پارسی](https://python.coderz.ir) - سعید درویش (HTML)
* [ترجمه آزاد کتاب Asyncio in Python](https://github.com/ftg-iran/aip-persian)
* [پایتون به پارسی](https://python.coderz.ir) - سعید درویش&rlm; (HTML)
* [ترجمه آزاد کتاب Asyncio in Python&rlm;](https://github.com/ftg-iran/aip-persian)
#### Django
* [ترجمه آزاد کتاب Django Design Patterns and Best Practices](https://github.com/ftg-iran/ddpabp-persian)
* [ترجمه آزاد کتاب Django Design Patterns and Best Practices&rlm;](https://github.com/ftg-iran/ddpabp-persian)
* [کتاب جنگو برای حرفه‌ای‌ها](https://github.com/mthri/dfp-persian)
* [کتاب جنگو برای API](https://github.com/ftg-iran/dfa-persian)
* [کتاب جنگو برای API&rlm;](https://github.com/ftg-iran/dfa-persian)
### R
* [تحلیل شبکه‌های اجتماعی در R](http://cran.r-project.org/doc/contrib/Raeesi-SNA_in_R_in_Farsi.pdf) (PDF)
* [راهنمای زبان R](http://cran.r-project.org/doc/contrib/Mousavi-R-lang_in_Farsi.pdf) (PDF)
* [مباحث ویژه در R](http://cran.r-project.org/doc/contrib/Mousavi-R_topics_in_Farsi.pdf) (PDF)
* [تحلیل شبکه‌های اجتماعی در R&rlm;](http://cran.r-project.org/doc/contrib/Raeesi-SNA_in_R_in_Farsi.pdf) (PDF)
* [راهنمای زبان R&rlm;](http://cran.r-project.org/doc/contrib/Mousavi-R-lang_in_Farsi.pdf) (PDF)
* [مباحث ویژه در R&rlm;](http://cran.r-project.org/doc/contrib/Mousavi-R_topics_in_Farsi.pdf) (PDF)
</div>
+15 -10
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### Index
* [ללא תלות בשפה](#ללא-תלות-בשפה)
@@ -5,7 +7,7 @@
* [רשתות](#רשתות)
* [Assembly](#assembly)
* [C](#c)
* [C#](#csharp)
* [C#&lrm;](#csharp)
* [Python](#python)
@@ -13,34 +15,37 @@
#### מערכות הפעלה
* [מערכות הפעלה](https://data.cyber.org.il/os/os_book.pdf) – ברק גונן, המרכז לחינוך סייבר (PDF)
* [מערכות הפעלה](https://data.cyber.org.il/os/os_book.pdf) ברק גונן&rlm;, המרכז לחינוך סייבר&rlm; (PDF)
#### רשתות
* [רשתות מחשבים](https://data.cyber.org.il/networks/networks.pdf) – עומר רוזנבוים, ברק גונן, שלומי הוד, המרכז לחינוך סייבר (PDF)
* [רשתות מחשבים](https://data.cyber.org.il/networks/networks.pdf) עומר רוזנבוים&rlm;, ברק גונן&rlm;, שלומי הוד&rlm;, המרכז לחינוך סייבר&rlm; (PDF)
### Assembly
* [ארגון המחשב ושפת סף](https://data.cyber.org.il/assembly/assembly_book.pdf) – ברק גונן, המרכז לחינוך סייבר (PDF)
* [ארגון המחשב ושפת סף](https://data.cyber.org.il/assembly/assembly_book.pdf) ברק גונן&rlm;, המרכז לחינוך סייבר&rlm; (PDF)
### C
### C
* [ספר לימוד שפה עילית (שפת C)](https://moked.education.gov.il/MafmarFiles/C_LangIG_3Version.pdf) - מרק טסליצקי (PDF)
* [ספר לימוד שפה עילית (שפת C&lrm;)](https://moked.education.gov.il/MafmarFiles/C_LangIG_3Version.pdf) מרק טסליצקי&rlm; (PDF)
### <a id="csharp"></a>C\#
### <a id="csharp"></a>C#&lrm;
* [מבוא לתכנות בסביבת האינטרנט בשפת C#](https://meyda.education.gov.il/files/free%20books/%D7%9E%D7%91%D7%95%D7%90%20%D7%9C%D7%AA%D7%9B%D7%A0%D7%95%D7%AA%20%D7%91%D7%A1%D7%91%D7%99%D7%91%D7%AA%20%D7%94%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98%20090216.pdf) מט״ח (PDF)
* [מבוא לתכנות בסביבת האינטרנט בשפת C#&lrm;](https://meyda.education.gov.il/files/free%20books/%D7%9E%D7%91%D7%95%D7%90%20%D7%9C%D7%AA%D7%9B%D7%A0%D7%95%D7%AA%20%D7%91%D7%A1%D7%91%D7%99%D7%91%D7%AA%20%D7%94%D7%90%D7%99%D7%A0%D7%98%D7%A8%D7%A0%D7%98%20090216.pdf) מט״ח&rlm; (PDF)
### Deep-Learning
* [ספר על למידת מכונה ולמידה עמוקה](https://github.com/AvrahamRaviv/Deep-Learning-in-Hebrew) – אברהם רביב ומייק ארליסון
* [ספר על למידת מכונה ולמידה עמוקה](https://github.com/AvrahamRaviv/Deep-Learning-in-Hebrew) אברהם רביב&rlm; ומייק ארליסון&rlm;
### Python
* [תכנות בשפת פייתון](https://data.cyber.org.il/python/python_book.pdf) – ברק גונן, המרכז לחינוך סייבר (PDF)
* [תכנות בשפת פייתון](https://data.cyber.org.il/python/python_book.pdf) ברק גונן&rlm;, המרכז לחינוך סייבר&rlm; (PDF)
</div>
+17 -13
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### Index
* [Miscellaneous](#miscellaneous)
@@ -5,16 +7,18 @@
### Miscellaneous
* [أخوك الكبير متولي](https://anchor.fm/metwally) - Ahmed Metwally (podcast)
* [برمجة ستريم](https://youtube.com/playlist?list=PL0_C_32YKLpx7K88481CY3J21cw85oFCM) - Mohamed Abusrea (podcast)
* [بودكاست](https://youtube.com/playlist?list=PLvGNfY-tFUN-mGlfovyGACjPVmkzAsQFJ) - Ghareeb Elshaikh (podcast)
* [AskDeveloper Podcast](http://www.askdeveloper.com) - Mohamed Elsherif (podcast)
* [Codezilla Codecast - بودكاست البرمجة](https://youtube.com/playlist?list=PLsqPSxnrsWLuE-O3IKIUWy6Hmelz3bMWy) - Islam Hesham (podcast)
* [Essam Cafe - قهوة عصام](https://essamcafe.com) - Ahmed Essam (podcast)
* [Nakerah Podcast](https://nakerah.net/podcast) - Nakerah Network (podcast)
* [null++: بالعربي](https://nullplus.plus) - Mohamed Luay, Ahmad Alfy (podcast)
* [Tech Podcast بالعربي](https://anchor.fm/ahmdelemam) - Ahmed Elemam (podcast)
* [The Egyptian Guy](https://anchor.fm/refaie) - Mohamed Refaie (podcast)
* [The Weekly Noob](https://theweeklynoob.netlify.app) - Nabil Tharwat (podcast)
* [Untyped Podcast](https://logaretm.com/untyped/) - Abdelrahman Awad (podcast)
* [أخوك الكبير متولي](https://anchor.fm/metwally) - Ahmed Metwally&rlm; (podcast)
* [برمجة ستريم](https://youtube.com/playlist?list=PL0_C_32YKLpx7K88481CY3J21cw85oFCM) - Mohamed Abusrea&rlm; (podcast)
* [بودكاست](https://youtube.com/playlist?list=PLvGNfY-tFUN-mGlfovyGACjPVmkzAsQFJ) - Ghareeb Elshaikh&rlm; (podcast)
* [AskDeveloper Podcast&rlm;](http://www.askdeveloper.com) - Mohamed Elsherif&rlm; (podcast)
* [Codezilla Codecast -&rlm; بودكاست البرمجة](https://youtube.com/playlist?list=PLsqPSxnrsWLuE-O3IKIUWy6Hmelz3bMWy) - Islam Hesham&rlm; (podcast)
* [Essam Cafe -&rlm; قهوة عصام](https://essamcafe.com) - Ahmed Essam&rlm; (podcast)
* [Nakerah Podcast&rlm;](https://nakerah.net/podcast) - Nakerah Network&rlm; (podcast)
* [null++:&lrm; بالعربي](https://nullplus.plus) - Mohamed Luay, Ahmad Alfy&rlm; (podcast)
* [Tech Podcast&rlm; بالعربي](https://anchor.fm/ahmdelemam) - Ahmed Elemam&rlm; (podcast)
* [The Egyptian Guy&rlm;](https://anchor.fm/refaie) - Mohamed Refaie&rlm; (podcast)
* [The Weekly Noob&rlm;](https://theweeklynoob.netlify.app) - Nabil Tharwat&rlm; (podcast)
* [Untyped Podcast&rlm;](https://logaretm.com/untyped/) - Abdelrahman Awad&rlm; (podcast)
</div>
+11 -6
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### Index
* [Programming News](#programming-news)
@@ -6,15 +8,18 @@
### Programming News
* [پادکست کافه برنامه نویس](https://anchor.fm/codemy) - CafeCodemy (podcast)
* [پادکست کافه برنامه نویس](https://anchor.fm/codemy) - CafeCodemy&rlm; (podcast)
### Technology
* [پارس کلیک](https://anchor.fm/parsclick/) - Amir Azimi (podcast)
* [پارس کلیک](https://anchor.fm/parsclick/) - Amir Azimi&rlm; (podcast)
* [رادیو گیک](https://soundcloud.com/jadijadi) (podcast)
* [رادیو گیک](https://anchor.fm/radiojadi) - Jadi (podcast)
* [رادیو گیک](https://anchor.fm/radiojadi) - Jadi&rlm; (podcast)
* [رادیو گیک](https://www.youtube.com/playlist?list=PL-tKrPVkKKE1peHomci9EH7BmafxdXKGn) (videocast)
* [CodeNaline \| کدنالین](https://castbox.fm/channel/id5066732) - Torham (podcast)
* [Radio Developer - رادیو دولوپر](https://castbox.fm/channel/id4407294) (podcast)
* [Radio Mi \| رادیو میــ](https://www.youtube.com/playlist?list=PLRmRAhVbjeHqrc6Gf5DKu2eRJGkfo9A-Z) - Milad Nouri (videocast)
* [CodeNaline \|&rlm; کدنالین](https://castbox.fm/channel/id5066732) - Torham&rlm; (podcast)
* [Radio Developer -&rlm; رادیو دولوپر](https://castbox.fm/channel/id4407294) (podcast)
* [Radio Mi \|&rlm; رادیو میــ](https://www.youtube.com/playlist?list=PLRmRAhVbjeHqrc6Gf5DKu2eRJGkfo9A-Z) - Milad Nouri&rlm; (videocast)
</div>
+336 -336
View File
File diff suppressed because it is too large Load Diff
+55 -50
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### Index
* [Ansible](#ansible)
@@ -27,146 +29,149 @@
### Ansible
* [آموزش رایگان انسیبل](https://www.youtube.com/playlist?list=PLRMCwJJwWR1AKYcUkdcorTFR-bhXUN6oO) - Morteza Bashsiz
* [آموزش رایگان انسیبل](https://www.youtube.com/playlist?list=PLRMCwJJwWR1AKYcUkdcorTFR-bhXUN6oO) - Morteza Bashsiz&rlm;
### Blockchain
* [دوره بلاک چین، رمزارزها و بیت کوین](https://www.youtube.com/playlist?list=PL-tKrPVkKKE1gLxAL-56H-XR-fTapqofC) - Jadi Mirmirani
* [دوره بلاک چین، رمزارزها و بیت کوین](https://www.youtube.com/playlist?list=PL-tKrPVkKKE1gLxAL-56H-XR-fTapqofC) - Jadi Mirmirani&rlm;
### C
* [آموزش زبان C](https://toplearn.com/courses/3255/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-c) - Mohammad Moein Bagh Sheikhi
* [برنامه نویسی پیشرفته](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-mk187) - Ramtin Khosravi
* [درس اصول برنامه‌نویسی سی و سی پلاس پلاس از دانشگاه صنعتی اصفهان](https://maktabkhooneh.org/course/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-C-%D9%88-C-mk68) - Kiarash Bazargan
* [آموزش زبان C&rlm;](https://toplearn.com/courses/3255/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-c) - Mohammad Moein Bagh Sheikhi&rlm;
* [برنامه نویسی پیشرفته](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-mk187) - Ramtin Khosravi&rlm;
* [درس اصول برنامه‌نویسی سی و سی پلاس پلاس از دانشگاه صنعتی اصفهان](https://maktabkhooneh.org/course/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-C-%D9%88-C-mk68) - Kiarash Bazargan&rlm;
### <a id="csharp"></a>C\#
* [آموزش Asp.Net MVC به همراه پروژه عملی](https://toplearn.com/courses/web/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-AspNet-MVC-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B9%D9%85%D9%84%DB%8C) - Iman Madaeny *(نیاز به ثبت نام دارد)*
* [دوره مقدماتی دات نت 5 تحت وب](https://bugeto.net/courses/free-introductory-asp-dot-net-core-training-course) - Ehsan Babaei *(نیاز به ثبت نام دارد)*
* [آموزش Asp.Net&lrm; MVC&rlm; به همراه پروژه عملی](https://toplearn.com/courses/web/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-AspNet-MVC-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B9%D9%85%D9%84%DB%8C) - Iman Madaeny *(نیاز به ثبت نام دارد)*
* [دوره مقدماتی دات نت 5&rlm; تحت وب](https://bugeto.net/courses/free-introductory-asp-dot-net-core-training-course) - Ehsan Babaei *(نیاز به ثبت نام دارد)*
### Git
* [آموزش گیت، گیت هاب و گیت لب - فرادرس](https://faradars.org/courses/fvgit9609-git-github-gitlab) - Jadi Mirmirani *(نیاز به ثبت نام دارد)*
* [آموزش گیت، گیت هاب و گیت لب - فرادرس](https://faradars.org/courses/fvgit9609-git-github-gitlab) - Jadi Mirmirani&rlm; *(نیاز به ثبت نام دارد)*
### HTML and CSS
* [آموزش css](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-css-mk1265) - محمدحسین سیدآقایی
* [آموزش html](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-html-mk1263) - محمدحسین سیدآقایی
* [آموزش css&rlm;](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-css-mk1265) - محمدحسین سیدآقایی
* [آموزش html&rlm;](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-html-mk1263) - محمدحسین سیدآقایی
### Java
* [آموزش برنامه‌نویسی جاوا](https://javacup.ir/javacup-training-videos) - Java Cup
* [آموزش برنامه‌نویسی جاوا](https://javacup.ir/javacup-training-videos) - Java Cup&rlm;
* [آموزش ديتابيس در جاوا](https://b2n.ir/j02632)
* [برنامه نویسی پیشرفته(جاوا)](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D8%AC%D8%A7%D9%88%D8%A7-mk242) - Gholamali Nejad Hajali Irani
* [برنامه‌نویسی حرفه‌ای تحت وب در جاوا](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-mk282) - Gholamali Nejad Hajali Irani
* [برنامه نویسی پیشرفته(جاوا)](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D8%AC%D8%A7%D9%88%D8%A7-mk242) - Gholamali Nejad Hajali Irani&rlm;
* [برنامه‌نویسی حرفه‌ای تحت وب در جاوا](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-mk282) - Gholamali Nejad Hajali Irani&rlm;
### JavaScript
* [آموزش فارسی جاوا اسکریپت مقدماتی تا پیشرفته - JavaScript Tutorial](https://youtube.com/playlist?list=PLfbD3-Ao6cPpt5Y3Nkue_W-DrmdOLOaTH) - Mansour Kalagar
* [دوره اموزشی جاوا اسکریپت از صفر](https://www.youtube.com/playlist?list=PLAt10Vana3Yctuu576LSxK6AiskBiWgOF) - Mehran Tarif (Silicium)
* [آموزش فارسی جاوا اسکریپت مقدماتی تا پیشرفته - JavaScript Tutorial&rlm;](https://youtube.com/playlist?list=PLfbD3-Ao6cPpt5Y3Nkue_W-DrmdOLOaTH) - Mansour Kalagar&rlm;
* [دوره اموزشی جاوا اسکریپت از صفر](https://www.youtube.com/playlist?list=PLAt10Vana3Yctuu576LSxK6AiskBiWgOF) - Mehran Tarif&rlm; (Silicium&rlm;)
#### React
* [ری اکت جی اس ۲۰۲۰](https://www.youtube.com/playlist?list=PL3Y-E4YSE4wZpWH8CXwPBI1F13KhkIDEx) - Amir Azimi
* [ری اکت جی اس ۲۰۲۰](https://www.youtube.com/playlist?list=PL3Y-E4YSE4wZpWH8CXwPBI1F13KhkIDEx) - Amir Azimi&rlm;
#### Vue.js
* [آموزش Vue.js از صفر تا صد با 8 درس رایگان](https://sariasan.com/featured/vue-free-full-lessons) - میلاد حیدری
* [آموزش Vue.js&lrm; از صفر تا صد با 8 درس رایگان](https://sariasan.com/featured/vue-free-full-lessons) - میلاد حیدری
### Kotlin
* [آموزش کامل برنامه نویسی با کاتلین](https://www.youtube.com/watch?v=SwhXvaXx078) - Amirahmad Adibi
* [دوره آموزشی کاتلین](https://mskm.ir/category/programming/kotlin/) - Mehrdad Dolatkhah
* [دوره رایگان برنامه نویسی اندروید](https://www.youtube.com/playlist?list=PLoBWKLYZlNi7lecoeYXHC868ZH_AE1uXg) - Omid Sharifmehr
* [آموزش کامل برنامه نویسی با کاتلین](https://www.youtube.com/watch?v=SwhXvaXx078) - Amirahmad Adibi&rlm;
* [دوره آموزشی کاتلین](https://mskm.ir/category/programming/kotlin/) - Mehrdad Dolatkhah&rlm;
* [دوره رایگان برنامه نویسی اندروید](https://www.youtube.com/playlist?list=PLoBWKLYZlNi7lecoeYXHC868ZH_AE1uXg) - Omid Sharifmehr&rlm;
### Linux
* [آموزش رایگان لینوکس](https://www.youtube.com/playlist?list=PLRMCwJJwWR1A3_ECuOqdIaR-XLnr6bDj_) - Morteza Bashsiz
* [آموزش لینوکس برای آدم های شاد](https://www.youtube.com/playlist?list=PL-tKrPVkKKE2AniHDmp6zK9KGD1sjf0bd) - Jadi Mirmirani
* [آموزش لینوکس مقدماتی](https://www.youtube.com/watch?v=ZwaBNkQKrts&list=PLPj7mSUQL4v_oVLO-2Q1QQ9fAH45u8z4A) - Hamid Emamian
* [دوره الپیک ۱ - جادی \| LPIC-1 with Jadi](https://www.youtube.com/playlist?list=PL7ePwBdxM4nswZ62DvL58yJZ9W4-hOLLB) - Jadi Mirmirani
* [آموزش رایگان لینوکس](https://www.youtube.com/playlist?list=PLRMCwJJwWR1A3_ECuOqdIaR-XLnr6bDj_) - Morteza Bashsiz&rlm;
* [آموزش لینوکس برای آدم های شاد](https://www.youtube.com/playlist?list=PL-tKrPVkKKE2AniHDmp6zK9KGD1sjf0bd) - Jadi Mirmirani&rlm;
* [آموزش لینوکس مقدماتی](https://www.youtube.com/watch?v=ZwaBNkQKrts&list=PLPj7mSUQL4v_oVLO-2Q1QQ9fAH45u8z4A) - Hamid Emamian&rlm;
* [دوره الپیک ۱ - جادی \| LPIC-1 with Jadi&rlm;](https://www.youtube.com/playlist?list=PL7ePwBdxM4nswZ62DvL58yJZ9W4-hOLLB) - Jadi Mirmirani&rlm;
### Machine Learning
* [درس یادگیری ماشین دانشگاه استنفورد](https://maktabkhooneh.org/course/35-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-mk35) - Andrew Ng
* [درس یادگیری ماشین دانشگاه صنعتی شریف](https://maktabkhooneh.org/course/273-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-mk273) - Mahdiyeh Soleymani
* [درس یادگیری ماشین دانشگاه استنفورد](https://maktabkhooneh.org/course/35-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-mk35) - Andrew Ng&rlm;
* [درس یادگیری ماشین دانشگاه صنعتی شریف](https://maktabkhooneh.org/course/273-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-mk273) - Mahdiyeh Soleymani&rlm;
### Network
* [درک مقدماتی شبکه](https://www.youtube.com/playlist?list=PL-tKrPVkKKE00meXoxmIy6EgldK5XE-Z) - Jadi Mirmirani
* [درک مقدماتی شبکه](https://www.youtube.com/playlist?list=PL-tKrPVkKKE00meXoxmIy6EgldK5XE-Z) - Jadi Mirmirani&rlm;
### PHP
* [آموزش پی‌اچ‌پی - سکان آکادمی](https://sokanacademy.com/courses/php/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-PHP) - Behzad Moradi
* [آموزش PHP - سبز دانش](https://sabzdanesh.com/php-tutorial/) - Omid Rajaei
* [آموزش پی‌اچ‌پی - سکان آکادمی](https://sokanacademy.com/courses/php/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-PHP) - Behzad Moradi&rlm;
* [آموزش PHP -&rlm; سبز دانش](https://sabzdanesh.com/php-tutorial/) - Omid Rajaei&rlm;
#### Codeigniter
* [طراحی وب Codeigniter](https://maktabkhooneh.org/course/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-Codeigniter-mk136)
* [طراحی وب Codeigniter&rlm;](https://maktabkhooneh.org/course/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-Codeigniter-mk136)
#### Laravel
* [آموزش لاراول](https://roocket.ir/series/learn-laravel) - Hesam Mousavi
* [آموزش لاراول](http://www.alefyar.com/laravel-tutorial) - Abolfazl Talebi
* [آموزش لاراول](https://roocket.ir/series/learn-laravel) - Hesam Mousavi&rlm;
* [آموزش لاراول](http://www.alefyar.com/laravel-tutorial) - Abolfazl Talebi&rlm;
#### Yii
* [آموزش yii framework 2](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-yii-framework-2-mk205) - Mehrdad Seifzade
* [آموزش yii framework 2&rlm;](https://maktabkhooneh.org/course/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-yii-framework-2-mk205) - Mehrdad Seifzade&rlm;
### Python
* [آموزش پایتون رایگان (برنامه نویسی python از صفر)](https://sabzdanesh.com/python-tutorial/) - Omid Rajaei *(به‌همراه کوئیز و تمرین بیشتر با ثبت‌نام رایگان)*
* [دوره آموزش رایگان زبان پایتون ( Python ) از مقدماتی تا پیشرفته](https://toplearn.com/courses/2150/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-(-python-)) - Mohammad Ordokhani (TopLearn) *(نیاز به ثبت نام دارد)*
* [دوره مقدماتی تا پیشترفته پایتون - کدتراپی](https://www.youtube.com/playlist?list=PLSMC8KtOWURqgm0c6iVXrGzK4ymzJUnfj) - CodeTherapy
* [متخصص پایتون (Python)](https://sabzlearn.ir/course/python/) - Reza Davalit
* [آموزش پایتون رایگان (برنامه نویسی python&rlm; از صفر)](https://sabzdanesh.com/python-tutorial/) - Omid Rajaei *(به‌همراه کوئیز و تمرین بیشتر با ثبت‌نام رایگان)*
* [دوره آموزش رایگان زبان پایتون ( Python )&rlm; از مقدماتی تا پیشرفته](https://toplearn.com/courses/2150/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-(-python-)) - Mohammad Ordokhani&rlm; (TopLearn&rlm;) *(نیاز به ثبت نام دارد)*
* [دوره مقدماتی تا پیشترفته پایتون - کدتراپی](https://www.youtube.com/playlist?list=PLSMC8KtOWURqgm0c6iVXrGzK4ymzJUnfj) - CodeTherapy&rlm;
* [متخصص پایتون (Python)&rlm;](https://sabzlearn.ir/course/python/) - Reza Davalit&rlm;
### Django
* [آموزش مقدماتی Django Rest Framework (DRF)](https://www.youtube.com/playlist?list=PL7MXODW7Gj1eGnm4dXnydgqSDb3pLpg9v) - TorhamDev : Tech With Tori
* [دوره اموزش جنگو مقدماتی تا پیشرفته](https://www.youtube.com/playlist?list=PLAt10Vana3YeAwS_LyLCeu7chml8eP8bh) - Mehran Tarif (Silicium)
* [سوکت نویسی با کتابخانه جنگو چنلز](https://www.youtube.com/playlist?list=PLRU2zoAmuzJ2GD68st5SinXXv_Gv1lWRm) - Shahriar Shariati
* [Django2 All In One Course - دوره کامل جنگو و مهندسی بک اند](https://www.youtube.com/playlist?list=PLGlWjLcdLyGyqEqh9rBQ-9toPsFeHWrMr) - Boby Cloud
* [آموزش مقدماتی Django Rest Framework (DRF)&rlm;](https://www.youtube.com/playlist?list=PL7MXODW7Gj1eGnm4dXnydgqSDb3pLpg9v) - TorhamDev : Tech With Tori&rlm;
* [دوره اموزش جنگو مقدماتی تا پیشرفته](https://www.youtube.com/playlist?list=PLAt10Vana3YeAwS_LyLCeu7chml8eP8bh) - Mehran Tarif&rlm; (Silicium&rlm;)
* [سوکت نویسی با کتابخانه جنگو چنلز](https://www.youtube.com/playlist?list=PLRU2zoAmuzJ2GD68st5SinXXv_Gv1lWRm) - Shahriar Shariati&rlm;
* [Django2 All In One Course -&rlm; دوره کامل جنگو و مهندسی بک اند](https://www.youtube.com/playlist?list=PLGlWjLcdLyGyqEqh9rBQ-9toPsFeHWrMr) - Boby Cloud&rlm;
### FastAPI
* [آموزش FastAPI](https://www.youtube.com/playlist?list=PL7MXODW7Gj1c1jviyYkRHKNeU_9BK0Ud7) - TorhamDev : Tech With Tori
* [آموزش FastAPI&rlm;](https://www.youtube.com/playlist?list=PL7MXODW7Gj1c1jviyYkRHKNeU_9BK0Ud7) - TorhamDev : Tech With Tori&rlm;
### Flask
* [آموزش توسعه وب با فریم‌ورک فلسک](https://www.youtube.com/playlist?list=PLdUn5H7OTUk1WYCrDJpNGpJ2GFWd7yZaw) - Alireza Ayinmehr
* [آموزش توسعه وب با فریم‌ورک فلسک](https://www.youtube.com/playlist?list=PLdUn5H7OTUk1WYCrDJpNGpJ2GFWd7yZaw) - Alireza Ayinmehr&rlm;
### Storage
* [آموزش رایگان سف](https://www.youtube.com/playlist?list=PLRMCwJJwWR1DhlYbrvwXCXbudzfxseo7E) - Morteza Bashsiz
* [آموزش رایگان سف](https://www.youtube.com/playlist?list=PLRMCwJJwWR1DhlYbrvwXCXbudzfxseo7E) - Morteza Bashsiz&rlm;
### Web Development
* [آموزش اینسپکت المنت](https://holosen.net/inspect-element-1/) - Hossein Badrnezhad
* [آموزش طراحی وب](https://www.youtube.com/playlist?list=PLF10DSJQktjlCvLNuyxNjMPIHThHuIVqG) - Siavash Mahmoudian
* [برنامه نویسی وب](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88%D8%A8-mk74) - Mohammad Salehe
* [برنامه نویسی وب با HTML و CSS](https://holosen.net/web-design/) - Hossein Badrnezhad *(نیاز به ثبت نام دارد)*
* [دوره اموزشی بوت استرپ 5](https://www.youtube.com/playlist?list=PLAt10Vana3YciJv9EIcNSsm1yTGpOdJIp) - Mehran Tarif (Silicium)
* [وب‌فریم‌ورک‌ها چگونه کار می‌کنند؟](https://www.youtube.com/playlist?list=PLRU2zoAmuzJ33x-___WkhyTJ8dDPaoOPk) - Shahriar Shariati
* [آموزش اینسپکت المنت](https://holosen.net/inspect-element-1/) - Hossein Badrnezhad&rlm;
* [آموزش طراحی وب](https://www.youtube.com/playlist?list=PLF10DSJQktjlCvLNuyxNjMPIHThHuIVqG) - Siavash Mahmoudian&rlm;
* [برنامه نویسی وب](https://maktabkhooneh.org/course/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88%D8%A8-mk74) - Mohammad Salehe&rlm;
* [برنامه نویسی وب با HTML&rlm; و CSS&rlm;](https://holosen.net/web-design/) - Hossein Badrnezhad&rlm; *(نیاز به ثبت نام دارد)*
* [دوره آموزشی بوت استرپ 5&rlm;](https://www.youtube.com/playlist?list=PLAt10Vana3YciJv9EIcNSsm1yTGpOdJIp) - Mehran Tarif&rlm; (Silicium&rlm;)
* [وب‌فریم‌ورک‌ها چگونه کار می‌کنند؟](https://www.youtube.com/playlist?list=PLRU2zoAmuzJ33x-___WkhyTJ8dDPaoOPk) - Shahriar Shariati&rlm;
</div>
+11 -6
View File
@@ -1,3 +1,5 @@
<div dir="rtl" markdown="1">
### Index
* [C++](#cpp)
@@ -7,17 +9,20 @@
### <a id="cpp"></a>C++
* [מבוא לתכנות בשפת C++](https://campus.gov.il/course/course-v1-basmach-pc264/) (קמפוסIL ובסמ״ח)
* [מבוא לתכנות בשפת C++&lrm;](https://campus.gov.il/course/course-v1-basmach-pc264/) (קמפוסIL&lrm; ובסמ״ח)
### Python
* [Next.py – הצעד הבא שלך בפייתון](https://campus.gov.il/course/course-v1-cs-gov-cs-nextpy102/) (קמפוסIL והמרכז לחינוך סייבר)
* [network.py לתכנת במרחב הרשת](https://campus.gov.il/course/cs-gov-cs-networkpy103-2020-1/) (קמפוסIL והמרכז לחינוך סייבר)
* [Python Course Hebrew](https://youtube.com/playlist?list=PL1ZSrkGSJEGMgiAaEx1Cw3khbdDXGx_6i) - Geek of Automation
* [Self.py – הדרך שלך ללמוד פייתון](https://campus.gov.il/course/course-v1-cs-gov_cs_selfpy101/) (קמפוסIL והמרכז לחינוך סייבר)
* [Next.py &lrm; הצעד הבא שלך בפייתון](https://campus.gov.il/course/course-v1-cs-gov-cs-nextpy102/) (קמפוסIL&lrm; והמרכז לחינוך סייבר)
* [network.py&lrm; לתכנת במרחב הרשת](https://campus.gov.il/course/cs-gov-cs-networkpy103-2020-1/) (קמפוסIL&lrm; והמרכז לחינוך סייבר)
* [Python Course Hebrew](https://youtube.com/playlist?list=PL1ZSrkGSJEGMgiAaEx1Cw3khbdDXGx_6i) - Geek of Automation&rlm;
* [Self.py &lrm; הדרך שלך ללמוד פייתון](https://campus.gov.il/course/course-v1-cs-gov_cs_selfpy101/) (קמפוסIL&lrm; והמרכז לחינוך סייבר)
### R
* [מבוא לתכנות ועיבוד נתונים בשפת R](https://campus.gov.il/course/telhai-acd-rfp4-telhai-r/) (קמפוסIL ומכללת תל־חי)
* [מבוא לתכנות ועיבוד נתונים בשפת R&rlm;](https://campus.gov.il/course/telhai-acd-rfp4-telhai-r/) (קמפוסIL&lrm; ומכללת תל־חי)
</div>
+17 -17
View File
@@ -14,56 +14,56 @@
### Algorithms
* [Data Structures and Algorithms Analysis Complete Course in Hindi/Urdu \| Data structures by Fahad Hussain \| data structures and algorithms tutorial](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfPNlAKWxBqdznCcXV4iWCz) - Fahad Hussain
* [Data Structures and Algorithms Analysis Complete Course in Hindi/Urdu \| Data structures by Fahad Hussain \| data structures and algorithms tutorial](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfPNlAKWxBqdznCcXV4iWCz) - Fahad Hussain&rlm;
### Android
* [Flutter App Development](https://www.youtube.com/playlist?list=PLlvhNpz1tBvH4Wn8rMjtscK3l2pXnC9aN) - Code With Dhruv
* [The complete Android Application Development Course in Hindi/Urdu \| Android Development for Beginners in Hindi - Urdu \| Android tutorial in Urdu](https://www.youtube.com/playlist?list=PLtCBuHKmdxOe8IWZnA515lGPKaWx5WNOE) - Fahad Hussain
* [Mobile App Development Tutorial Series using React Native in Urdu / Hindi](https://www.youtube.com/playlist?list=PL9fcHFJHtFaZ6DuInqORqFUaKiZO1XCmb) - Perfect Web Solutions
* [Flutter App Development](https://www.youtube.com/playlist?list=PLlvhNpz1tBvH4Wn8rMjtscK3l2pXnC9aN) - Code With Dhruv&rlm;
* [The complete Android Application Development Course in Hindi/Urdu \| Android Development for Beginners in Hindi - Urdu \| Android tutorial in Urdu](https://www.youtube.com/playlist?list=PLtCBuHKmdxOe8IWZnA515lGPKaWx5WNOE) - Fahad Hussain&rlm;
* [Mobile App Development Tutorial Series using React Native in Urdu / Hindi](https://www.youtube.com/playlist?list=PL9fcHFJHtFaZ6DuInqORqFUaKiZO1XCmb) - Perfect Web Solutions&rlm;
### <a id="c"></a>C
* [C language tutorial for beginners Urdu/Hindi](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfDo1cChVR3jYEzLtNpGjXa) - Fahad Hussain
* [C language tutorial for beginners Urdu/Hindi](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfDo1cChVR3jYEzLtNpGjXa) - Fahad Hussain&rlm;
### <a id="cplusplus"></a>C++
* [C++ Course Series for Beginner in Urdu/Hindi](https://www.youtube.com/playlist?list=PLuuQCKO44unsLwJMkR8_koVG6vDPjMYmH) - Learning Point
* [C++ Free Course for Beginners in (Urdu /Hindi)](https://www.youtube.com/playlist?list=PLt4rWC_3rBbWnDrIv4IeC4Vm7PN1wvrNg) - CodeMite
* [Programming Fundamentals With C++ Complete Course In urdu \| Hindi](https://www.youtube.com/playlist?list=PL4QkPoTgwFULciDFVJEHEwOKMtf9Q_Aqh) - Kacs Learnings
* [C++ Course Series for Beginner in Urdu/Hindi](https://www.youtube.com/playlist?list=PLuuQCKO44unsLwJMkR8_koVG6vDPjMYmH) - Learning Point&rlm;
* [C++ Free Course for Beginners in (Urdu /Hindi)](https://www.youtube.com/playlist?list=PLt4rWC_3rBbWnDrIv4IeC4Vm7PN1wvrNg) - CodeMite&rlm;
* [Programming Fundamentals With C++ Complete Course In urdu \| Hindi](https://www.youtube.com/playlist?list=PL4QkPoTgwFULciDFVJEHEwOKMtf9Q_Aqh) - Kacs Learnings&rlm;
### <a id="csharp"></a>C#&lrm;
* [C# Tutorial For Beginners in Hindi/Urdu](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfLseCtdZg1a3XBsDFbRVfd) - Fahad Hussain
* [C# Tutorials In Urdu/Hindi](https://youtube.com/playlist?list=PLUyYwyJA_WfQd5zeCU890TDFQAqboekyc) - ProgramInUrdu
* [C# Tutorial For Beginners in Hindi/Urdu](https://www.youtube.com/playlist?list=PLtCBuHKmdxOfLseCtdZg1a3XBsDFbRVfd) - Fahad Hussain&rlm;
* [C# Tutorials In Urdu/Hindi](https://youtube.com/playlist?list=PLUyYwyJA_WfQd5zeCU890TDFQAqboekyc) - ProgramInUrdu&rlm;
### Figma
* [Figma Design Complete Course in Urdu | Hindi](https://youtube.com/playlist?list=PLspW40rZgNekDbMeeuV8VLt3JoCMg8pQt&si=_J8tYEL3W0YFiHNh) - Tutorials Town
* [Figma Design Complete Course in Urdu | Hindi](https://youtube.com/playlist?list=PLspW40rZgNekDbMeeuV8VLt3JoCMg8pQt&si=_J8tYEL3W0YFiHNh) - Tutorials Town&rlm;
### <a id="html-and-css"></a>HTML and CSS
* [HTML5 & CSS3 Tutorials In Urdu and Hindi](https://youtube.com/playlist?list=PLUyYwyJA_WfTr3YWWJ41_V7TrRZoq6cBT) - ProgramInUrdu
* [HTML5 & CSS3 Tutorials in Urdu/Hindi](https://www.youtube.com/playlist?list=PLU4yvac0MJbJrUWqGQbtFxOYR3gRvXxMs) - OnlineUstaad
* [HTML5 & CSS3 Tutorials In Urdu and Hindi](https://youtube.com/playlist?list=PLUyYwyJA_WfTr3YWWJ41_V7TrRZoq6cBT) - ProgramInUrdu&rlm;
* [HTML5 & CSS3 Tutorials in Urdu/Hindi](https://www.youtube.com/playlist?list=PLU4yvac0MJbJrUWqGQbtFxOYR3gRvXxMs) - OnlineUstaad&rlm;
### Java
* [Java Programming in Urdu/Hindi](https://www.youtube.com/playlist?list=PLU4yvac0MJbKs78u32MyVgYFg9d-6DYGL) - OnlineUstaad
* [Java Programming in Urdu/Hindi](https://www.youtube.com/playlist?list=PLU4yvac0MJbKs78u32MyVgYFg9d-6DYGL) - OnlineUstaad&rlm;
### Next.js
* [Master Next JS 14: Complete Next JS 14 Tutorial from Basics to Advanced in Hindi/Urdu with Projects & Interview Prep](https://www.youtube.com/playlist?list=PL5OhSdfH4uDu6YJcHhmQLkwx4hPWyppos) - The Techzeen
* [Master Next JS 14: Complete Next JS 14 Tutorial from Basics to Advanced in Hindi/Urdu with Projects & Interview Prep](https://www.youtube.com/playlist?list=PL5OhSdfH4uDu6YJcHhmQLkwx4hPWyppos) - The Techzeen&rlm;
### Python
* [Python](https://www.youtube.com/playlist?list=PL-vQNozaqIxuPzFUVEIrYDvd6ieUshJTw) - Kawish - Urdu
* [Python_ka_chilla (python in 40 days in urdu/Hindi)](https://www.youtube.com/playlist?list=PL9XvIvvVL50HVsu-Ao8NBr0UJSO8O6lBI) - Codeanics
* [Python](https://www.youtube.com/playlist?list=PL-vQNozaqIxuPzFUVEIrYDvd6ieUshJTw) - Kawish - Urdu&rlm;
* [Python_ka_chilla (python in 40 days in urdu/Hindi)](https://www.youtube.com/playlist?list=PL9XvIvvVL50HVsu-Ao8NBr0UJSO8O6lBI) - Codeanics&rlm;
+49
View File
@@ -262,3 +262,52 @@ Se riesci a stamparlo e conservarne l'essenza, non è un tutorial interattivo.
- È possibile specificare più di un file da controllare, utilizzando un singolo spazio per separare ogni voce.
- Se specifichi più di un file, i risultati della build si basano sul risultato dell'ultimo file controllato. Dovresti essere consapevole che potresti ottenere il passaggio di build verdi a causa di ciò, quindi assicurati di ispezionare il registro di build alla fine della Pull Request facendo clic su "Show all checks" -> "Details".
### Come risolvere gli errori del linter RTL/LTR
Se viene eseguito il linter RTL/LTR Markdown Linter (sui file `*-ar.md`, `*-he.md`, `*-fa.md`, `*-ur.md`) e si vedono errori o warning:
- **Parole LTR** (ad esempio "HTML", "JavaScript") in testo RTL: aggiungi `&rlm;` immediatamente dopo ogni segmento LTR;
- **Simboli LTR** (ad esempio "C#", "C++"): aggiungi `&lrm;` immediatamente dopo ogni simbolo LTR;
#### Esempi
**SCORRETTO**
```html
<div dir="rtl" markdown="1">
* [كتاب الأمثلة في R](URL) - John Doe (PDF)
</div>
```
**CORRETTO**
```html
<div dir="rtl" markdown="1">
* [كتاب الأمثلة في R&rlm;](URL) - John Doe&rlm; (PDF)
</div>
```
---
**SCORRETTO**
```html
<div dir="rtl" markdown="1">
* [Tech Podcast - بودكاست المثال](URL) – Ahmad Hasan, محمد علي
</div>
```
**CORRETTO**
```html
<div dir="rtl" markdown="1">
* [Tech Podcast - بودكاست المثال](URL) Ahmad Hasan,&rlm; محمد علي
</div>
```
---
**SCORRETTO**
```html
<div dir="rtl" markdown="1">
* [أساسيات C#](URL)
</div>
```
**CORRETTO**
```html
<div dir="rtl" markdown="1">
* [أساسيات C#&lrm;](URL)
</div>
```
+49
View File
@@ -286,3 +286,52 @@ If you can print it out and retain its essence, it's not an Interactive Tutorial
- You may specify more than one file to check, using a single space to separate each entry.
- If you specify more than one file, results of the build are based on the result of the last file checked. You should be aware that you may get passing green builds due to this so be sure to inspect the build log at the end of the Pull Request by clicking on "Show all checks" -> "Details".
### Fixing RTL/LTR linter errors
If you run the RTL/LTR Markdown Linter (on `*-ar.md`, `*-he.md`, `*-fa.md`, `*-ur.md` files) and see errors or warnings:
- **LTR words** (e.g. “HTML”, “JavaScript”) in RTL text: append `&rlm;` immediately after each LTR segment;
- **LTR symbols** (e.g. “C#”, “C++”): append `&lrm;` immediately after each LTR symbol;
#### Examples
**BAD**
```html
<div dir="rtl" markdown="1">
* [كتاب الأمثلة في R](URL) - John Doe (PDF)
</div>
```
**GOOD**
```html
<div dir="rtl" markdown="1">
* [كتاب الأمثلة في R&rlm;](URL) - John Doe&rlm; (PDF)
</div>
```
---
**BAD**
```html
<div dir="rtl" markdown="1">
* [Tech Podcast - بودكاست المثال](URL) – Ahmad Hasan, محمد علي
</div>
```
**GOOD**
```html
<div dir="rtl" markdown="1">
* [Tech Podcast - بودكاست المثال](URL) Ahmad Hasan,&rlm; محمد علي
</div>
```
---
**BAD**
```html
<div dir="rtl" markdown="1">
* [أساسيات C#](URL)
</div>
```
**GOOD**
```html
<div dir="rtl" markdown="1">
* [أساسيات C#&lrm;](URL)
</div>
```
File diff suppressed because it is too large Load Diff
+131
View File
@@ -0,0 +1,131 @@
rtl_config:
# Common LTR keywords needing RLM in RTL context
ltr_keywords:
- HTML
- HTML5
- CSS
- CSS3
- ES6
- JavaScript
- PHP
- Python
- Java
- Ruby
- Perl
- Swift
- Kotlin
- Scala
- Go
- Rust
- SQL
- API
- SDK
- IDE
- JSON
- XML
- AJAX
- REST
- SOAP
- GraphQL
- Docker
- Kubernetes
- AWS
- Azure
- GCP
- Git
- GitHub
- Linux
- Unix
- macOS
- Windows
- Android
- iOS
- React
- Angular
- Vue
- jQuery
- Svelte
- Bash
- Zsh
- Vim
- Bootstrap
- Sass
- LESS
- TypeScript
- CoffeeScript
- WordPress
- Drupal
- Joomla
- Django
- Flask
- Laravel
- Symfony
- Spring
- Gatsby
- OpenGL
- DirectX
- Unity
- Unreal Engine
- TensorFlow
- PyTorch
- Keras
- Pandas
- NumPy
- SciPy
- Matplotlib
- Arduino
- Raspberry Pi
- Scratch
- PostgreSQL
- MySQL
- MongoDB
- SQLite
- Oracle
- DB
- DBMS
- OS
- MVC
- OOP
- DevOps
- Agile
- Scrum
- Emacs
- IntelliJ
- PowerShell
- VS Code
- Sublime Text
- AngularJS
# LTR symbols/patterns needing LRM in RTL context.
ltr_symbols:
- C#
- C++
- F#
- .NET
- ASP.NET
- Vue.js
- Node.js
- React.js
- Express.js
- Next.js
- Nuxt.js
- Objective-C
- CI/CD
# Regex pattern for identifying pure LTR text segments
pure_ltr_pattern: "^[\\u0000-\\u007F]+$"
# Regex pattern for identifying RTL characters
rtl_chars_pattern: "[\\u0590-\\u08FF]"
# HTML directional markers to be recognised
rlm_entities: ['&rlm;', '&#x200F;', '&#8207;']
lrm_entities: ['&lrm;', '&#x200E;', '&#8206;']
# Severity levels for different issue types
severity:
bidi_mismatch: error
keyword: warning
symbol: warning
pure_ltr: notice
author_meta: notice