Personal blog for www.frobiovox.com, built with Hugo and hosted on AWS S3 behind Cloudflare.
content/posts/ # Blog posts (markdown)
hugo/ # Hugo site (config, layouts, theme)
task serve # Start dev server at http://localhost:1313
task serve:drafts # Include draft posts
task build # Build to hugo/public/
task build:prod # Build minified for production
Posts live in content/posts/. The source of truth for editing is _posts/ and _drafts/ (legacy Jekyll files). To sync changes to Hugo:
task copy # Normalize and copy from _posts/_drafts into content/posts/
task copy:dry # Preview what would change without writing
The normalize tool cleans up front matter for Hugo compatibility: standardizes key order, merges category into tags, drops Jekyll-specific fields (layout, published), and sets the slug from the filename.
/feed.xml — primary RSS feed/rss.xml — alternate RSS feed/drupal.xml — RSS feed filtered to quarzack13 tagThe theme is frobiovox-theme, vendored via vendors.toml at hugo/themes/frobiovox-theme.
To redirect legacy .html URLs from the old Jekyll site to Hugo’s trailing-slash URLs, add a redirect rule in the Cloudflare dashboard for the frobiovox.com zone:
www.frobiovox.com/*.htmlconcat("https://www.frobiovox.com/", wildcard_replace(http.request.uri.path, "/*.html", "${1}"), "/")301