mykiwi/mykiwi.blogpublic Fork
⑂ d51e2b6
Commits
⬇ Clone ▾
git clone https://git.rickub.com/mykiwi/mykiwi.blog.git
git clone ssh://git@rickub.com/mykiwi/mykiwi.blog.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

Escape the bio's ampersand, and flatten it for the meta description

The bio string's "&" needed to be "&" to be valid TOML/HTML in the
first place — Hugo's markdownify was silently swallowing the stray
entity. baseof.html now unescapes it back to "&" for the plain-text
meta description, and collapses the whitespace the bio's <br> leaves
behind once its tags are stripped, so the description tag holds one
line, not a newline inside an attribute.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Romain Gautier committed 2026-09-22T22:22:50+02:00 Browse files
d51e2b6 parent: 9ddc3ec
modified blog/i18n/en.toml +1 -1
@@ -66,7 +66,7 @@ other = "Latest"
6666 other = "Read →"
6767
6868 [bio]
69-other = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// and ATmosphere.<br>Also <a href=\"https://instagram.com/apy.leon\" title=\"Pictures of Apy & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a> dad."
69+other = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// and ATmosphere.<br>Also <a href=\"https://instagram.com/apy.leon\" title=\"Pictures of Apy &amp; Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a> dad."
7070
7171 [linkTweetsATmosphere]
7272 other = "Tweets on ATmosphere"
@@ -66,7 +66,7 @@ other = "Latest"
66 other = "Read →"66 other = "Read →"
67 67
68 [bio]68 [bio]
69-other = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// and ATmosphere.<br>Also <a href=\"https://instagram.com/apy.leon\" title=\"Pictures of Apy & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a> dad."69+other = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// and ATmosphere.<br>Also <a href=\"https://instagram.com/apy.leon\" title=\"Pictures of Apy &amp; Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a> dad."
70 70
71 [linkTweetsATmosphere]71 [linkTweetsATmosphere]
72 other = "Tweets on ATmosphere"72 other = "Tweets on ATmosphere"
modified blog/i18n/es.toml +1 -1
@@ -66,7 +66,7 @@ other = "Más reciente"
6666 other = "Leer →"
6767
6868 [bio]
69-other = "Ingeniero de software, apasionado por la tecnología, compartir conocimiento y el open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// y la ATmosphere.<br>También papá de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos de Apy y Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."
69+other = "Ingeniero de software, apasionado por la tecnología, compartir conocimiento y el open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// y la ATmosphere.<br>También papá de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos de Apy y Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
7070
7171 [linkTweetsATmosphere]
7272 other = "Tweets en ATmosphere"
@@ -66,7 +66,7 @@ other = "Más reciente"
66 other = "Leer →"66 other = "Leer →"
67 67
68 [bio]68 [bio]
69-other = "Ingeniero de software, apasionado por la tecnología, compartir conocimiento y el open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// y la ATmosphere.<br>También papá de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos de Apy y Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."69+other = "Ingeniero de software, apasionado por la tecnología, compartir conocimiento y el open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// y la ATmosphere.<br>También papá de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos de Apy y Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
70 70
71 [linkTweetsATmosphere]71 [linkTweetsATmosphere]
72 other = "Tweets en ATmosphere"72 other = "Tweets en ATmosphere"
modified blog/i18n/fr.toml +1 -1
@@ -66,7 +66,7 @@ other = "Plus récent"
6666 other = "Lire →"
6767
6868 [bio]
69-other = "Ingénieur logiciel, passionné par la technologie, le partage de connaissances et l’open source comme #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// et l’ATmosphere.<br>Aussi papa de <a href=\"https://instagram.com/apy.leon\" title=\"Photos d’Apy & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."
69+other = "Ingénieur logiciel, passionné par la technologie, le partage de connaissances et l’open source comme #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// et l’ATmosphere.<br>Aussi papa de <a href=\"https://instagram.com/apy.leon\" title=\"Photos d’Apy &amp; Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
7070
7171 [linkTweetsATmosphere]
7272 other = "Tweets sur l’ATmosphere"
@@ -66,7 +66,7 @@ other = "Plus récent"
66 other = "Lire →"66 other = "Lire →"
67 67
68 [bio]68 [bio]
69-other = "Ingénieur logiciel, passionné par la technologie, le partage de connaissances et l’open source comme #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// et l’ATmosphere.<br>Aussi papa de <a href=\"https://instagram.com/apy.leon\" title=\"Photos d’Apy & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."69+other = "Ingénieur logiciel, passionné par la technologie, le partage de connaissances et l’open source comme #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// et l’ATmosphere.<br>Aussi papa de <a href=\"https://instagram.com/apy.leon\" title=\"Photos d’Apy &amp; Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
70 70
71 [linkTweetsATmosphere]71 [linkTweetsATmosphere]
72 other = "Tweets sur l’ATmosphere"72 other = "Tweets sur l’ATmosphere"
modified blog/i18n/ja.toml +1 -1
@@ -65,7 +65,7 @@ other = "最新"
6565 other = "続きを読む →"
6666
6767 [bio]
68-other = "ソフトウェアエンジニア。技術や知識の共有、そして #PHP、#Symfony、#Dagger、#Docker、#Nix、atproto://、ATmosphereなどのオープンソースに情熱を注いでいます。<br>また、<a href=\"https://instagram.com/apy.leon\" title=\"ApyとLéonの写真\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>のパパでもあります。"
68+other = "ソフトウェアエンジニア。技術や知識の共有、そして #PHP、#Symfony、#Dagger、#Docker、#Nix、atproto://、ATmosphereなどのオープンソースに情熱を注いでいます。<br>また、<a href=\"https://instagram.com/apy.leon\" title=\"ApyとLéonの写真\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>のパパでもあります。"
6969
7070 [linkTweetsATmosphere]
7171 other = "ATmosphereでのつぶやき"
@@ -65,7 +65,7 @@ other = "最新"
65 other = "続きを読む →"65 other = "続きを読む →"
66 66
67 [bio]67 [bio]
68-other = "ソフトウェアエンジニア。技術や知識の共有、そして #PHP、#Symfony、#Dagger、#Docker、#Nix、atproto://、ATmosphereなどのオープンソースに情熱を注いでいます。<br>また、<a href=\"https://instagram.com/apy.leon\" title=\"ApyとLéonの写真\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>のパパでもあります。"68+other = "ソフトウェアエンジニア。技術や知識の共有、そして #PHP、#Symfony、#Dagger、#Docker、#Nix、atproto://、ATmosphereなどのオープンソースに情熱を注いでいます。<br>また、<a href=\"https://instagram.com/apy.leon\" title=\"ApyとLéonの写真\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>のパパでもあります。"
69 69
70 [linkTweetsATmosphere]70 [linkTweetsATmosphere]
71 other = "ATmosphereでのつぶやき"71 other = "ATmosphereでのつぶやき"
modified blog/i18n/pt.toml +1 -1
@@ -66,7 +66,7 @@ other = "Mais recente"
6666 other = "Ler →"
6767
6868 [bio]
69-other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere.<br>Também pai de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos da Apy e do Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."
69+other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere.<br>Também pai de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos da Apy e do Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
7070
7171 [linkTweetsATmosphere]
7272 other = "Tweets no ATmosphere"
@@ -66,7 +66,7 @@ other = "Mais recente"
66 other = "Ler →"66 other = "Ler →"
67 67
68 [bio]68 [bio]
69-other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere.<br>Também pai de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos da Apy e do Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."69+other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere.<br>Também pai de <a href=\"https://instagram.com/apy.leon\" title=\"Fotos da Apy e do Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ &amp; 🐈️</a>."
70 70
71 [linkTweetsATmosphere]71 [linkTweetsATmosphere]
72 other = "Tweets no ATmosphere"72 other = "Tweets no ATmosphere"
modified blog/layouts/_default/baseof.html +4 -1
@@ -129,7 +129,10 @@
129129 */}}
130130 {{- $desc := .Description }}
131131 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}
132- {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}
132+ {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify | htmlUnescape }}{{ end }}{{ end }}
133+ {{- /* The bio's <br> leaves a line break behind once the tags are gone,
134+ and a newline inside the content attribute is not what a snippet wants. */}}
135+ {{- $desc = $desc | replaceRE `\s+` " " | strings.TrimSpace }}
133136 {{ with $desc -}}
134137 <meta name="description" content="{{ . }}">
135138 {{- end }}
@@ -129,7 +129,10 @@
129 */}}129 */}}
130 {{- $desc := .Description }}130 {{- $desc := .Description }}
131 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}131 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}
132- {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}132+ {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify | htmlUnescape }}{{ end }}{{ end }}
133+ {{- /* The bio's <br> leaves a line break behind once the tags are gone,
134+ and a newline inside the content attribute is not what a snippet wants. */}}
135+ {{- $desc = $desc | replaceRE `\s+` " " | strings.TrimSpace }}
133 {{ with $desc -}}136 {{ with $desc -}}
134 <meta name="description" content="{{ . }}">137 <meta name="description" content="{{ . }}">
135 {{- end }}138 {{- end }}