CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a personal/archival site for p5lab.net, built with Markpub — a Python-based static site generator that converts Markdown files into a wiki-style website. It is deployed on Netlify.
Architecture
Content and Build
- Content: Markdown files at the repo root (e.g.,
README.md,Sidebar.md) plus subdirectories - Sidebar navigation:
Sidebar.md - Build config:
.markpub/markpub.yaml— sets site title, author, theme, sidebar, edit URLs, etc. - Theme:
p5_forte(a customized fork of thefortetheme), located at.markpub/themes/p5_forte/ - Build output:
.markpub/output/(Markpub copies and converts the entire repo) - Search: Lunr.js index built via Node.js;
.markpub/package.jsonlistslunras a dependency
Build Process
Netlify runs the build from the .markpub/ directory:
markpub build -i .. -o ./output --lunr --commits
(-i .. points to the repo root as input; --lunr builds the search index; --commits adds git commit metadata)
To build locally, activate the Python venv and run from .markpub/:
cd .markpub
source .venv/bin/activate
markpub build -i .. -o ./output --lunr --commits
Theme Customization
The active theme lives at .markpub/themes/p5_forte/. It inherits from the forte base theme (.markpub/themes/forte/). Theme templates use Jinja2-style HTML partials:
_header.html,_footer.html,_body-header.html,_javascript.htmlpage.html,all-pages.html,recent-pages.html,search.html- CSS:
.markpub/themes/p5_forte/static/markpub_static/css/
Legacy Static Assets
The repo also contains legacy static HTML that predates Markpub. Markpub copies it into the output as-is:
public/— historical Praxis101 landing page with its own CSS/JS copiesdocs/— another static HTML section with its own CSS/JS copiesjs/site.js,css/— Skeleton CSS framework assets used by legacy pagesprevious-index.html— archived version of the old landing page
These legacy files use the Skeleton CSS framework (v2.0.4) with jQuery loaded from CDN.
Netlify Config
netlify.toml sets base = ".markpub", publish = "./output", PYTHON_VERSION = "3.12", and ignore = "/bin/false" (always rebuilds).
Editing
- Add or edit Markdown files at the repo root to create/update wiki pages
- Update
Sidebar.mdto change navigation links - Customize theme appearance in
.markpub/themes/p5_forte/static/markpub_static/css/ - Site metadata (title, author, edit URLs) is in
.markpub/markpub.yaml