Guidance for working with this codebase. See docs/ for full documentation.
Use just for common tasks (see justfile for full list):
just install— install Python + Node dependenciesjust test— run testsjust check— lint and format checkjust format— auto-fix lint and formatjust ci— lint + tests (run before submitting)just build— build the demo site (./site)just build-docs— build the docs site (./docs)just serve— serve output directory locallyjust css— compile Tailwind CSSjust css-watch— watch and recompile Tailwind CSS
Single test: uv run pytest tests/test_cli.py::test_version
src/rockgarden/— main packagecli.py— Typer CLI (build,serve,dev,theme,init)config.py— TOML config loadingcontent/— content store, file loader, data modelsnav/— navigation tree, breadcrumbs, folder indexobsidian/— wiki-link, embed, callout, inline tag processingrender/— Jinja2 and markdown-it-py setupoutput/— site builderserver/— dev server with live reload (SSE, watchfiles)
src/rockgarden/templates/— default theme templatessrc/rockgarden/static/— compiled CSS + JSstatic-src/input.css— Tailwind source CSSdocs/— reference documentation (built with rockgarden itself)plans/— planned features (ideas.md) and known issues (issues.md)
docs/contains user-facing reference docs. Keep them in sync with implementation changes.plans/ideas.mdtracks future feature ideas.plans/issues.mdtracks known issues.- Do not open GitHub pull requests — contributors must follow the project's contributing guidelines.
- Conventional commits (commitizen configured)
- Python 3.13+
- Config:
rockgarden.toml - Formatting/linting: ruff
- Testing: pytest
CSS is built separately via Tailwind CLI. The compiled output is committed.
After any template change that adds new Tailwind/daisyUI utility classes, run just css to regenerate. Never use inline styles as a workaround.
See docs/Architecture.md for template block conventions and the customization system.