From 37868d8475805522288f4306f089be851458c138 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 18 Jul 2026 05:01:55 +0000 Subject: [PATCH 1/2] Fix live site URLs and remove spell/link CI checks Point README, docs, and app metadata at freecodebooks.vercel.app, correct double-slash library links and a Website typo, and drop the cspell and lychee workflows plus their config files. Co-authored-by: Muhammad Saim Shafique --- .github/REPOSITORY_SETTINGS.md | 4 +- .github/workflows/link-check.yml | 38 -------- .github/workflows/spellcheck.yml | 31 ------- .lychee.toml | 40 --------- README.md | 11 +-- cspell.json | 147 ------------------------------- docs/faq.md | 4 +- web/README.md | 4 +- 8 files changed, 12 insertions(+), 267 deletions(-) delete mode 100644 .github/workflows/link-check.yml delete mode 100644 .github/workflows/spellcheck.yml delete mode 100644 .lychee.toml delete mode 100644 cspell.json diff --git a/.github/REPOSITORY_SETTINGS.md b/.github/REPOSITORY_SETTINGS.md index d5dc0d4..de87932 100644 --- a/.github/REPOSITORY_SETTINGS.md +++ b/.github/REPOSITORY_SETTINGS.md @@ -6,8 +6,8 @@ The cloud agent token could not update repository metadata (HTTP 403). Apply the | Field | Recommended value | | --- | --- | -| **Description** | `Curated programming books for 30 languages — beginner to advanced. Python, JavaScript, Rust, Go, Java, HTML/CSS, and more.` | -| **Website** | `https://programming-books-pdf.vercel.app/` | +| **Description** | `Curated programming books for 32 languages — beginner to advanced. Python, JavaScript, Rust, Go, Java, HTML/CSS, and more.` | +| **Website** | `https://freecodebooks.vercel.app/` | | **Releases** | Optional dated tags such as `2026.07` when the catalog changes substantially | ## Topics (≤ 20) diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml deleted file mode 100644 index ddd8a8b..0000000 --- a/.github/workflows/link-check.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Link check - -on: - push: - branches: [main] - paths: ["**/*.md", ".lychee.toml", ".github/workflows/link-check.yml"] - pull_request: - paths: ["**/*.md", ".lychee.toml", ".github/workflows/link-check.yml"] - schedule: - - cron: "0 6 * * 1" - workflow_dispatch: - -permissions: - contents: read - -jobs: - lychee: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Link Checker - uses: lycheeverse/lychee-action@v2 - with: - args: >- - --config .lychee.toml - --no-progress - README.md - CONTRIBUTING.md - CODE_OF_CONDUCT.md - SECURITY.md - docs/**/*.md - fail: true - format: markdown - jobSummary: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml deleted file mode 100644 index a3aa48d..0000000 --- a/.github/workflows/spellcheck.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Spellcheck - -on: - push: - branches: [main] - paths: ["**/*.md", "cspell.json", ".github/workflows/spellcheck.yml"] - pull_request: - paths: ["**/*.md", "cspell.json", ".github/workflows/spellcheck.yml"] - -permissions: - contents: read - -jobs: - cspell: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Run cspell - uses: streetsidesoftware/cspell-action@v6 - with: - files: | - README.md - CONTRIBUTING.md - CODE_OF_CONDUCT.md - SECURITY.md - NOTICE.md - docs/**/*.md - config: cspell.json - incremental_files_only: false diff --git a/.lychee.toml b/.lychee.toml deleted file mode 100644 index 01a0e5c..0000000 --- a/.lychee.toml +++ /dev/null @@ -1,40 +0,0 @@ -############################# -# Lychee link checker config -############################# - -verbose = "warning" -no_progress = true -max_concurrency = 4 -timeout = 30 -retry_wait_time = 3 -max_retries = 3 - -# Common transient / bot-block statuses -accept = ["200", "206", "429", "999"] - -# Skip noisy, auth-walled, or flaky hosts in CI -exclude = [ - '^https://drive\.google\.com/', - '^https://www\.oreilly\.com/', - '^https://learning\.oreilly\.com/', - '^https://www\.amazon\.', - '^https://www\.goodreads\.com/', - '^https://www\.pearson\.', - '^https://www\.wiley\.', - '^https://www\.packtpub\.com/', - '^https://www\.manning\.', - '^https://twitter\.com/', - '^https://x\.com/', - '^https://books\.apple\.com/', - '^https://cdn\.jsdelivr\.net/', - '^https://img\.shields\.io/', - '^https://juliaacademy\.com/', - '^https://juliadatascience\.io/', - '^https://www\.gnu\.org/', -] - -exclude_path = [ - "REPORT.md", -] - -scheme = ["https", "http", "file"] diff --git a/README.md b/README.md index dd7695d..0a46c71 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,20 @@ Browse the live library, pick a language, filter by skill level, search by title, and open public Google Drive links to read. +[![Live](https://img.shields.io/badge/Live-freecodebooks.vercel.app-000000?logo=vercel)](https://freecodebooks.vercel.app/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Languages](https://img.shields.io/badge/Languages-32-blue)](#languages) [![Books](https://img.shields.io/badge/Books-634%2B-9cf)](web/data/books.json) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) [![GitHub stars](https://img.shields.io/github/stars/sx4im/programming-books-pdf?style=social)](https://github.com/sx4im/programming-books-pdf) -[Library](https://freecodebooks.vercel.app/) · [Docs](docs/index.md) · [FAQ](docs/faq.md) · [Contribute](CONTRIBUTING.md) +[Website](https://freecodebooks.vercel.app/) · [Library](https://freecodebooks.vercel.app/library) · [Docs](docs/index.md) · [FAQ](docs/faq.md) · [Contribute](CONTRIBUTING.md) --- ## Languages -Click a badge for the GitHub guide, or open the same language in the [live library](https://freecodebooks.vercel.app//library). +Click a badge for the GitHub guide, or open the same language in the [live library](https://freecodebooks.vercel.app/library).

