Add rumdl Markdown linting
- Add rumdl Markdown linting
- Add Markdown lint to CI checks
Summary by CodeRabbit
-
New Features
- External link validation added to CI.
- Markdown linting tooling integrated and an md lint script exposed.
-
Documentation
- Technology stack updated to Astro.
- Added flake template initialization examples for multiple languages.
- Various docs reformatted and outdated link references removed.
-
Chores
- Updated build/CI configuration and developer tooling exposure.
Deploy Preview for zero-to-nix ready!
| Name | Link |
|---|---|
| Latest commit | 269e8873a2814665a91b25283041b54658178de5 |
| Latest deploy log | https://app.netlify.com/projects/zero-to-nix/deploys/691678b0664c3c0008a77a90 |
| Deploy Preview | https://deploy-preview-484--zero-to-nix.netlify.app |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify project configuration.
Walkthrough
Added Nix CI execution and an external link check to the GitHub workflow; introduced rumdl-based Markdown linting (config and ignore); updated flake inputs/outputs to an inputs-based pattern and added rumdl to devShell; replaced îles with Astro in README; removed or reformatted multiple MDX link references and added flake template examples in one start document.
Changes
| Cohort / File(s) | Summary |
|---|---|
CI and Workflow /.github/workflows/ci.yml |
Added "Run Nix CI suite" step (nix develop --command ci) and "Check external links" step using lycheeverse/lychee-action@v2 (with token, cache, args, non-blocking failure). |
Markdown linting config /.rumdl.toml, /.gitignore |
Added .rumdl.toml configuring rumdl (includes, disabled rules, respect .gitignore) and added .rumdl-cache/ to .gitignore. |
Nix flake and dev environment flake.nix |
Changed outputs signature to inputs-pattern ({ self, ... }@inputs:), updated inputs.nixpkgs URL, switched internal references to inputs.nixpkgs, added rumdl to devShells and a lint-markdown script wired into CI. |
npm scripts package.json |
Added mdlint script (rumdl check). |
Docs — README README.md |
Replaced "îles" with "Astro", added [astro] link, removed legacy link references. |
Docs — content cleanup src/content/concepts/*.mdx, src/content/start/*.mdx |
Removed multiple reference link definitions and adjusted formatting/indentation across many MDX files (e.g., caching, derivations, flakehub, flakes, incremental-builds, about, install, nix-run, nix-develop, nix-search). |
Start guide examples src/content/start/4.nix-build.mdx |
Added flake template initialization snippets/examples for C++, Haskell, JavaScript, Python, Go, Rust, and Scala and added a vite reference link. |
Sequence Diagram(s)
sequenceDiagram
participant GH as GitHub Actions
participant Nix as Nix devShell
participant CI as Project CI script
participant Rumdl as rumdl linter
participant Lychee as Lychee link checker
GH->>Nix: nix develop --command ci
activate Nix
Nix->>CI: run ci tasks (incl. lint-markdown)
activate CI
CI->>Rumdl: run `rumdl check` (uses .rumdl.toml)
activate Rumdl
Rumdl-->>CI: lint results
deactivate Rumdl
CI-->>Nix: complete
deactivate CI
deactivate Nix
GH->>Lychee: run lycheeverse/lychee-action@v2 (cache, args, fail:false)
activate Lychee
Lychee-->>GH: link report (non-blocking)
deactivate Lychee
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
- Pay attention to
flake.nixinputs/outputs changes and all references tonixpkgs->inputs.nixpkgs. - Validate CI wiring:
lint-markdownscript presence,nix develop --command cibehavior, and lychee action args/token. - Quick pass over many MDX files to ensure removed references do not break rendered pages.
Possibly related PRs
- DeterminateSystems/zero-to-nix#469 — Similar flake.nix inputs/outputs rewiring and switching references to use
inputs.nixpkgs.
Suggested reviewers
- jeffmartens
- cole-h
Poem
🐰 A linter hops through markdown lairs,
Nix flakes shuffle inputs with careful stares,
Astro takes the place of îles tonight,
Links get checked while CI hums polite,
The warren grows tidier, one hop, one light. ✨
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The PR title accurately summarizes the main change: adding rumdl for Markdown linting across the codebase. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✨ Finishing touches
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests
- [ ] Post copyable unit tests in a comment
- [ ] Commit unit tests in branch
rumdl-markdown-linter
📜 Recent review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between 469734ba848937438a16fadcecf0800e2ad61383 and 269e8873a2814665a91b25283041b54658178de5.
📒 Files selected for processing (3)
.rumdl.toml(1 hunks)src/content/concepts/derivations.mdx(1 hunks)src/content/start/5.nix-search.mdx(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- src/content/concepts/derivations.mdx
- src/content/start/5.nix-search.mdx
- .rumdl.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: test
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.