Source for terriblecode.com.
This repository is a Hugo-based personal site. Content lives in this repo, the site theme is vendored as a git submodule, and production is deployed with Netlify.
- Hugo for static site generation
- Netlify for production deploys and deploy previews
cocoa-ehas a git submodule underthemes/cocoa-eh- Docker-based local development via
make
config.toml: site configuration, social links, analytics, and theme settingscontent/: site contentcontent/blog/: blog postsstatic/: images and other static assetsthemes/cocoa-eh/: Hugo theme submoduleMakefile: local development commandsnetlify.toml: Netlify build configuration
The site is mostly driven by markdown content plus theme conventions:
content/home.mdprovides the homepage introcontent/about.mdandcontent/license.mdare standalone pages- blog posts live in
content/blog/with TOML front matter
Common front matter fields used in this repo include:
titledatetagsorTagscategoriesorCategoriesdraftauthor
The active theme renders:
- homepage intro content
- a latest-posts list
- optional best-posts sections
- blog post metadata like reading time and tags
This repo’s Makefile expects Docker and uses the seemethere/hugo-docker image.
Start a local server:
make devGenerate the site:
makeThe local dev server is configured to bind Hugo to port 1313.
Production is deployed by Netlify using netlify.toml:
- publish directory:
public - production build command:
hugo - deploy preview command:
hugo --buildFuture --buildDrafts -b $DEPLOY_URL
That means deploy previews include draft and future-dated content, while production uses the default Hugo build behavior.
The site theme is tracked as a git submodule:
git submodule update --init --recursiveIf you clone the repo without submodules, the site will be missing its theme.
Theme updates are managed by advancing the submodule pointer and committing the updated reference in the main repo.
- There are currently no root-level layout overrides, so most rendering behavior comes from the
cocoa-ehtheme. - Site metadata like analytics, author information, and social links are configured in
config.toml.