Commit Graph

36 Commits

Author SHA1 Message Date
JongMyeong HAN
798eb321f4 Fixes annotations like (🗃️) (#11996)
That seems to work! fixes #11995
2025-09-30 15:29:49 -04:00
Ramadan Yassin
1d2dc851d1 Update free-courses-ar.md add Rust Section Courses (#11883)
* Update free-courses-ar.md 

add 
Rust Section
- Rust للغلابة
- Rust and chill بالعربي

* Update free-courses-ar.md add ‏ to Rust Section
2025-06-22 08:37:56 -04:00
Gabriele Ciccotelli
caa05be694 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
2025-05-28 10:46:25 -04:00
أحمد الطبراني
877d372ee4 Add new collection of Arabic Courses (#11103)
* Add new collection of Arabic Courses

* fix linter errors

* fix linter errors again

* fix linter errors last time
2024-03-24 17:45:05 -04:00
David Ordás
59e4fba4b6 format: syntax of in-process anotation should be *(🚧 in process)* (#7036)
* format: update syntax of `in process` anotation (CONTRIBUTING-*)

from (🚧 *in process*)
to   *(🚧 in process)*

* format: apply notes syntax to `in_process` resources

- Applied note `*(🚧 in process)*` translating `in process` to underlying language there where we have previous translated text
- Used regex to detect most of notes: `((\*[^\*]+\*)|(_[^_]+_))`

* apply to new resources added in #7082

* Update books/free-programming-books-subjects.md

Co-authored-by: Leithen <lcrider@cvent.com>

---------

Co-authored-by: Eric Hellman <eric@hellman.net>
Co-authored-by: Leithen <lcrider@cvent.com>
2023-11-29 17:15:41 -05:00
Lakshmi N
ea1b270a03 Fixing broken ui in case of "|" (#10880)
* Fixing ui in case of "|"

* Fix lint
2023-11-21 20:08:41 -05:00
JasonMa170699
5ef0288772 Update free-courses-ar.md (#10717)
* Update free-courses-ar.md

* space

* sort

* arabiic is confusing!

* space

* space

* sort

* playlist

---------

Co-authored-by: Eric Hellman <eric@hellman.net>
2023-11-17 13:37:24 -05:00
AhmedKaram
b0fefc788f Update free-courses-ar.md (#10465)
* Update free-courses-ar.md

some useful courses from Bigdata channel

* Update free-courses-ar.md

* Update free-courses-ar.md

* Update free-courses-ar.md

* Update free-courses-ar.md

adding name for creator

* Update courses/free-courses-ar.md

Co-authored-by: Eric Hellman <eric@hellman.net>

* Update courses/free-courses-ar.md

* Update courses/free-courses-ar.md

---------

Co-authored-by: Eric Hellman <eric@hellman.net>
2023-11-17 08:17:11 -05:00
AhmedKaram
e324f2356c Update free-courses-ar.md (#10555)
* Update free-courses-ar.md

adding more courses on operating system

* Update free-courses-ar.md

* Update free-courses-ar.md

* Update free-courses-ar.md
2023-10-21 10:16:14 -04:00
Eslam Adel
6ffcf98e10 add free AR Kubernetes course (#9586)
* add free AR Kubernetes course

* fix lint
2023-10-01 10:30:25 -04:00
Eric Hellman
d77692cabd remove youtube labels (#9376) 2023-05-13 16:19:13 -04:00
أحمد الطبراني
e41a2662bd Fix wrong channel and playlist names of AWS courses (#9331)
* Fix wrong channel and playlist names of AWS courses

* remove empty line
2023-04-09 17:56:14 -04:00
أحمد الطبراني
4b662fb79c add new arabic cources (#9292)
* add new arabic cources

* fix lint

* Update free-courses-ar.md
2023-03-04 13:21:53 -05:00
ahmdyasser
e47702d3c4 Update free-courses-ar.md (#8940)
* Update free-courses-ar.md

* Update courses/free-courses-ar.md

Co-authored-by: Sharan J <50091666+shrn01@users.noreply.github.com>
2022-11-11 11:09:48 -05:00
Rahul Gupta
f9b4c0c918 Added Amazon Web Service (AWS) Arabic Playlist (#7437)
* Added Amazon Web Service (AWS) Arabic Playlist

* updated the Link

Co-authored-by: Flicker786 <69352034+Flicker786@users.noreply.github.com>
2022-10-03 21:46:40 -04:00
mostafa amine briere
8745e48069 Update free-courses-ar.md (#7101)
* Update free-courses-ar.md

* Update free-courses-ar.md
2022-09-22 21:44:00 -04:00
أحمد الطبراني
0561a25f53 add & update arabic course (#7082)
* add & update arabic course

* fix

* update url to playlist

* Update courses/free-courses-ar.md

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2022-09-18 09:55:19 -04:00
David Ordás
5324b9e3cf fix: homogenize markdown across files using markdownlint rules (#6988)
* chore: homogenize C# table of content anchor (`#c-sharp` to `#csharp`)

* format: homogenize c# category title

right markdown escape instead of use HTML entities

* lint: fix `MD012/no-multiple-blanks` rule

Multiple consecutive blank lines [Expected: 2; Actual: 3]

* lint: fix `MD039/no-space-in-links`

Spaces inside link text

* lint: fix `MD009/no-trailing-spaces` rule

Trailing spaces [Expected: 0 or 4; Actual: 1]
Trailing spaces [Expected: 0 or 4; Actual: 2]

* lint: fix `MD006/ul-start-left` rule

* format: remove extra spaces between note tokens

* spell: fix lint `MD044/proper-names` rule

- HTML
- JavaScript
- YouTube

* spell: normalize to the most common `Index` heading

* lint: fix `MD007/ul-indent` rule

Unordered list indentation [Expected: 4; Actual: 2]

* format: escape pipes `|` from resources text

addresses #5176

* add Hesham Asem courses about machine and deep learning and nlp

* Expand the name of nlp section

* Change the order

* Revert "spell: normalize to the most common `Index` heading"

This reverts commit 4d6a74e7d7.

Co-authored-by: AhmedElTabarani <eltabaraniahmed@gmail.com>
2022-08-12 15:14:00 +02:00
أحمد الطبراني
a91629be7e Add Hesham Asem's courses about Machine and Deep learning and NLP (#6989)
* add Hesham Asem courses about machine and deep learning and nlp

* Expand the name of nlp section

* Change the order
2022-08-07 22:37:53 +02:00
أحمد الطبراني
45c1e5bf30 Remove an AWS course from books to courses section (#6987) 2022-08-07 22:36:28 +02:00
David Ordás
44579d3373 join and homogenize HTML & CSS section title across files (#6963) 2022-07-29 12:46:20 +02:00
أحمد الطبراني
19958fb8ae add new arabic courses (#6964)
* add new arabic courses

* fix extra new line

* fix order

* add some missing &rlm;

* delete courses that dependent on paid books
2022-07-27 18:57:44 +02:00
Ahmed Osama
2458d4b0ce add courses to Arabic courses page (#6937)
* add bootstrap course by Abdelrahman Gamal

* add js course by abdelrahman gamal

* add Assembly course to ar courses

* fix Alphabetical ordering

* add php course to ar courses

* add jQuery course to ar courses

* fix rtl in js course

* fix rtl in php course

* fix rtl in jQuery course

* fix bootstrap course name

* fix Assembly course
2022-07-18 21:59:43 +02:00
Ahmed Osama
9b954cd9d8 add gulp.js resource to ar courses (#6906)
* add gulp.js resource to ar courses

* fix alphabetical order
2022-07-09 03:12:43 -04:00
أحمد الطبراني
2c5d677940 add new araic courses (#6837)
* add new araic courses

* fix

* fix missing space and '\|'

* fix

* fix pipes
2022-05-01 20:12:13 -04:00
abdday
2c54c7aa8f Update free-courses-ar.md (#6835)
* Update free-courses-ar.md

add new youtube playlist for Java

* Update free-courses-ar.md

* Update free-courses-ar.md

* Update free-courses-ar.md
2022-05-01 20:08:23 -04:00
أحمد الطبراني
8be09c7d71 add new arabic course (#6766)
Co-authored-by: ImVector <59611597+LuigiImVector@users.noreply.github.com>
Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2022-03-12 12:34:11 +01:00
أحمد الطبراني
2590eab577 Add RTL to courses file (#6715)
* Add RTL to courses file

* Escape pipes (markdown table token)

Via #5176

* use raw LRM mark instead its HTML entity

`‎` instead of &lrm;

* remove LTM from .NET

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2022-02-26 16:53:52 -05:00
David Ordás
0e9ad7e994 chore: HTML5 anchors compilant <a name= > <a id= (#6730)
* HTML5 anchors compilant `<a name=>` > `<a id=` for books

* HTML5 anchors compilant `<a name=>` > `<a id=` for courses

* HTML5 anchors compilant `<a name=>` > `<a id=` for contribs

* HTML5 anchors compilant `<a name=>` > `<a id=` for casts

* HTML5 anchors compilant `<a name=>` > `<a id=` for cheats

* HTML5 anchors compilant `<a name=>` > `<a id=` for interactives

* HTML5 anchors compilant `<a name=>` > `<a id=` for playgrounds
2022-02-25 11:23:35 -05:00
David Ordás
c72c0d50af Escape pipes making wrong render as tables in Kramdown/GFM engines (#6723)
Search using regexp: (?<!\\)\|

Via EbookFoundation/free-programming-books#5176
2022-02-14 11:42:09 -05:00
David Ordás
180a96757f fix: Use Markdown instead of HTML markup for H3 & H4 headings (#6689)
* fix: Markdown markup for `C++` heading

* fix: Markdown markup for `Дизайн и Aрхитектура` heading

* fix: Markdown H4 markup for `Next.js` heading

* fix: Markdown H3 markup for `C#` heading
2022-01-31 12:02:06 -05:00
أحمد الطبراني
1569382d56 add new courses (#6667)
* add new courses

* fix order
2022-01-08 20:06:35 -05:00
Ahmed Khairy
2f0747753d Add Arabic courses (#6541)
* add Arabic courses

* add Arabic courses

* add Arabic courses

* add Arabic courses

* add Arabic courses

* upload changes

* upload changes

* upload changes

* upload changes

* upload changes

* upload changes

* Update courses/free-courses-ar.md

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>

* Update courses/free-courses-ar.md

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>

* add software architecture

Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2021-11-01 09:15:10 -04:00
Abd El-Twab M. Fakhry
3ffbb8431f Add flutter/dart courses in arabic (#5932)
* Add flutter/dart courses in arabic

I added new sections for Flutter and Dart courses
provided by eng.Asem Saafan

* Add flutter/dart courses in arabic

I added new sections for Flutter and Dart courses
provided by eng.Asem Saafan

* Add flutter/dart courses in arabic

I added new sections for Flutter and Dart courses
provided by eng.Asem Saafan

* Add flutter/dart courses in arabic

I added new sections for Flutter and Dart courses
provided by eng.Asem Saafan
2021-10-05 21:06:40 -04:00
David Ordás
0b331b7798 refactor: normalize Angular and Angular.js sections/resources (#5525)
* chore: improve angular / angular.js listings

- Wellnaming section
- fix book title, add format, add creators as is seen in file

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Wellnaming section
- fix book title, add format, add creators as is seen in file

via EbookFoundation#4940

* chore: improve angular / angular.js listings

- Wellnaming sections (typescript>angular, javascript>angularjs)
- Add free resources to complete listing with at least 2 items, mainly from html.it website.
- fix titles, add format, add creators as is seen in linked files

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Move Angular resources from Angular.js to TypeScript
- Add more resources to avoid single sections

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Sections (typescript>angular, javascript>angularjs)
- Add free resources to complete listing with at least 2 items.
- fix titles, add format, add creators as is seen in linked files

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Move Angular resources to TypeScript
- Well-naming sections
- fix book title, add format, add creators as is seen in files

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Move Angular resources from Angular.js to TypeScript
- Add more resources to avoid single sections
- Complete notes, titles, format, authors

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Well-naming section
- Complete notes, titles, format, authors

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Handle both as anchor. angular and angular.js

via EbookFoundation/free-programming-books#4940

* chore: improve angular / angular.js listings

- Add http://plnkr.co as valid playground for both
- Add https://stackblitz.com as valid playground for both

via EbookFoundation/free-programming-books#4940

* chore: Angular.js > AngularJS and other pitfails

- Use AngularJS as title/name
- Fix some errors with heading levels in Javascript/Typescript section
- Finish to move some resources accoding their content

via EbookFoundation/free-programming-books#4940

* feature: sections crosslinks as blockquotes

* feature: sections crosslinks as blockquotes

Mainly for AngularJS/Angular, Javascript/Typescript,
web, databases listing sections

* chore: revert scoping crosslinks only to Angular
2021-09-14 14:29:51 -04:00
أحمد الطبراني
143f4932b2 Add Some Arabic Courses (#5346)
* Add Some Arabic Courses

* make travis happy

* fixed last travis issues

* change titles
2021-04-29 23:58:32 -04:00