Technical Caveats

Content format

Only .htm files are recognized as content. There is no Markdown support, no tags, no categories, and no theme system. Posts are written in plain HTML. This is intentional.

Build requirements

The Makefile hardcodes clang as the compiler of choice. On macOS, available system libraries may differ —use the included macos-build.sh wrapper which substitutes the correct framework flags.

Git requirement

The content/ directory must live inside a Git repository. Creation and modification dates are read from Git history. A single style.css is expected to be present in the content directory as a default style sheet. Using the page include_styles header users can opt out of it for individual pages. Files that have not been committed yet show as "DRAFT" with no date.

Git integration is provided by libgit2, which gets downloaded and compiled as a static library on first build (this requires CMake and wget).

Hard limits

A few limits are set at compile time in the source:

  • File paths capped at 100 characters
  • HTML content buffer of 48 KB per page—longer posts will overflow

All three are defined as constants and can be raised by editing the source directly.

Bugs

It should go without saying, but obviously there is a high probablitiy that there are a couple of bugs left. But, at least for the content of this page I could not yet find others.