Personal website built with Hugo using the Terminal theme with a custom Cyberpunk color palette.
Initialize the theme.
git submodule update --init --recursiveStart the development server (includes drafts):
hugo server -DVisit http://localhost:1313
hugo new content/posts/<title>Build the site for production:
hugo --gc --minifyOutput will be in ./public
Run the publishing and clipboard regression checks without installing packages:
python3 -m unittest discover -s tests -v
node --test tests/code-copy.test.cjs
hugo --gc --minifyThe publishing tests use temporary Git repositories and mocked HTTP requests. To preview announcements for a revision range without sending them:
python3 scripts/mastodon_posts.py --before <previous-sha> --after HEADThe Mastodon workflow announces newly published posts and draft-to-published transitions. Edits to existing published posts do not trigger announcements.
content/- Markdown content filesassets/css/custom/theme.css- Custom styling with Cyberpunk paletteassets/img/- Original portraits processed by Hugo into responsive imagesstatic/- Static assets (images, fonts, etc.)hugo.toml- Hugo configurationthemes/terminal/- Terminal theme (submodule)
The site follows the palette in Christopher's dotfiles (.chezmoidata/cyberpunk.yaml):
- Background:
#16161E - Panels:
#1F1F28 - Text:
#EAEAF2 - Accent (cyan):
#00F0FF - Links:
#00FFFF - Magenta:
#FF00FF - Pink (decoration):
#CA0174 - Yellow (hover and focus):
#FFD300
Muted text uses a lighter mix of the dotfiles' #8A86A0 and primary text to
maintain contrast on panel backgrounds. Pink is reserved for decoration.
Custom styles load after the theme through layouts/partials/extended_head.html.
Prose uses the system sans-serif font. Headings, navigation, commands, and code use the theme's bundled Fira Code, with monospace fallbacks. No Google Fonts request is needed. The layout uses a centered reading column, visible navigation on mobile, underlined links, keyboard focus indicators, a skip link, and reduced motion support.
Use ~ for home and ~/posts, ~/projects, and ~/resume for sections.
Command lines share a shortcode that keeps the path, prompt, and command in
monospace:
{{< command path="~" >}}cat contact.md{{< /command >}}
The shortcode body is literal command text and may include author-provided HTML
links. Article pages show their path and retain the active posts navigation.
Read links display [less post.md] with the article title in the accessible name.
Content © Christopher Lamm. Theme by panr.