- the search index is generated by Hugo as a separate JSON file
(searchindex output format), loaded by the search page and cached by
the browser: the search pages go from 96 KB to 7 KB
- Fuse.js 6.4.3 -> 7.5.0 (basic build). Since Fuse.js 7 no longer
provides an UMD build, search.js is now an ES module importing it.
- search on the input event instead of keyup (paste, autocompletion)
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
- Content-Security-Policy without inline script: the search page now
embeds its data in a JSON data block, used by /js/search.js
- X-Content-Type-Options, X-Frame-Options, Referrer-Policy
- cache the fingerprinted CSS forever and the fonts for 30 days
HSTS is already set by Netlify.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
Hugo upgrade (0.121.2 -> 0.167.0):
- remove the blackfriday and pygments* settings (markup.highlight instead)
- languageName -> label, _build -> build, .Scratch -> .Store,
.Sites -> hugo.Sites, .LanguageName -> .Label, .LanguageCode -> .Locale
- move the templates to the new layout tree (_partials, _shortcodes,
home.html, page.html, term.html, taxonomy.html, section.html)
- use the embedded pagination, opengraph and twitter_cards partials
- fix the term filtering in post-metadata.html (.Data.<singular> is gone)
- keep the taxonomy terms as written (capitalizeListTitles: false) and
give a proper title to the blog section ("Articles" instead of "Blogs")
- <s> is raw HTML (omitted by Goldmark): use ~~ instead
- use relref for a relative link that was broken in the RSS feeds
Mounts:
- the english content not translated in french is now published in the
french site through module mounts, instead of symlinks created by the
./hugo script. hugo and hugo server can be used directly.
- chroma.css is now versioned instead of generated at each build
- remove the ./hugo script and realpath.py
The generated site has the same set of files. The remaining differences
come from the new minifier, the new embedded templates (og:locale, empty
meta tags removed, youtube iframe) and the new summary computation.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
The theme was only used by this site. Having it at the root of the
repository removes the need for a git submodule and the double commits.
- layouts, assets, i18n and static files moved to the root
- theme LICENSE kept as LICENSE-theme
- ./hugo now generates chroma.css in assets/css
- remove the obsolete static/css/.gitignore
The generated site is identical, except for the stale /css/chroma.css
and /css/.gitignore files that are no longer published.
Closes#12
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3