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. +[](https://freecodebooks.vercel.app/) [](LICENSE) [](#languages) [](web/data/books.json) [](CONTRIBUTING.md) [](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).
@@ -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/`).
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),