Skip to content
← All articles
Article

Website refonte with Hugo (part 2)

Listen to the audio story

Rebuilding a portfolio site with Hugo · 2:30 · AI-written script, synthetic voices

Transcript

Ava: A diagram that's cropped loses its meaning. Cut off the axes of a surface plot or the labels of an architecture diagram and the reader is left guessing.

Andrew: That feels like a small detail to build a whole redesign around.

Ava: It's one of many. Antoine rebuilt his Hugo portfolio so the CV, the articles and the repository notes share one visual identity, while each kind of page keeps a layout that suits its reading. A slate-blue background, pale paper surface, teal for links and actions, and Fraunces for the titles.

Andrew: So same look, different proportions.

Ava: Right. The CV leads with the name, portrait and PDF button. An article needs a comfortable reading column. A project reference needs room for commands, API tables and diagrams. On a narrow screen, navigation wraps and long code scrolls inside its own block.

Andrew: And the technical side? He changed themes, didn't he?

Ava: He moved from HBTheme to Paper and now owns the overrides in his own templates. That means one template fix applies across all articles. The header groups the content kind, date, reading time and topic badges, and longer articles get a collapsible contents list.

Andrew: What about the French and English versions?

Ava: They're paired with a translation key, and the language switcher sits in the site header. He also avoids repeating a translation link in each introduction, because that paragraph should introduce the subject.

Andrew: Tell me about the diagrams.

Ava: Mermaid diagrams now have zoom, fit, full size, fullscreen and SVG export. They start fitted to the space, so you can inspect one label without scrolling sideways.

Andrew: I heard something about skills.

Ava: Repository skills, yes. Small rule sets that keep recurring edits consistent: one for the CV pages, one for the Hugo templates and bilingual bundles, one for project notes and the evidence behind technical claims. Antoine adds that a rule can't tell whether an image belongs to the project or whether a label is legible, so everything still gets reviewed.

Andrew: How does he check a page before publishing?

Ava: He builds locally, then checks light and dark mode, small and wide screens, language links, images and controls. Reduced-motion settings have to leave all content reachable too.

Andrew: A build passing isn't enough, then.

Ava: Exactly. The full write-up has the diagram of the whole flow from git to the published static site.

Table of contents

The first version put the CV and a few posts online with Hugo. This rebuild gives the CV, articles and repository notes a shared visual identity, while keeping a layout suited to each kind of reading. It follows Create a portfolio with Hugo (week 1).

Project architecture

Project architecture overview. Open the image to inspect the details.

1. A shared canvas, with room for the content

The slate-blue background and pale paper surface now connect the CV to the blog. Teal marks links, selected filters and useful actions. Fraunces carries the main titles; body text and controls use more restrained type. The palette, spacing and motion rules are recorded in DESIGN.md[1].

The same identity has different proportions on each page. The CV puts the name, portrait and PDF action first. An article needs a comfortable reading column and clear sections. A project reference needs room for commands, API tables and diagrams, with page navigation beside it on a wide screen.

On a narrow screen, navigation and actions wrap, long code scrolls inside its own block, and the text remains in one column. Figures keep their full contents visible. A surface plot or architecture diagram loses meaning when its axes or labels are cropped.

2. Owning the Paper overrides

The blog moved from HBTheme to Paper[2]. Project templates in hugo/layouts/ define the article header, lists, search and project pages. Shared styles live in hugo/assets/.

This makes a template fix apply across articles. The header now groups the content kind, date, reading time and topic badges. Longer articles have a collapsible contents list. English and French remain paired by translationKey, with the language switcher in the site header. Repeating a translation link in each introduction adds another navigation choice to a paragraph that should introduce the subject.

The article description stays in search and social metadata. The visible opening is the article’s first paragraph, so readers encounter the introduction once.

3. Articles and project references have different jobs

The post_kind field distinguishes articles, conferences and tutorials in lists and search. Recipes keep their own section. Repository pages live under projects/notes/, where the catalog can link to a stable technical reference.

An article can follow one idea through the code. Its project note holds setup commands, source references and optional API or deployment details. For example, a Docker project needs service ports, storage and startup relationships. A numerical library needs its data structures and the path into its algorithms. Empty sections make both harder to read.

The catalog supports searching and combining filters. Documentation and GitHub remain separate actions on each card. Archive and fork badges describe repository status; they do not replace the project’s title or summary.

4. Diagrams should be useful at the reading size

Mermaid diagrams now have zoom, Fit, full-size, fullscreen and SVG export controls. A diagram starts fitted to the available space. Readers can then inspect a particular label without scrolling the whole page sideways.

Text and source links still explain the relationships. In deployment diagrams, a dependency arrow needs a precise meaning: Compose’s depends_on records startup order, while readiness is a separate concern.

flowchart TB
  Source["Files in git"] --> CV["English and French CV"]
  Source --> Posts["Paired Markdown articles"]
  Source --> Notes["Repository notes and data"]
  Posts --> Hugo["Paper and Hugo overrides"]
  Notes --> Hugo
  CV --> Build["Local production build"]
  Hugo --> Build
  Build --> Pages["Published static site"]

The earlier stack diagram source records the theme and editorial tools used during the rebuild.

5. Skills make editing rules explicit

I use repository skills to keep recurring changes consistent. cv-hero identifies the canonical CV pages and their generated English copy. hugo-site describes the templates, bilingual page bundles and navigation. project-docs specifies the repository-note structure and the evidence needed for technical claims.

The Apple design guidance helps review hierarchy, target sizes, contrast and motion. For this website, those principles apply to browser controls and responsive layouts. The humanizer pass focuses on the writing: direct explanations, concrete details and fewer repeated introductions.

These skills give an editor a place to look before changing a shared component. The result still needs review against the actual page. A rule cannot tell whether a chosen image belongs to the project or whether a diagram’s labels are legible.

6. Previewing and publishing

The source remains in git: HTML for the CV, paired Markdown bundles for articles, and data files for repository references. The JSON Resume article explains the machine-readable CV alongside those pages.

I build the production output locally, check the generated pages, and publish the static tree. The last-updated labels use the release date in America/Toronto. Original article dates keep their historical meaning.

A preview needs more than a successful build. I check light and dark mode, small and wide viewports, language links, image loading and the controls that a reader can use. Reduced-motion settings also need to leave every piece of content accessible. The slide-deck preview now serves rendered slides locally, which lets it work during development as well as after publication.

References

  1. antoinebou12. (). DESIGN.md. [Source file or documentation] github.com.
  2. nanxiaobei. (). hugo-paper. [Software repository] github.com.

References use this article’s publication date.