# Documentation This directory contains the documentation for Maud. It is hosted at <https://maud.lambda.xyz>. ## Build Build the documentation: make The built files will be placed in `site/`. You can also delete the build artifacts with: make clean ## Style - [Be brief][short]. - Use [semantic line breaks][sembr]. - American spelling. - Parentheticals should use spaced en dashes – like this – not em dashes. [short]: https://developers.google.com/tech-writing/one/short-sentences [sembr]: https://sembr.org/ ## Watch To ease editing, there is a `./watch.sh` script that starts a web server and rebuilds the site on every change. The script uses Python 3 and [entr], but feel free to adapt it to your environment. [entr]: http://eradman.com/entrproject/ ## Add a new page The list of pages to be built is defined by the `slugs` variable in the Makefile. To add a new page, create a Markdown file in `content/` and add its name (excluding the `.md`) to `slugs`: ```diff -slugs := index getting-started basic-syntax partials ... +slugs := index getting-started basic-syntax my-awesome-new-page partials ... ``` The order of the names in `slugs` determines the order of entries in the table of contents. Make sure that your page starts with a heading (e.g. `# My awesome new page`) or it won't show up. ## The navigation cache (`nav.json`) The site generator constructs the table of contents dynamically by reading each Markdown page and extracting its heading. This data is cached in `nav.json`. You don't need to care about this file most of the time, but it might be useful to know about it when hacking on the site generator itself. ## Deployment The documentation is built and uploaded to GitHub Pages using [GitHub Actions][config]. The workflow is run automatically on a new release. For changes not tied to a release (e.g. typo fixes), a maintainer can trigger it manually – please ask if you'd like this. [config]: ../.github/workflows/publish-docs.yml