The internalLink shortcode and the lang-detection partial it calls were
emitting newlines around the link, which rendered as a space before the
following punctuation ("Red Hat Summit Connect France 2024 ,"), in the
pages as well as in the summaries, meta descriptions and RSS feeds.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
The Hugo minifier turns "z v15" into "z 15", which is an invalid SVG
path: the red diagonals of the flag were not clipped. Starting each
subpath with an explicit moveto avoids the issue.
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
- convert Source Serif Pro and Source Sans Pro to woff2 (lossless,
~500 KB -> ~155 KB) and only declare the woff2 format, which is
supported by all current browsers
- only preload the body and menu fonts: JetBrains Mono is only used by
code blocks. Previously, five fonts were preloaded (~800 KB), including
JetBrains Mono in three formats.
- remove the unused material-icons fonts (icons are inline SVG)
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
- mathjax.html: no page sets enableMathJax, and it was loading a
useless polyfill along with some MathJax v2 code that never ran
- section.html: blog, speaking and writing have their own templates
- baseurl and figure shortcodes: no longer used
The generated site is identical.
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
Recent versions of Hugo no longer follow symbolic links to files in the
content directory. Since the files are identical, git and git-lfs store
them only once: the repository size does not change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
Hugo used to publish every file of the page bundles, including the
source files (xcf, heic, raw videos, scripts, etc.), twice because of
the english articles copied in the french site. The site weighed 503 MB.
With publishResources disabled, only the resources referenced through
.Permalink / .RelPermalink are published: 95 files are no longer
published and the site now weighs 165 MB.
The few resources referenced by raw markdown links or by the figure
shortcode (which does not resolve page resources) now use the
attachedFileLink and attachedFigure shortcodes.
Note: Hugo 0.121 uses the _build front matter key (renamed build later).
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
The canonical link and the noindex meta tag were never emitted on the
english articles published as-is in the french site, because head.html
was checking the language detection of the translation instead of the
current page. Hence, the original articles also advertised the french
copies as their translation through hreflang.
- emit canonical + noindex on the french copies (68 pages)
- only list real translations in hreflang, including the current page
- exclude the french copies from the sitemap and its alternates
- restrict the language detection to regular pages: list pages have
no file and an empty content, hence they were always detected as copies
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
Three articles in two languages on the Open Code Quest :
* new article on Open Code Quest
* split one article in two
* fix video width
* thanks @slallemand for the proofreading
* thanks mos for the proofreading
* translation
* add sources
* fix publish date