Colophon
This site is deliberately uncomplicated. It is a collection of static files generated from plain-text source, with no application server, database, advertising system or visitor accounts.
Publishing system
The site is built with Hugo, the static site generator written in Go. At the time of this writing, the production build uses Hugo 0.165.0 Extended. Posts and pages are written primarily in Markdown and kept alongside the templates, stylesheets and other site assets in a Git repository.
Hugo’s Goldmark renderer converts the Markdown to HTML. Raw HTML is allowed where a post needs markup that Markdown cannot conveniently express. Goldmark’s mark extension is also enabled, allowing text enclosed in ==double equals signs== to be rendered with the semantic HTML <mark> element.
Code examples are highlighted by Hugo’s built-in Chroma syntax highlighter. The generated markup uses CSS classes, with additional language-specific adjustments in the site’s own stylesheets.
Design and templates
The design began with the Mainroad Hugo theme, but it has been modified extensively. The customized theme is included directly in the site’s source repository rather than installed as a Git submodule or fetched during a build. A second bundled theme supplies the photograph-gallery shortcode.
The site also has local Hugo shortcodes for figures, galleries, callouts, quotations, dialogue, poetry, contact links and other recurring elements. Keeping these as shortcodes makes the Markdown source relatively readable while giving frequently used components consistent HTML and presentation.
Most typography and layout are handled with ordinary CSS. The site’s custom stylesheets live under assets/css and pass through Hugo Pipes. Hugo calculates a SHA-256 fingerprint for each stylesheet and publishes it under a content-derived filename. The resulting HTML includes a Subresource Integrity value, so changed styles receive a new URL while unchanged files remain cacheable. The CSS handling comprises a cache-busting mechanism.
The site uses Source Serif Pro for body copy, Source Sans Pro for secondary text and Roboto Slab for headings and navigation. Optimized WOFF2 files covering the Latin, Latin Extended, Cyrillic and Cyrillic Extended character ranges are stored with the site and served from the same origin. No font service receives requests from visitors.
Search and feeds
Full-text search is provided by Pagefind, currently version 1.5.2. Pagefind runs after Hugo has completed the production build. It examines the generated pages and writes a static search index into the published site. Searching therefore happens in the browser and does not require a remote search service or a server-side index.
Hugo generates the site’s RSS feed. Both the HTML discovery metadata and the navigation-bar link point to that feed.
The site has no public comment system and no configured Google Analytics account. It does not require JavaScript for reading ordinary articles; JavaScript is used for such features as the responsive menu, search interface and photograph galleries.
Images and other files
Most images, downloads and other attachments are stored with the site and copied into the published output by Hugo. The walrus logo in the header is served through Cloudinary. Gallery pages use the bundled gallery theme and its local JavaScript and CSS assets.
Building and deployment
Development takes place on macOS. Hugo is installed with Homebrew, while Pagefind is a project-local Node.js development dependency pinned in package-lock.json. A production build is made with make build, which runs Hugo and then Pagefind. The resulting static site is written to the ignored public directory.
The site is deployed by running make deploy. This first runs the complete production build, including generation of the Pagefind search index, and then invokes hugo deploy --target=all. The all target uploads the contents of public to the www.ojisanseiuchi.com Amazon S3 bucket. Hugo obtains the required credentials from the local AWS configuration or environment.
Text formats such as HTML, XML, JSON, CSS and JavaScript are uploaded with revalidation-oriented cache headers and gzip compression. Images receive long-lived immutable cache headers and are not recompressed during deployment.
Hosting details to complete
The site is hosted on AWS S3. I don’t like depending on U.S. cloud providers, let alone Amazon; but it does make it easier to manage and it is cheaper.
This page was last reviewed on September 3, 2026.