Skip to content

feat: documentation handbook, PDF pipeline and config-driven keymap docs - #2

Merged
timlinux merged 9 commits into
mainfrom
feat/handbook-docs-pipeline
Jul 19, 2026
Merged

feat: documentation handbook, PDF pipeline and config-driven keymap docs#2
timlinux merged 9 commits into
mainfrom
feat/handbook-docs-pipeline

Conversation

@timlinux

Copy link
Copy Markdown
Owner

Summary

Adds a Kartoza-branded documentation handbook with a full PDF + GitHub Pages
pipeline, and makes the keybinding docs generate themselves from the live
config
so they can never drift.

Highlights

  • Handbook (Material for MkDocs, Kartoza brand) — getting-started, user
    guide, keybindings reference, developer guide, about.
  • PDF via pandoc + TeXLive (nix run .#handbook-pdf), A4, Kartoza cover.
  • Config-driven keymap docskeymap.md, which-key.md, completion.md
    and all keyboard-layout SVGs are generated from timvim's live keymaps
    (nix run .#handbook-keymaps); CI regenerates them before every build.
  • Brand-coloured SVG diagrams (architecture, leader map, 6 keyboard layouts).

Also in this PR

  • chore(deps): freshen flake inputs (nvf on nixos 26.05) — fixes blink-cmp
    Rust crate availability — and adapt to new nvf/nixpkgs schemas.
  • fix(dap): guard unchecked io.popen (crashed init headless, dropping ~140
    keymaps).
  • fix(ui): hide the statusline on the alpha dashboard.
  • chore: stop tracking PROMPT.log / CLAUDE.md; ignore site/ + built PDF.

CI behaviour

  • PR → builds the handbook PDF as a 7-day artifact and comments its link.
  • Merge to main → publishes the site to GitHub Pages.
  • v* tag → cuts a release with the PDF asset + CHANGELOG notes linking it.

Testing

  • nix flake check, nix build, nix run .#handbook-build (strict) and
    nix run .#handbook-pdf all pass locally (PDF: 62pp, A4).

⚠️ One-time setup: set Settings → Pages → Build and deployment → Source =
GitHub Actions
so the site deploy works.

Tim Sutton added 7 commits July 19, 2026 17:51
Update all flake inputs (nixpkgs unstable, nvf on nixos 26.05, plugins),
resolving blink-cmp Rust crate availability. Adapt config to new schemas:
clipboard register order, rust LSP settings, and prettier (nodePackages
removed upstream).
Migrate disabledFiletypes to the new statusline/winbar attrset, and add
disabled_filetypes to the manual lualine setup so the statusline is hidden
on the alpha dashboard (the module option alone had no effect).
io.popen can return nil (restricted/headless environments); the unchecked
handle:read crashed init.lua when run headless, silently dropping later
keymaps. Guard all three call sites.
Untrack the local prompt log and Claude instructions (kept on disk, now
ignored). Ignore mkdocs site output and the built handbook PDF. Anchor the
'core' ignore to root so it no longer shadows config/core/.
Add a Material for MkDocs handbook with Kartoza branding, a pandoc+TeXLive
PDF build (nix run .#handbook-pdf), and serve/build apps. Keymap tables,
which-key map, completion tables and keyboard-layout SVGs are generated from
the live keymaps (nix run .#handbook-keymaps) so docs never drift from config.
Diagrams are brand-coloured SVGs (kartozaColors).
On PRs, build the handbook PDF as a short-lived artifact and comment its link.
On merge to main, publish the mkdocs site to GitHub Pages. On v* tags, cut a
release with the PDF asset and CHANGELOG-derived notes linking the PDF and docs.
Bump version and add CHANGELOG for the documentation handbook, PDF pipeline
and config-driven keymap docs.
@github-actions

github-actions Bot commented Jul 19, 2026

Copy link
Copy Markdown

📄 Handbook PDF for this PR (timvim-handbook-pr-2.pdf) is ready.

Download it from the workflow artifacts (short-lived, 7 days). The site preview publishes to GitHub Pages once this merges to main.


📦 Software Bill of Materials

543 components for timvim-wrapped (runtime closure).

Licence Components
unknown 317
MIT 43
Artistic-1.0 34
Apache-2.0 23
BSD-3-Clause 17
GPL-3.0-or-later 16
GPL-2.0-or-later 13
BSD-2-Clause 10
LGPL-2.0-or-later 8
LGPL-2.1-or-later 7
HPND-sell-variant 7
MIT-open-group 5
LGPL-3.0-or-later 5
BSD-4-Clause 3
LGPL-2.1 3
… 23 more 32

Full CycloneDX + SPDX SBOMs are attached as build artefacts.

Download the full CycloneDX + SPDX SBOM (short-lived, 7 days).

Tim Sutton added 2 commits July 19, 2026 20:49
Add a 'nix run .#sbom' app (sbomnix from nixpkgs-stable; the unstable
build is broken by a Python 3.14 dependency) that emits CycloneDX, SPDX,
CSV and a Markdown summary for the timvim runtime closure.

CI wiring:
- docs.yml: new 'sbom' job uploads the SBOM as a 7-day artifact and folds
  its summary table into the PR comment alongside the handbook PDF.
- Release.yml: attaches the CycloneDX + SPDX files as release assets and
  appends the summary table to the release notes.
nix flake check --all-systems failed evaluating the Darwin outputs:
nixpkgs unstable (26.11) throws on x86_64-darwin (support dropped), and
the editor closure pulls in wayland which is unsupported on aarch64-darwin.
The config is Linux-oriented, so declare only x86_64-linux + aarch64-linux.
@timlinux
timlinux merged commit 1e160c5 into main Jul 19, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant