- Hugo blog (Ananke v2 theme) deployed to Firebase Hosting.
| What | Command |
|---|---|
| Dev server | ~/.local/bin/starthugod -> http://192.168.77.7:1313 (uses --renderToMemory, never writes public/) |
| Production build | ~/.local/bin/buildhugo |
| Deploy to Firebase | firebase deploy -> https://carryonrtw.com |
| lighthouse commands | lighthouse --help |
| playwright-cli commands | playwright-cli --help |
- Requires Hugo (≥ 0.164.0) and Firebase CLI.
- playwright-cli is a browser automation framework.
firebase deployis not to be used without user permission.- Lighthouse is an open-source auditing tool for web page quality. Use the following pages to run a lighthouse audit against: / /travels /about/ /travels/coles-notes/ /articles/travel-tech/
- Theme:
github.com/gohugo-ananke/ananke/v2vendored under_vendor/ - Layouts:
layouts/overrides Ananke v2 theme. Custom.htmlfiles use oldpartials.Include()syntax. - Partials:
layouts/partials/(alsolayouts/_partials/is in use — same name, underscore prefix; both are honored by Hugo) - Shortcodes:
layouts/_shortcodes/—cta,gslides(Google Slides embed),youtubepl(YouTube playlist embed),traveltime(elapsed-time counter for homepage),travelstats(homepage stats table). Important: the active directory is_shortcodes/(with underscore), notshortcodes/. New shortcodes belong inlayouts/_shortcodes/. - Custom CSS:
assets/ananke/css/custom.css(picked up by Ananke's asset pipeline); also referenced inconfig/_default/hugo.tomlasparams.custom_css:custom.css,formatted_tables.css,next_prev_links.css. Theformatted_tables.cssandnext_prev_links.cssentries are present as files in assets/ananke/css/.
- Site has four standalone pages: home, search, contact and about defined in
content/. - Four content sections defined in
config/_default/hugo.toml:
| Section | Path | Purpose |
|---|---|---|
| travels | content/travels/ |
Travel blog posts (62 posts) |
| articles | content/articles/ |
Travel philosophy, gear, banking (14 posts) |
| packs | content/packs/ |
Backpack evolution documentation (6 posts) |
| van-life | content/van-life/ |
Ford Transit van build (9 posts) |
| static pages | content/ root |
_index.md, about.md, contact.md, search.md |
- Pagination: 9 posts per page, path =
page - Taxonomies:
tags,categories - Next/prev navigation:
next-gallery-prev-navbar.htmlpartial (respectsparams.albumper post) - Images: Hosted in
static/images/or on Google Photos (googleusercontent URLs) except for each pages banner: featured_image.
config/_default/hugo.toml— baseURL, menu, mainSections, custom CSS, sitemap, analyticsconfig/_default/params.toml— Ananke theme config, social networks (Bluesky, Mastodon, YouTube, GitHub), share networks- Giscus comments — widget config in
config/_default/hugo.tomlunder[params.giscus], rendered vialayouts/_partials/giscus.html(repo:RoninTech/CarryOnRoundTheWorld).giscus.jsonis Giscus server-side config only (allowed origins + default comment order), served from this repo by giscus.app. firebase.json— deployment target (public/)
- Search: Pagefind, pre-built index in
static/_pagefind/(gitignored). Regenerate withbuildhugoornpx pagefind --source publicafter building. - Comments: Giscus, wired to GitHub Discussions via
layouts/_partials/giscus.html(config in[params.giscus])
public/— Hugo outputstatic/_pagefind/— Pagefind index.firebase/,logs/
content/lpcount.py— validates image dimensions in.mdfiles against expected widths (210, 315, 370, 1000)scrape_photos.py— scrapes Google Photos URLs (caches to.scrape_cache.json)scripts/fix_image_heights.py— addsheightattrs to body Google Photos<img>tags (aspect ratios fromcrap/output.txt; unknowns fetched and cached inscripts/.img_dim_cache.json). Runpython3 scripts/fix_image_heights.py --dry-runto preview, then apply without flags. Idempotent; re-run after adding new posts with Google Photos images so they don't ship withoutheight.
public/is generated at build time, not committed and gitignored — it exists for local dev but is never deployed from git. Firebase deploys from the checked-outpublic/directory.- Giscus origins:
carryonrtw.comand192.168.77.7:1313are ingiscus.json. Local dev requires the latter origin. - Images: External Google Photos URLs — Except for featured_image banners which live in
static/images/featureddirectory.