27 Commits

Author SHA1 Message Date
Qarebaq (BlackGarden)
012cdb10b7
Update free-programming-books-fa_IR.md - thinkpython book added (#13025)
* Update free-programming-books-fa_IR.md - thinkpython book added

* Update free-programming-books-fa_IR.md
2025-11-25 10:37:27 -05:00
JongMyeong HAN
798eb321f4
Fixes annotations like (🗃️) (#11996)
That seems to work! fixes #11995
2025-09-30 15:29:49 -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
esmaeelE
0e1eedca18
Fix typo (#11083)
* Update free-programming-books-fa_IR.md

The Tao of Programming

* Update free-programming-books-fa_IR.md

Reorder alphabetically.

* fix PDF indication

add pdf type of file

* fix space in pdf indication

fix space in pdf indication

* Update free-programming-books-fa_IR.md

fix typo
2024-03-04 10:12:24 -05:00
Amir Zarchini
0cd36b58b8
Update free-programming-books-fa_IR.md (#9431)
Co-authored-by: Eric Hellman <eric@hellman.net>
2023-11-06 21:10:24 -05:00
Jatin Dua
81c09adfe4
Remove unavailable books (#10897)
* Remove unavailable books

* style: Remove content inconsistencies

* Remove unnecessary index
2023-10-30 22:21:48 -04:00
esmaeelE
1ee75703ff
The Tao of Programming translation added (#10038)
* Update free-programming-books-fa_IR.md

The Tao of Programming

* Update free-programming-books-fa_IR.md

Reorder alphabetically.

* fix PDF indication

add pdf type of file

* fix space in pdf indication

fix space in pdf indication
2023-10-12 23:51:47 -04:00
Emad Rad
d32e155eee
New Persian books (#9990)
* added Asyncio in Python in Persian

* added Django Design Patterns and Best Practices in Persian
2023-10-08 18:44:53 -04:00
Arman Rahimi
e4a074551f
Fa_ir minor edits (Farsi feedback requested!) (#9640)
* Update free-programming-books-fa_IR.md

Add semi-space to the Persian book list

* Update CODE_OF_CONDUCT-fa_IR.md

Add semi-space and translation fix to the Persian contribution guide

* Update free-programming-books-fa_IR.md

fix number of blank lines before the heading

* improve the transaltion
2023-10-02 09:53:52 -04:00
Saeid Darvish
54910138db
Updated the "python.coderz.ir" info (#9351)
* Edited python.coderz.ir link

* modified its name
* fixed its URL

* added author's name of "python.coderz.ir"

* fixed the URL (python.coderz.ir)
2023-04-24 10:38:42 -04:00
David Ordás
62c0aa5a90
fix: format resources according guidelines (#7094)
* resources format is title-author, not author-title

* fix: link inside link is not valid markdown syntax

it seems that this resource was two in the past. recovering offending resource from #5273

* fix: resources format stars with a link. deduplicate both versions

* complete creators of altered resources
2022-09-20 21:07:50 -04:00
eric
2e2bb31961 Revert "improve resource bugs found fixing EbookFoundation/free-programming-books-parser/8 (#7090)"
This reverts commit 25a05812f7ed2399352b1c9fbacb1226b8ffac69.
2022-09-18 10:11:14 -04:00
David Ordás
25a05812f7
improve resource bugs found fixing EbookFoundation/free-programming-books-parser/8 (#7090) 2022-09-18 10:04:43 -04:00
David Ordás
9bfd1914d5
fix: homogenize authoring format and place (#7034)
* fix: homogenize authors format and place

- use colon as author separator (replaces `&`, `and`, `y`, `e`, `et`...)
- ensures is placed after resource title, not part of itself `title - author`
- `et al.` as special author/token to group many

* remove double comma

* fix: recover traducer role notations as `trad.:`

* detect and apply some `trad.:`s role anotation

* chore: `trad.:` to `trl.:`

Apply suggestion made by Eric at https://github.com/EbookFoundation/free-programming-books/pull/7034#discussion_r954014539

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

* Sort author - format

* fix: remove empty authors (dash is alone)

Used regex: `-\s+(\(|$)`

* format: change to `edt.:` role

Definition list at https://www.loc.gov/marc/relators/relaterm.html

Co-authored-by: Eric Hellman <eric@hellman.net>
2022-09-02 09:36:04 -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 4d6a74e7d794f1f264cb2f88d9531e43038d3be2.

Co-authored-by: AhmedElTabarani <eltabaraniahmed@gmail.com>
2022-08-12 15:14:00 +02:00
Reza Yazdani
04cf8c84ed
Update free-programming-books-fa_IR.md (#6983)
* Update free-programming-books-fa_IR.md

* Update free-programming-books-fa_IR.md

* Update free-programming-books-fa_IR.md
2022-08-05 15:34:14 +02:00
David Ordás
44579d3373
join and homogenize HTML & CSS section title across files (#6963) 2022-07-29 12:46:20 +02:00
ImVector
6f74010341
fix(books): free-programming-books-fa_IR broken link (#6965) 2022-07-25 15:12:12 +02:00
MakanFar
a824fc42ed
fix broken link (#6913) 2022-07-13 18:55:40 +02:00
M.Hossein
78d04a41b6
add react js into js section (#6079)
* add react js into js section

* fix order with swaping

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

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

* fix: alphabetize titles first, after creators

Co-authored-by: Eric Hellman <eric@hellman.net>
Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2021-11-10 09:13:11 -05:00
Hossein Badrnezhad
ad0dea48a3
Design Patterns added (#6217)
* Design Patterns added

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

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

Co-authored-by: Eric Hellman <eric@hellman.net>
Co-authored-by: David Ordás <3125580+davorpa@users.noreply.github.com>
2021-10-31 14:15:16 -04:00
David Ordás
d115492ab8
fix(books): CSS heading patch - fa_IR (#6209)
Improves EbookFoundation/free-programming-books#5273
2021-10-12 21:50:30 -04:00
Emad Rad
bdc83f40e0
New Farsi/Persian links (#6198)
* New books on linux added

* New Git course added

* signup required (in Farse) added to the course

* fix linter issue

Co-authored-by: Emad Ehsanrad <emad.ehsanrad@gmail.com>
2021-10-12 11:02:28 -04:00
M.Hossein
ec7c9e8e97
Fa persian js book (#6047)
* added functional light js book

* fix javascript dictation

* fix ordering alphabet

* fix ordering with swaping

* remove functional light js book
2021-10-08 10:59:32 -04:00
Eric Hellman
7671f23daf
alphabetize added languages (#5273)
* alphabetize added language courses

Our linter had not been looking at these languages

* fix books files

* casts and more
2021-01-23 00:28:18 -05:00
Seth
57c9dfab47
Minor formatting fixes. (#5212) 2020-12-09 15:45:07 -05:00
Eric Hellman
d703553631
reorganize files (#5199)
* reorganize files

1. make it easier to find files
2. reduce scrolling to get to README on main view of repo

* remove tr.txt again
2020-12-03 17:41:33 -05:00