mykiwi/mykiwi.blogpublic Fork
⑂ afcdfde
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

Localize profile bio, link labels, and license text per language

Bio and colophon link labels move into i18n/*.toml (key "bio" and
linkTweetsATmosphere etc.) so every language gets real translations
instead of English text everywhere. Links themselves stay defined
once in hugo.toml, referenced by i18n id, so url/value aren't
duplicated per language just to translate a label.

The footer's CC BY-SA link now points at each language's own deed
page (deed.fr, deed.es, deed.pt-br, deed.ja) instead of the English
default, and licenseText reads "Content" rather than "Text" since the
license covers more than prose.

The Instagram link inside the bio opens in a new tab via raw HTML
(unsafe goldmark is already enabled) with rel="noopener noreferrer".
Romain Gautier committed 2026-09-20T00:25:50+02:00 Browse files
afcdfde parent: ab57bea
modified blog/hugo.toml +10 -9
@@ -66,33 +66,34 @@ avatarAlt = "mykiwi's avatar"
6666 firstName = "Romain"
6767 lastName = "GAUTIER"
6868 atprotoHandle = 'mykiwi.dev'
69-# Markdown, rendered as-is in the colophon (links work: [text](url)). Also
70-# the source for the <meta name="description"> tag, unless params.description
71-# above is set to override it.
72-bio = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Docker, #Dagger, #Nix, atproto:// and ATmosphere. Also [🐕️ & 🐈️](https://instagram.com/apy.leon \"Pictures of Apy & Léon\") dad."
69+# The bio itself lives in i18n/*.toml (key "bio") since it's translated text -
70+# see the colophon partial and baseof.html, which pull it via i18n "bio".
7371
72+# Links are defined once here (not per language) - `id` is an i18n key
73+# (see i18n/*.toml) so only the label translates; value/url stay identical
74+# across every language build.
7475 [[params.profile.links]]
75-key = "Tweets on ATmosphere"
76+id = "linkTweetsATmosphere"
7677 value = "@mykiwi.dev"
7778 url = "https://bsky.app/profile/mykiwi.dev"
7879
7980 [[params.profile.links]]
80-key = "Tweets on Fediverse"
81+id = "linkTweetsFediverse"
8182 value = "@mykiwi@mamot.fr"
8283 url = "https://mamot.fr/@mykiwi"
8384
8485 [[params.profile.links]]
85-key = "Tweets on Twitter"
86+id = "linkTweetsTwitter"
8687 value = "@my_kiwi"
8788 url = "https://x.com/mykiwi"
8889
8990 [[params.profile.links]]
90-key = "Code on ATmosphere"
91+id = "linkCodeATmosphere"
9192 value = "@mykiwi.dev"
9293 url = "https://tangled.org/mykiwi.dev"
9394
9495 [[params.profile.links]]
95-key = "Code on GitHub"
96+id = "linkCodeGitHub"
9697 value = "@mykiwi"
9798 url = "https://github.com/mykiwi"
9899
@@ -66,33 +66,34 @@ avatarAlt = "mykiwi's avatar"
66 firstName = "Romain"66 firstName = "Romain"
67 lastName = "GAUTIER"67 lastName = "GAUTIER"
68 atprotoHandle = 'mykiwi.dev'68 atprotoHandle = 'mykiwi.dev'
69-# Markdown, rendered as-is in the colophon (links work: [text](url)). Also69+# The bio itself lives in i18n/*.toml (key "bio") since it's translated text -
70-# the source for the <meta name="description"> tag, unless params.description70+# see the colophon partial and baseof.html, which pull it via i18n "bio".
71-# above is set to override it.
72-bio = "I'm a software engineer, passionate about technology, sharing knowledge and open source like #PHP, #Symfony, #Docker, #Dagger, #Nix, atproto:// and ATmosphere. Also [🐕️ & 🐈️](https://instagram.com/apy.leon \"Pictures of Apy & Léon\") dad."
73 71
72+# Links are defined once here (not per language) - `id` is an i18n key
73+# (see i18n/*.toml) so only the label translates; value/url stay identical
74+# across every language build.
74 [[params.profile.links]]75 [[params.profile.links]]
75-key = "Tweets on ATmosphere"76+id = "linkTweetsATmosphere"
76 value = "@mykiwi.dev"77 value = "@mykiwi.dev"
77 url = "https://bsky.app/profile/mykiwi.dev"78 url = "https://bsky.app/profile/mykiwi.dev"
78 79
79 [[params.profile.links]]80 [[params.profile.links]]
80-key = "Tweets on Fediverse"81+id = "linkTweetsFediverse"
81 value = "@mykiwi@mamot.fr"82 value = "@mykiwi@mamot.fr"
82 url = "https://mamot.fr/@mykiwi"83 url = "https://mamot.fr/@mykiwi"
83 84
84 [[params.profile.links]]85 [[params.profile.links]]
85-key = "Tweets on Twitter"86+id = "linkTweetsTwitter"
86 value = "@my_kiwi"87 value = "@my_kiwi"
87 url = "https://x.com/mykiwi"88 url = "https://x.com/mykiwi"
88 89
89 [[params.profile.links]]90 [[params.profile.links]]
90-key = "Code on ATmosphere"91+id = "linkCodeATmosphere"
91 value = "@mykiwi.dev"92 value = "@mykiwi.dev"
92 url = "https://tangled.org/mykiwi.dev"93 url = "https://tangled.org/mykiwi.dev"
93 94
94 [[params.profile.links]]95 [[params.profile.links]]
95-key = "Code on GitHub"96+id = "linkCodeGitHub"
96 value = "@mykiwi"97 value = "@mykiwi"
97 url = "https://github.com/mykiwi"98 url = "https://github.com/mykiwi"
98 99
modified blog/i18n/en.toml +22 -1
@@ -12,7 +12,10 @@ one = "{{ .Count }} post"
1212 other = "{{ .Count }} posts"
1313
1414 [licenseText]
15-other = "Text is"
15+other = "Content is"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/"
1619
1720 [subscribeRSS]
1821 other = "Subscribe via RSS"
@@ -25,3 +28,21 @@ other = "Latest"
2528
2629 [readMore]
2730 other = "Read →"
31+
32+[bio]
33+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."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets on ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets on Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets on Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Code on ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Code on GitHub"
@@ -12,7 +12,10 @@ one = "{{ .Count }} post"
12 other = "{{ .Count }} posts"12 other = "{{ .Count }} posts"
13 13
14 [licenseText]14 [licenseText]
15-other = "Text is"15+other = "Content is"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/"
16 19
17 [subscribeRSS]20 [subscribeRSS]
18 other = "Subscribe via RSS"21 other = "Subscribe via RSS"
@@ -25,3 +28,21 @@ other = "Latest"
25 28
26 [readMore]29 [readMore]
27 other = "Read →"30 other = "Read →"
31+
32+[bio]
33+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."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets on ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets on Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets on Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Code on ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Code on GitHub"
modified blog/i18n/es.toml +22 -1
@@ -12,7 +12,10 @@ one = "{{ .Count }} artículo"
1212 other = "{{ .Count }} artículos"
1313
1414 [licenseText]
15-other = "Texto bajo licencia"
15+other = "Contenido bajo licencia"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.es"
1619
1720 [subscribeRSS]
1821 other = "Suscribirse vía RSS"
@@ -25,3 +28,21 @@ other = "Último"
2528
2629 [readMore]
2730 other = "Leer →"
31+
32+[bio]
33+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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets en ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets en Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets en Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Código en ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Código en GitHub"
@@ -12,7 +12,10 @@ one = "{{ .Count }} artículo"
12 other = "{{ .Count }} artículos"12 other = "{{ .Count }} artículos"
13 13
14 [licenseText]14 [licenseText]
15-other = "Texto bajo licencia"15+other = "Contenido bajo licencia"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.es"
16 19
17 [subscribeRSS]20 [subscribeRSS]
18 other = "Suscribirse vía RSS"21 other = "Suscribirse vía RSS"
@@ -25,3 +28,21 @@ other = "Último"
25 28
26 [readMore]29 [readMore]
27 other = "Leer →"30 other = "Leer →"
31+
32+[bio]
33+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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets en ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets en Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets en Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Código en ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Código en GitHub"
modified blog/i18n/fr.toml +23 -2
@@ -12,10 +12,13 @@ one = "{{ .Count }} article"
1212 other = "{{ .Count }} articles"
1313
1414 [licenseText]
15-other = "Texte sous licence"
15+other = "Contenu sous licence"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.fr"
1619
1720 [subscribeRSS]
18-other = "S'abonner via RSS"
21+other = "S’abonner via RSS"
1922
2023 [rssLabel]
2124 other = "RSS"
@@ -25,3 +28,21 @@ other = "Dernier"
2528
2629 [readMore]
2730 other = "Lire →"
31+
32+[bio]
33+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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets sur l’ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets sur le Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets sur Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Code sur l’ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Code sur GitHub"
@@ -12,10 +12,13 @@ one = "{{ .Count }} article"
12 other = "{{ .Count }} articles"12 other = "{{ .Count }} articles"
13 13
14 [licenseText]14 [licenseText]
15-other = "Texte sous licence"15+other = "Contenu sous licence"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.fr"
16 19
17 [subscribeRSS]20 [subscribeRSS]
18-other = "S'abonner via RSS"21+other = "S’abonner via RSS"
19 22
20 [rssLabel]23 [rssLabel]
21 other = "RSS"24 other = "RSS"
@@ -25,3 +28,21 @@ other = "Dernier"
25 28
26 [readMore]29 [readMore]
27 other = "Lire →"30 other = "Lire →"
31+
32+[bio]
33+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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets sur l’ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets sur le Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets sur Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Code sur l’ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Code sur GitHub"
modified blog/i18n/ja.toml +22 -1
@@ -11,7 +11,10 @@ other = "{{ .Count }}分で読了"
1111 other = "{{ .Count }}件の投稿"
1212
1313 [licenseText]
14-other = "テキストは"
14+other = "コンテンツは"
15+
16+[licenseURL]
17+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.ja"
1518
1619 [subscribeRSS]
1720 other = "RSSで購読"
@@ -24,3 +27,21 @@ other = "最新"
2427
2528 [readMore]
2629 other = "続きを読む →"
30+
31+[bio]
32+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>のパパでもあります。"
33+
34+[linkTweetsATmosphere]
35+other = "ATmosphereでのつぶやき"
36+
37+[linkTweetsFediverse]
38+other = "Fediverseでのつぶやき"
39+
40+[linkTweetsTwitter]
41+other = "Twitterでのつぶやき"
42+
43+[linkCodeATmosphere]
44+other = "ATmosphereのコード"
45+
46+[linkCodeGitHub]
47+other = "GitHubのコード"
@@ -11,7 +11,10 @@ other = "{{ .Count }}分で読了"
11 other = "{{ .Count }}件の投稿"11 other = "{{ .Count }}件の投稿"
12 12
13 [licenseText]13 [licenseText]
14-other = "テキストは"14+other = "コンテンツは"
15+
16+[licenseURL]
17+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.ja"
15 18
16 [subscribeRSS]19 [subscribeRSS]
17 other = "RSSで購読"20 other = "RSSで購読"
@@ -24,3 +27,21 @@ other = "最新"
24 27
25 [readMore]28 [readMore]
26 other = "続きを読む →"29 other = "続きを読む →"
30+
31+[bio]
32+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>のパパでもあります。"
33+
34+[linkTweetsATmosphere]
35+other = "ATmosphereでのつぶやき"
36+
37+[linkTweetsFediverse]
38+other = "Fediverseでのつぶやき"
39+
40+[linkTweetsTwitter]
41+other = "Twitterでのつぶやき"
42+
43+[linkCodeATmosphere]
44+other = "ATmosphereのコード"
45+
46+[linkCodeGitHub]
47+other = "GitHubのコード"
modified blog/i18n/pt.toml +22 -1
@@ -12,7 +12,10 @@ one = "{{ .Count }} post"
1212 other = "{{ .Count }} posts"
1313
1414 [licenseText]
15-other = "Texto sob licença"
15+other = "Conteúdo sob licença"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.pt-br"
1619
1720 [subscribeRSS]
1821 other = "Assine via RSS"
@@ -25,3 +28,21 @@ other = "Mais recente"
2528
2629 [readMore]
2730 other = "Ler →"
31+
32+[bio]
33+other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere. 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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets no ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets no Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets no Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Código no ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Código no GitHub"
@@ -12,7 +12,10 @@ one = "{{ .Count }} post"
12 other = "{{ .Count }} posts"12 other = "{{ .Count }} posts"
13 13
14 [licenseText]14 [licenseText]
15-other = "Texto sob licença"15+other = "Conteúdo sob licença"
16+
17+[licenseURL]
18+other = "https://creativecommons.org/licenses/by-sa/4.0/deed.pt-br"
16 19
17 [subscribeRSS]20 [subscribeRSS]
18 other = "Assine via RSS"21 other = "Assine via RSS"
@@ -25,3 +28,21 @@ other = "Mais recente"
25 28
26 [readMore]29 [readMore]
27 other = "Ler →"30 other = "Ler →"
31+
32+[bio]
33+other = "Engenheiro de software, apaixonado por tecnologia, compartilhamento de conhecimento e open source como #PHP, #Symfony, #Dagger, #Docker, #Nix, atproto:// e o ATmosphere. 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>."
34+
35+[linkTweetsATmosphere]
36+other = "Tweets no ATmosphere"
37+
38+[linkTweetsFediverse]
39+other = "Tweets no Fediverse"
40+
41+[linkTweetsTwitter]
42+other = "Tweets no Twitter"
43+
44+[linkCodeATmosphere]
45+other = "Código no ATmosphere"
46+
47+[linkCodeGitHub]
48+other = "Código no GitHub"
modified blog/layouts/_default/baseof.html +5 -5
@@ -13,14 +13,14 @@
1313 <title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} &middot; {{ site.Title }}{{ end }}</title>
1414 {{- /*
1515 Priority: this page's own front matter > an explicit site-wide
16- params.description override > params.profile.bio, stripped of markdown
17- down to plain text. Set params.description only when the SEO snippet
18- should say something different from the colophon bio; otherwise bio is
19- the single source of truth for both.
16+ params.description override > i18n "bio", stripped of markdown down to
17+ plain text. Set params.description only when the SEO snippet should say
18+ something different from the colophon bio; otherwise bio is the single
19+ source of truth for both.
2020 */}}
2121 {{- $desc := .Description }}
2222 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}
23- {{- if not $desc }}{{ with site.Params.profile.bio }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}
23+ {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}
2424 {{ with $desc -}}
2525 <meta name="description" content="{{ . }}">
2626 {{- end }}
@@ -13,14 +13,14 @@
13 <title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} &middot; {{ site.Title }}{{ end }}</title>13 <title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} &middot; {{ site.Title }}{{ end }}</title>
14 {{- /*14 {{- /*
15 Priority: this page's own front matter > an explicit site-wide15 Priority: this page's own front matter > an explicit site-wide
16- params.description override > params.profile.bio, stripped of markdown16+ params.description override > i18n "bio", stripped of markdown down to
17- down to plain text. Set params.description only when the SEO snippet17+ plain text. Set params.description only when the SEO snippet should say
18- should say something different from the colophon bio; otherwise bio is18+ something different from the colophon bio; otherwise bio is the single
19- the single source of truth for both.19+ source of truth for both.
20 */}}20 */}}
21 {{- $desc := .Description }}21 {{- $desc := .Description }}
22 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}22 {{- if not $desc }}{{ $desc = site.Params.description }}{{ end }}
23- {{- if not $desc }}{{ with site.Params.profile.bio }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}23+ {{- if not $desc }}{{ with i18n "bio" }}{{ $desc = . | markdownify | plainify }}{{ end }}{{ end }}
24 {{ with $desc -}}24 {{ with $desc -}}
25 <meta name="description" content="{{ . }}">25 <meta name="description" content="{{ . }}">
26 {{- end }}26 {{- end }}
modified blog/layouts/partials/colophon.html +5 -4
@@ -1,7 +1,8 @@
11 {{- /*
22 Bio card for the homepage. Ported from fzakaria.com's _includes/colophon.html.
3- Reads entirely from site.Params.profile, so it renders nothing until that's
4- configured in hugo.toml, and the avatar itself no-ops if the file is missing.
3+ Avatar/name/links come from site.Params.profile in hugo.toml, so it renders
4+ nothing until that's configured, and the avatar itself no-ops if the file is
5+ missing. The bio text itself comes from i18n "bio" (i18n/*.toml).
56 */ -}}
67 {{- with site.Params.profile -}}
78 {{- $profile := . -}}
@@ -30,14 +31,14 @@
3031 {{- if or .firstName .lastName }}
3132 <p class="colophon__name">{{ with .firstName }}{{ . }} {{ end }}<span class="colophon__name-last">{{ .lastName }}</span></p>
3233 {{- end }}
33- {{- with .bio | default site.Params.description }}
34+ {{- with i18n "bio" | default site.Params.description }}
3435 <div class="colophon__bio">{{ . | markdownify }}</div>
3536 {{- end }}
3637 {{- with .links }}
3738 <ul class="colophon__links">
3839 {{- range . }}
3940 <li>
40- <span class="key">{{ .key }}</span>
41+ <span class="key">{{ i18n .id }}</span>
4142 <span class="val"><a href="{{ .url }}">{{ .value }}</a></span>
4243 </li>
4344 {{- end }}
@@ -1,7 +1,8 @@
1 {{- /*1 {{- /*
2 Bio card for the homepage. Ported from fzakaria.com's _includes/colophon.html.2 Bio card for the homepage. Ported from fzakaria.com's _includes/colophon.html.
3- Reads entirely from site.Params.profile, so it renders nothing until that's3+ Avatar/name/links come from site.Params.profile in hugo.toml, so it renders
4- configured in hugo.toml, and the avatar itself no-ops if the file is missing.4+ nothing until that's configured, and the avatar itself no-ops if the file is
5+ missing. The bio text itself comes from i18n "bio" (i18n/*.toml).
5 */ -}}6 */ -}}
6 {{- with site.Params.profile -}}7 {{- with site.Params.profile -}}
7 {{- $profile := . -}}8 {{- $profile := . -}}
@@ -30,14 +31,14 @@
30 {{- if or .firstName .lastName }}31 {{- if or .firstName .lastName }}
31 <p class="colophon__name">{{ with .firstName }}{{ . }} {{ end }}<span class="colophon__name-last">{{ .lastName }}</span></p>32 <p class="colophon__name">{{ with .firstName }}{{ . }} {{ end }}<span class="colophon__name-last">{{ .lastName }}</span></p>
32 {{- end }}33 {{- end }}
33- {{- with .bio | default site.Params.description }}34+ {{- with i18n "bio" | default site.Params.description }}
34 <div class="colophon__bio">{{ . | markdownify }}</div>35 <div class="colophon__bio">{{ . | markdownify }}</div>
35 {{- end }}36 {{- end }}
36 {{- with .links }}37 {{- with .links }}
37 <ul class="colophon__links">38 <ul class="colophon__links">
38 {{- range . }}39 {{- range . }}
39 <li>40 <li>
40- <span class="key">{{ .key }}</span>41+ <span class="key">{{ i18n .id }}</span>
41 <span class="val"><a href="{{ .url }}">{{ .value }}</a></span>42 <span class="val"><a href="{{ .url }}">{{ .value }}</a></span>
42 </li>43 </li>
43 {{- end }}44 {{- end }}
modified blog/layouts/partials/site-foot.html +1 -1
@@ -1,5 +1,5 @@
11 <footer class="site-foot column">
2- <span>{{ i18n "licenseText" }} <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a></span>
2+ <span>{{ i18n "licenseText" }} <a href="{{ i18n "licenseURL" }}">CC BY-SA</a></span>
33 <span class="sep" aria-hidden="true">&middot;</span>
44 <span>
55 <a class="rss" href="{{ "index.xml" | relLangURL }}" title="{{ i18n "subscribeRSS" }}" hx-boost="false">
@@ -1,5 +1,5 @@
1 <footer class="site-foot column">1 <footer class="site-foot column">
2- <span>{{ i18n "licenseText" }} <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a></span>2+ <span>{{ i18n "licenseText" }} <a href="{{ i18n "licenseURL" }}">CC BY-SA</a></span>
3 <span class="sep" aria-hidden="true">&middot;</span>3 <span class="sep" aria-hidden="true">&middot;</span>
4 <span>4 <span>
5 <a class="rss" href="{{ "index.xml" | relLangURL }}" title="{{ i18n "subscribeRSS" }}" hx-boost="false">5 <a class="rss" href="{{ "index.xml" | relLangURL }}" title="{{ i18n "subscribeRSS" }}" hx-boost="false">