Python programming books @@ -94,7 +95,7 @@ If this helps you learn, please **[star the repo](https://github.com/sx4im/progr 1. **Use the live dashboard (recommended)** Open **[Website](https://freecodebooks.vercel.app/)** - Home: choose a **language shelf** - - That opens the [library](https://freecodebooks.vercel.app//library) for that language — search by book name, filter by level, click **Read book** + - That opens the [library](https://freecodebooks.vercel.app/library) for that language — search by book name, filter by level, click **Read book** 2. **Browse Markdown guides on GitHub** Start from [`docs/`](docs/) (for example [Python](docs/python.md), [JavaScript](docs/javascript.md), [Rust](docs/rust.md)). @@ -151,7 +152,7 @@ Source for the UI catalog: [`web/data/books.json`](web/data/books.json). Markdow ## FAQ **Where is the live dashboard?** -[Website](https://freecodebooks.vercel.app/) (library: [/library](https://freecodebooks.vercel.app//library)). +[Website](https://freecodebooks.vercel.app/) (library: [/library](https://freecodebooks.vercel.app/library)). **Is this free / open source?** The repository is [MIT](LICENSE). Individual books keep their own copyright and publisher licenses — use legal sources in your region. @@ -206,7 +207,7 @@ Copyright / DMCA takedown process: [NOTICE.md](NOTICE.md). ## Related resources -- Live library: [Webiste](https://freecodebooks.vercel.app/) +- Live library: [Website](https://freecodebooks.vercel.app/) - [EbookFoundation/free-programming-books](https://github.com/EbookFoundation/free-programming-books) — freely available programming books - [Awesome lists](https://github.com/sindresorhus/awesome) — curated lists across the ecosystem - [Developer Roadmaps](https://roadmap.sh/) — skill roadmaps for developers diff --git a/cspell.json b/cspell.json deleted file mode 100644 index 1146985..0000000 --- a/cspell.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "version": "0.2", - "language": "en", - "words": [ - "algorithmsbook", - "Allonge", - "Allong\u00e9", - "allowlist", - "Architecting", - "asyncio", - "Akka", - "automatetheboringstuff", - "Beej", - "Beej's", - "bioinformatics", - "Bioinformatics", - "Blazor", - "blocklist", - "bootcamp", - "bootcamps", - "cayman", - "Celko", - "Celko\u2019s", - "CPython", - "CRAN", - "cspell", - "Cybersecurity", - "DevOps", - "Django", - "DMCA", - "EbookFoundation", - "ebooks", - "Ecto", - "eloquentjavascript", - "FastAPI", - "Flutter", - "Frisby", - "Frisby's", - "frontmatter", - "Geocomputation", - "geocompx", - "ggplot", - "gnubash", - "GraphQL", - "Hacktoberfest", - "Hadley", - "handsonscala", - "HexDocs", - "hopr", - "IEC", - "ISO", - "Janssens", - "jspages", - "jtc", - "JuliaAcademy", - "learnyouahaskell", - "Lua", - "MATLAB", - "MathWorks", - "Keras", - "Kodeco", - "Kotlin", - "kramdown", - "Laravel", - "Lauwens", - "lychee", - "markdownlint", - "metaprogramming", - "Metaprogramming", - "MongoDB", - "Multiplatform", - "Murach", - "Murach's", - "NLP", - "noopener", - "noreferrer", - "O'Reilly", - "Open Graph", - "open-std", - "openjdk", - "otexts", - "PEAA", - "permalinks", - "POODR", - "POSIX", - "PostgreSQL", - "pytest", - "PyTorch", - "Quarkus", - "remote_theme", - "roadmap", - "Roadmaps", - "roadmaps", - "roadmapsh", - "rstudio", - "Rubyist", - "Rustaceans", - "Rustonomicon", - "Sams", - "scalawithcats", - "Scikit", - "Scalaz", - "ShellCheck", - "Shotts", - "sindresorhus", - "Solidity", - "CryptoZombies", - "Ethernaut", - "Hoogle", - "Ziglearn", - "ClojureDocs", - "ClojureScript", - "coarrays", - "comptime", - "Grails", - "VBA", - "fortranwiki", - "perldoc", - "perlmaven", - "Pentesting", - "htmlcss", - "objectivec", - "OpenMP", - "PowerShell", - "statlearning", - "sx4im", - "Symfony", - "takedown", - "tidytextmining", - "Tkinter", - "TLDP", - "TypeScript", - "underscore", - "unmaintained", - "Vaadin", - "Vercel", - "Wenderlich", - "wg", - "Wikibooks", - "Wooledge", - "Zionomicon" - ], - "ignorePaths": [ - ".git/**", - "REPORT.md" - ] -} \ No newline at end of file diff --git a/docs/faq.md b/docs/faq.md index 56fd1c3..db1fafb 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -6,7 +6,7 @@ Answers to common questions about **Ultimate Programming Books** (`sx4im/program A curated index of programming books and learning resources across 32 languages, organized by skill level (Beginner → Intermediate → Advanced → Specialized → References). -**Live library:** [https://programming-books-pdf.vercel.app/](https://programming-books-pdf.vercel.app/) +**Live library:** [https://freecodebooks.vercel.app/](https://freecodebooks.vercel.app/) ## Is the content free and open source? @@ -26,7 +26,7 @@ Entries with `PDF_LINK`, empty URLs, or non-Drive dump-site hosts were removed b ## How should I cite or share this list? -Share the live app [https://programming-books-pdf.vercel.app/](https://programming-books-pdf.vercel.app/) or the GitHub repo `https://github.com/sx4im/programming-books-pdf`. Stars help more developers discover the project. +Share the live app [https://freecodebooks.vercel.app/](https://freecodebooks.vercel.app/) or the GitHub repo `https://github.com/sx4im/programming-books-pdf`. Stars help more developers discover the project. ## How do I contribute? diff --git a/web/README.md b/web/README.md index 0568778..c9c43a5 100644 --- a/web/README.md +++ b/web/README.md @@ -2,8 +2,8 @@ Next.js dashboard for **Ultimate Programming Books**. -**Live:** [https://programming-books-pdf.vercel.app/](https://programming-books-pdf.vercel.app/) -**Library:** [https://programming-books-pdf.vercel.app/library](https://programming-books-pdf.vercel.app/library) +**Live:** [https://freecodebooks.vercel.app/](https://freecodebooks.vercel.app/) +**Library:** [https://freecodebooks.vercel.app/library](https://freecodebooks.vercel.app/library) All dashboard / Vercel config lives in this folder (`web/`). From b04db9b3ae881ba79ed1d63d605f17545a34fae2 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 18 Jul 2026 05:02:01 +0000 Subject: [PATCH 2/2] Point Next.js site metadata at freecodebooks.vercel.app Co-authored-by: Muhammad Saim Shafique --- web/app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/layout.tsx b/web/app/layout.tsx index 80b258e..2838c11 100644 --- a/web/app/layout.tsx +++ b/web/app/layout.tsx @@ -3,7 +3,7 @@ import { GeistSans } from "geist/font/sans"; import { GeistMono } from "geist/font/mono"; import "./globals.css"; -const siteUrl = "https://programming-books-pdf.vercel.app"; +const siteUrl = "https://freecodebooks.vercel.app"; export const metadata: Metadata = { metadataBase: new URL(siteUrl),