# duz `duz` is a minimal static site generator for simple [Djot](https://djot.net) websites, written in bash. I designed it for my own websites. `duz` expects a directory containing a `src` subdirectory as an argument. It will traverse that directory, transforming any `.dj` files it finds into `.html` files using [DMOS](https://git.sr.ht/~bitfehler/dmos), which should be available in PATH. It has two special features: - **Headers and Footers**: If `_header.html` and/or `_footer.html` files exist in `src` at the top level, it will prepend and append those, respectively, to all HTML files it generates. Table stakes for an SSG. It will not include the raw header and footer files in the `dst` output. - **Atom Feed**: You can optionally specify a directory (`/blog` by default) which, if it exists, will be given an Atom feed and index file. To facilitate this, `.dj` files in this directory are expected to have the following front matter: ``` Title 2024-05-06 +++ ``` The first line is the title of the post, and the second line is the date of the post in ISO-8601. The plus signs operate as a delimiter. This lets `duz` generate a proper feed. The directory used in this process is not expected to have any other content, or any subdirectories. Other than these features, `duz` passes files through untouched. ## Usage `duz -h` ## Limitations At the moment, the DMOS command arguments are not customizable. `duz` always uses `dmos --toc` for the actual pages and raw `dmos` without arguments for the contents of the Atom feed. If you use the Atom feed functionality, both a header and footer must exist, and they must end and start with `` tags, respectively, for the Atom feed and the index page to be valid. Also, for this folder, proper front matter (title on the first line, ISO 8601 date on the second line) is required. ## Contributions I wrote `duz` for my own use and it's a pretty quick-and-dirty little thing, but if you like it, I welcome your contributions via `git-send-email` patchset.