This repository is the source for https://www.mattlayman.com. The site is a custom Lua application that runs on Nibiru, loads Markdown content, and renders pages through HTML templates.
For AI-agent-specific guidance, start with AGENTS.md.
app/entry.luais the application entrypoint and route map.app/pages.lualoads Markdown files, parses frontmatter, validates required fields, and sorts pages by date.app/blog/contains blog page registration and responders.app/understand_django/contains Understand Django page registration and responders.templates/contains the HTML templates used by responders.pages/blog/contains blog posts.pages/understand-django/contains Understand Django chapters.static/contains CSS, JavaScript, images, and other static assets.
Install dependencies with LuaRocks:
make depsRun the app locally with:
make localmake local runs air, so the local workflow expects air to be installed.
Build the image directly with:
make imageOr run the app with Docker Compose:
docker compose up --buildThe Compose service exposes port 8080.
Blog posts and Understand Django chapters are Markdown files with YAML frontmatter. The loader requires these fields:
slugtitledate
Existing content commonly includes description, image, and tags too. Follow nearby files when adding or editing pages.
- Languages selected on the Prism builder page are embedded in the link at the top of
static/js/prism.js. - The CSS files are separate because the previous Automad site did not use
prefers-color-schemefor theme selection. The links for those files are also at the top of each CSS file.