An Obsidian vault (wiki/) built from Seven Sketches in Compositionality, Category Theory for Scientists (arXiv:1302.6946, PDF in Books/), The Dao of Functional Programming and Kittenlab.jl: one note per concept, exercises with solutions, and Julia (Catlab), Lean (Mathlib) and Haskell code for each idea. Start with wiki/Start Here.md.
- Julia: the snippets target Catlab v0.16 (
] add Catlab@0.16). Each Julia tab starts with a Docs: line linking the Catlab v0.16 / GATlab / ACSets documentation (or the Kittenlab lecture) for what it uses; a Builds on: line names notes whose Julia code must be run first (the Kittenlab-style mini-library ofCategory,Preorder,VCategory, …). Kittenlab itself:] add https://github.com/AlgebraicJulia/Kittenlab.jl. Seewiki/Catlab.md. - Haskell: plain GHC; most snippets run with
runghcafter adding amain. - Lean 4: Mathlib declaration names (
#checks); they follow current Mathlib naming and may drift as Mathlib evolves.
The vault is also published as a static site with Quartz from the site/ directory:
cd site
npm ci
npx quartz build -d ../wiki --serve # preview at http://localhost:8080Pushing to master runs .github/workflows/deploy.yml, which builds the site and deploys it to GitHub Pages (repository Settings → Pages → Source: GitHub Actions).
Site-specific pieces:
site/quartz/plugins/transformers/tikz.tsrenders the vault's```tikzblocks to SVG at build time withnode-tikzjax; results are cached insite/.tikz-cache/(committed, so CI only renders new diagrams).site/quartz/plugins/transformers/tabs.tsrenders thetabs ```` blocks of the Obsidian Markdown Tabs plugin as tabbed code panels; text outside the code fences in a tab (the Docs: lines) is rendered as Markdown.site/quartz/plugins/transformers/ofm.ts(patched): a wikilink whose alias contains math or code, e.g.[[Corelation|$\mathbf{Corel}$]], is turned into a Markdown link so the alias is rendered by KaTeX instead of breaking the link. Inside tables, write the alias separator as\|([[Note\|alias]]), which both Obsidian and Quartz understand.- Math is rendered with KaTeX (
$…$,$$…$$); diagrams aretikzblocks (tikz-cd, rendered at build time) — Mermaid blocks are supported by Quartz as well. Typst is not rendered by Quartz, so the vault uses LaTeX throughout. wiki/index.mdis the site's landing page; it transcludesStart Here.