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>
-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 & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a> dad."
70
70
71
71
[linkTweetsATmosphere]
72
72
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 & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a> dad."
70
70
71
[linkTweetsATmosphere]
71
[linkTweetsATmosphere]
72
other="Tweets on ATmosphere"
72
other="Tweets on ATmosphere"
modifiedblog/i18n/es.toml+1-1
@@ -66,7 +66,7 @@ other = "Más reciente"
66
66
other="Leer →"
67
67
68
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\">🐕️ & 🐈️</a>."
70
70
71
71
[linkTweetsATmosphere]
72
72
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\">🐕️ & 🐈️</a>."
70
70
71
[linkTweetsATmosphere]
71
[linkTweetsATmosphere]
72
other="Tweets en ATmosphere"
72
other="Tweets en ATmosphere"
modifiedblog/i18n/fr.toml+1-1
@@ -66,7 +66,7 @@ other = "Plus récent"
66
66
other="Lire →"
67
67
68
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 & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."
70
70
71
71
[linkTweetsATmosphere]
72
72
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 & Léon\" target=\"_blank\" rel=\"noopener noreferrer\">🐕️ & 🐈️</a>."
+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>のパパでもあります。"
69
69
70
[linkTweetsATmosphere]
70
[linkTweetsATmosphere]
71
other="ATmosphereでのつぶやき"
71
other="ATmosphereでのつぶやき"
modifiedblog/i18n/pt.toml+1-1
@@ -66,7 +66,7 @@ other = "Mais recente"
66
66
other="Ler →"
67
67
68
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\">🐕️ & 🐈️</a>."
70
70
71
71
[linkTweetsATmosphere]
72
72
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\">🐕️ & 🐈️</a>."
70
70
71
[linkTweetsATmosphere]
71
[linkTweetsATmosphere]
72
other="Tweets no ATmosphere"
72
other="Tweets no ATmosphere"
modifiedblog/layouts/_default/baseof.html+4-1
@@ -129,7 +129,10 @@
129
129
*/}}
130
130
{{- $desc := .Description }}
131
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. */}}