diff --git a/content/misc/_index.md b/content/misc/_index.md
index 940b1d3..799dc06 100644
--- a/content/misc/_index.md
+++ b/content/misc/_index.md
@@ -1,5 +1,5 @@
---
-title: Misc
+title: Miscellanea
language: en
ref: misc
translationKey: misc
@@ -10,92 +10,3 @@ disable_feed: true
Here are some miscellanous things I do.
-## Conlangs
-
-Conlang stands for *constructed language*. Many people created
-conlangs for hobby or as linguistic experiments.
-
-I was inspired by the conlangs in Inheritance Cycle and The Lord of
-the Rings, as well as others like Esperanto, Dothraki, Toki Pona, et al and
-conlang from time to time as a hobby. None of my conlangs reached its
-maturity, though, mainly due to loss of copies and lack of time.
-
-Some of my conlangs:
-
-- [Hàäsdáïga](/haasdaiga/)
-- [Ravna](/ravna/)
-- [Isanercent](/isanercent/)
-- [Djanzi](/djanzi/)
-
-## Books
-
-I'm not the bookworm I used to be, reading mostly mainstream books. Some books
-I read and liked:
-
-- Dế Mèn phiêu lưu kí, a famous children book in Vietnamese about an
- arrogant cricket who learned humility and altruism during his journey.
-- The adventures of Valya and Karik, a Russian children book (my copy
- was a Vietnamese translation) about the adventures of shrunken children in
- which they learn about small animals around them.
-- Sans famille, a story about a child who had to leave his family for
- poverty, though now that I think about it, it sounds like children
- trafficking and child labor.
-- Nineteen Eighty-Four, a dystopian tragedy that is often mistaken as
- criticism of socialism, while the actual object is authoritanism and mass
- surveillance.
-- The Hobbit and The Lord of the Rings, the well-known fantasy
- franchise
-- Inheritance Cycle, often labeled as rip-off Star Wars by haters
-- Gulliver's Travels, a book that's supposed to be satire but I didn't
- know enough to understand these deep meanings.
-- Le petit prince, a novella with a childish theme but discuss many
- aspects of life in a lighthearted way.
-- [Ellana][ellana] (Le Pacte des MarchOmbres series) (French)
-
-Books I'm reading:
-
-- [Ellana: L'envol][ellana-2] (Le Pacte des MarchOmbres series) (French)
-- [Tous les hommes sont mortels][hommes-mortels] (French)
-- The Necromancer (The Secrets of the Immortal Nicholas Flamel
- series)
-
-Dropped:
-
-- [XKCD what if](what-if)
-- A Storm of Swords(A Song of Ice and Fire series)
-
-[what-if]: https://store.xkcd.com/pages/if-you-re-looking-for-the-what-if-book
-[ellana]: https://openlibrary.org/works/OL24210815W/Le_Pacte_des_MarchOmbres_-_Ellana
-[ellana-2]: https://openlibrary.org/works/OL24339191W/Ellana_l%27envol
-[hommes-mortels]: https://openlibrary.org/works/OL13053706W/Tous_les_hommes_sont_mortels
-
-## Project ideas
-
-Here are some project ideas that I have in mind, yet don't have the time to
-implement any of them. You'll probably find some drafts, but practically no
-work is done:
-
-- a small shop management app
-- a modern text browser with vim keybinding
-- several non-standard libs:
- - a rewrite for `time` module in Go
- - internalisation modules
-- universal internalisation package, which contains common phrases like
- "Settings", "Log in", "Account" pre-translated
-- redesign this blog
-- smaller and more maintainable, more packageable Anki clone
-
-## Comics
-
-Reading comics is my pastime. I follow several webcomics, some of which you
-may have heard of:
-
-- [Pepper & Carrot](https://www.peppercarrot.com/)
-- [xkcd](https://xkcd.com): nerd stuff
-- [SMBC](https://smbc-comics.com): more nerd stuff, and usually less concise
-- [Oglaf](https://www.oglaf.com/): silly and occasionally NSFW comics
-- [Dinosaur comics](https://qwantz.com/): a 5-panel comics with only dialogues changing
-
-I also enjoy drawing every now and then, not that I want to be an artist or I
-draw well. I just find scribbling something fun. I recently decided to post
-[my doodles](/en/doodles/) on this website.
diff --git a/content/misc/books.md b/content/misc/books.md
new file mode 100644
index 0000000..6a2a284
--- /dev/null
+++ b/content/misc/books.md
@@ -0,0 +1,49 @@
+---
+title: Reading
+language: en
+ref: misc-books
+translationKey: misc-books
+disable_feed: true
+---
+
+I'm not the bookworm I used to be, reading mostly mainstream books. Some books
+I read and liked:
+
+- Dế Mèn phiêu lưu kí, a famous children book in Vietnamese about an
+ arrogant cricket who learned humility and altruism during his journey.
+- The adventures of Valya and Karik, a Russian children book (my copy
+ was a Vietnamese translation) about the adventures of shrunken children in
+ which they learn about small animals around them.
+- Sans famille, a story about a child who had to leave his family for
+ poverty, though now that I think about it, it sounds like children
+ trafficking and child labor.
+- Nineteen Eighty-Four, a dystopian tragedy that is often mistaken as
+ criticism of socialism, while the actual object is authoritanism and mass
+ surveillance.
+- The Hobbit and The Lord of the Rings, the well-known fantasy
+ franchise
+- Inheritance Cycle, often labeled as rip-off Star Wars by haters
+- Gulliver's Travels, a book that's supposed to be satire but I didn't
+ know enough to understand these deep meanings.
+- Le petit prince, a novella with a childish theme but discuss many
+ aspects of life in a lighthearted way.
+- [Ellana][ellana] (Le Pacte des MarchOmbres series) (French)
+
+Books I'm reading:
+
+- [Ellana: L'envol][ellana-2] (Le Pacte des MarchOmbres series) (French)
+- [Tous les hommes sont mortels][hommes-mortels] (French)
+- The Necromancer (The Secrets of the Immortal Nicholas Flamel
+ series)
+
+Dropped:
+
+- [XKCD what if](what-if)
+- A Storm of Swords(A Song of Ice and Fire series)
+
+See also: [book reviews](/en/book-reviews) I wrote on this site.
+
+[what-if]: https://store.xkcd.com/pages/if-you-re-looking-for-the-what-if-book
+[ellana]: https://openlibrary.org/works/OL24210815W/Le_Pacte_des_MarchOmbres_-_Ellana
+[ellana-2]: https://openlibrary.org/works/OL24339191W/Ellana_l%27envol
+[hommes-mortels]: https://openlibrary.org/works/OL13053706W/Tous_les_hommes_sont_mortels
diff --git a/content/misc/comics.md b/content/misc/comics.md
new file mode 100644
index 0000000..1b2f610
--- /dev/null
+++ b/content/misc/comics.md
@@ -0,0 +1,21 @@
+---
+title: Comics
+language: en
+ref: misc-comics
+translationKey: misc-comics
+disable_feed: true
+---
+
+Reading comics is my pastime. I follow several webcomics, some of which you
+may have heard of:
+
+- [Pepper & Carrot](https://www.peppercarrot.com/)
+- [xkcd](https://xkcd.com): nerd stuff
+- [SMBC](https://smbc-comics.com): more nerd stuff, and usually less concise
+- [Oglaf](https://www.oglaf.com/): silly and occasionally NSFW comics
+- [Dinosaur comics](https://qwantz.com/): a 5-panel comics with only dialogues changing
+
+I also enjoy drawing every now and then, not that I want to be an artist or I
+draw well. I just find scribbling something fun. ~~I recently decided to post
+[my doodles](/en/doodles/) on this website.~~
+
diff --git a/content/misc/conlangs.md b/content/misc/conlangs.md
new file mode 100644
index 0000000..926c5b0
--- /dev/null
+++ b/content/misc/conlangs.md
@@ -0,0 +1,22 @@
+---
+title: Conlangs
+language: en
+ref: conlangs
+translationKey: conlangs
+disable_feed: true
+---
+
+Conlang stands for *constructed language*. Many people created
+conlangs for hobby or as linguistic experiments.
+
+I was inspired by the conlangs in Inheritance Cycle and The Lord of
+the Rings, as well as others like Esperanto, Dothraki, Toki Pona, et al and
+conlang from time to time as a hobby. None of my conlangs reached its
+maturity, though, mainly due to loss of copies and lack of time.
+
+Some of my conlangs:
+
+- [Hàäsdáïga](/haasdaiga/)
+- [Ravna](/ravna/)
+- [Isanercent](/isanercent/)
+- [Djanzi](/djanzi/)
diff --git a/content/misc/projects.md b/content/misc/projects.md
new file mode 100644
index 0000000..a0abf72
--- /dev/null
+++ b/content/misc/projects.md
@@ -0,0 +1,20 @@
+---
+title: Projects
+language: en
+ref: misc-projects
+translationKey: misc-projects
+disable_feeds: true
+---
+
+Here are some project ideas that I have in mind, yet don't have the time to
+implement any of them. You'll probably find some drafts, but practically no
+work is done:
+
+- a small shop management app
+- a modern text browser with vim keybinding
+- several non-standard libs:
+ - a rewrite for `time` module in Go
+ - internalisation modules
+- universal internalisation package, which contains common phrases like
+ "Settings", "Log in", "Account" pre-translated
+- smaller and more maintainable, more packageable Anki clone
diff --git a/content/posts/2024-01-05-mayim-sqlite.md b/content/posts/2024-01-05-mayim-sqlite.md
index 3ce666a..a151bfe 100644
--- a/content/posts/2024-01-05-mayim-sqlite.md
+++ b/content/posts/2024-01-05-mayim-sqlite.md
@@ -182,7 +182,10 @@ GROUP BY product.id;
Running that would result in rows with duplicated categories like:
```python
-Product(id=1, name='energy drink', prices=[Price(id=1, unit='bottle', price=12000), Price(id=2, unit='packets', price=70000)], categories=['drink', 'drink']),
+Product(id=1, name='energy drink',
+ prices=[Price(id=1, unit='bottle', price=12000),
+ Price(id=2, unit='packets', price=70000)],
+ categories=['drink', 'drink']),
```
This is because I joined three tables at once, and the categories are repeated
diff --git a/content/posts/_index.fr.md b/content/posts/_index.fr.md
index 8eab8a9..4e472e7 100644
--- a/content/posts/_index.fr.md
+++ b/content/posts/_index.fr.md
@@ -2,7 +2,6 @@
title: Blog
lang: fr
translationKey: posts
-categories: [blog]
---
Voici mon blog
diff --git a/content/posts/_index.md b/content/posts/_index.md
index 7a11ae0..88529cd 100644
--- a/content/posts/_index.md
+++ b/content/posts/_index.md
@@ -2,7 +2,7 @@
title: Blog
lang: en
translationKey: posts
-categories: [blog]
+reversed: true
---
Here are my blog posts!
diff --git a/content/til/_index.fr.md b/content/til/_index.fr.md
index 2e98e4c..c331bf2 100644
--- a/content/til/_index.fr.md
+++ b/content/til/_index.fr.md
@@ -1,7 +1,6 @@
---
title: AJA
translationKey: til
-categories: [blog]
---
(*Aujourd'hui J'ai Appris...* -- traduit de *Today I learned* en anglais.
diff --git a/content/til/_index.md b/content/til/_index.md
index f4b57b0..8808ccd 100644
--- a/content/til/_index.md
+++ b/content/til/_index.md
@@ -2,7 +2,6 @@
title: TIL
lang: en
translationKey: til
-categories: [blog]
---
These are lists of small tricks or fun trivia I learned.
diff --git a/dark.css b/dark.css
deleted file mode 100644
index 4c439ec..0000000
--- a/dark.css
+++ /dev/null
@@ -1,47 +0,0 @@
-:root {
- --font-color: #eee;
- --bg-color: #212121;
-
- --link-color: #0a9dff;
- --link-state-color:#ffa724;
- --link-state-border-color: rgba(238, 54, 54, 0.5);
-
- --thead-bg-color: #343a40;
- --table-border-color: lightgrey;
-
- --nav-bg-color: #242424;
- --nav-link-color: #b6b6b6;
-
- --pre-color: #333;
- --pre-bg-color: #f1f1f1;
-
- --bq-color: #ccc;
- --hr-color: #333;
-
- --pagination-bg-color: #373737;
- --pagination-link-color: #b6b6b6;
-
- --post-info-color: #599ada;
-
- --switcher-color: #333;
- --switcher-bg-color: #fff;
-}
-
-html {
- font-family: monospace;
-}
-
-h1, h2, h3 {
- color: #aeee00;
-}
-
-ul li {
- list-style: '* '; /* Remove default bullets */
-}
-
-ul li::marker {
- color: #ffa724;
- font-weight: bold;
-}
-
-
diff --git a/feeds b/feeds
index c1e43ed..3d3bd47 100644
--- a/feeds
+++ b/feeds
@@ -8,7 +8,6 @@ https://www.matuzo.at/feed.xml
https://adol.pw/index.xml
https://shivering-isles.com/feed.xml
https://blog.libreserver.org/rss.xml
-https://unixsheikh.com/feed.rss
https://nerdteacher.com/feed/
https://artemis.sh/feed.xml
https://labs.tomasino.org/index.xml
diff --git a/i18n/de.yaml b/i18n/de.yaml
index 2ec1532..9662577 100644
--- a/i18n/de.yaml
+++ b/i18n/de.yaml
@@ -1,17 +1,20 @@
-book-reviews:
- other: "Buchrezension"
-
-comics:
- other: "Comics"
-
-projects:
- other: "Projekten"
-
-til:
- other: "HLI"
-
-translations:
- other: "Diese Artikel ist verfügbar auf:"
-
-BookShare:
- other: "Ich habe die Büche deren Rezension ich schreibe. Wenn du dieses Buch lesen wöllte, schick mir eine E-Mail."
+aboutFediring: Über Fediring
+book-reviews: Buchrezension
+categories: Kategorien
+category: Kategorie
+comics: Bildergeschichte
+conlangs: Kunstsprachen
+feadAttribution: 'mit fead gemacht'
+next: Nächste
+otherSites: Andere Seiten
+prev: Vorherige
+projects: Projekten
+random: zufällig
+sections: Abschnitte dieser Seite
+skipToContent: Zum Hauptinhalt springen
+tag: Thema
+tags: Themen
+til: HLI
+TOC: Inhaltsverzeichnis
+translations: "Diese Artikel ist verfügbar auf:"
+BookShare: Ich habe die Büche deren Rezension ich schreibe. Wenn du dieses Buch lesen wöllte, schick mir eine E-Mail.
diff --git a/i18n/en.yaml b/i18n/en.yaml
index 2c89192..859d687 100644
--- a/i18n/en.yaml
+++ b/i18n/en.yaml
@@ -1,23 +1,20 @@
-book-reviews:
- other: "Book Reviews"
-
-comics:
- other: "Comics"
-
-conlangs:
- other: "Conlangs"
-
-projects:
- other: "Free Software projects directory"
-
-til:
- other: "TIL"
-
-translations:
- other: "Available translations"
-
-BookShare:
- other: "If I write a book review, that means I own a copy of that book. Send me an email if you want me to send you the copy."
-
-WikiContribute:
- other: "This post is a part of a wiki. That means, you can contribute to it by sending me an email to"
+aboutFediring: About Fediring
+book-reviews: Book Reviews
+category: category
+categories: categories
+comics: Comics
+conlangs: Conlangs
+feadAttribution: 'Generated by fead'
+next: next
+otherSites: Other sites
+prev: previous
+projects: Projects
+random: random
+sections: Site sections
+skipToContent: Skip to main content
+tag: tag
+tags: tags
+til: TIL
+TOC: Contents
+translations: Available translations
+BookShare: If I write a book review, that means I own a copy of that book. Send me an email if you want me to send you the copy.
diff --git a/i18n/fr.yaml b/i18n/fr.yaml
index a2cab7c..236fad2 100644
--- a/i18n/fr.yaml
+++ b/i18n/fr.yaml
@@ -1,17 +1,20 @@
-book-reviews:
- other: "Livres"
-
-comics:
- other: "Bédés"
-
-projects:
- other: "Projets"
-
-til:
- other: "AJA"
-
-translations:
- other: "Des traductions disponibles"
-
-BookShare:
- other: "Quand j'écris un critique d'un livre, ça signifie que j'en ai un copie. Si vous le voulez, envoyez-moi un couriel et je vais vous l'envoyer."
+aboutFediring: à propos de Fediring
+book-reviews: livres
+categories: catégories
+category: catégorie
+comics: BDs
+conlangs: langues construites
+feadAttribution: 'créée par fead'
+next: suivant
+otherSites: autre part
+prev: précédent
+projects: projets
+random: aléatoire
+sections: sections du site
+skipToContent: aller au contenu
+tag: mot clé
+tags: mot clés
+til: AJA
+TOC: Sommaire
+translations: Des traductions disponibles
+BookShare: Quand j'écris un critique d'un livre, ça signifie que j'en ai un copie. Si vous le voulez, envoyez-moi un couriel et je vais vous l'envoyer.
diff --git a/i18n/vi.yaml b/i18n/vi.yaml
index 782ef24..7c92a65 100644
--- a/i18n/vi.yaml
+++ b/i18n/vi.yaml
@@ -1,8 +1,20 @@
-book-reviews:
- other: "Review sách"
-
-translations:
- other: "Bài viết này được dịch thành:"
-
-BookShare:
- other: "Tôi viết review về một cuốn sách có nghĩa là tôi có cuốn sách đó. Nếu bạn muốn mượn tôi cuốn sách này, bạn có thể hỏi mượn tôi qua email."
+aboutFediring: Fediring là gì
+book-reviews: Review sách
+categories: phân loại
+category: phân loại
+comics: Truyện tranh
+conlangs: Ngôn ngữ nhân tạo
+feadAttribution: 'tạo bởi fead'
+next: sau
+otherSites: Các trang khác
+prev: trước
+projects: Dự án
+random: ngẫu nhiên
+sections: Các mục trong trang
+skipToContent: đi đến bài viết
+tag: từ khoá
+tags: từ khoá
+til: Hôm nay tôi biết được
+TOC: Mục lục
+translations: "Bài viết này được dịch sang:"
+BookShare: Tôi viết review về một cuốn sách có nghĩa là tôi có cuốn sách đó. Nếu bạn muốn mượn tôi cuốn sách này, bạn có thể hỏi mượn tôi qua email.
diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
new file mode 100644
index 0000000..73f5c26
--- /dev/null
+++ b/layouts/_default/_markup/render-heading.html
@@ -0,0 +1,7 @@
+{{ $id := .Anchor | safeURL }}
+
+
+
+ {{ .Text | safeHTML }}
+
+
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..f13b730
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,24 @@
+
+
+
+ {{ partial "head.html" . }}
+
+
+ {{ i18n "skipToContent" | humanize }}
+
+ {{ partial "header.html" . }}
+
+
- The project is currently dead. You can fork it if you find it helpful.
-
- {{ else }}
-
- The development of project is {{.Params.projectStatus}}.
- You can help this project by contributing code, finding new issues,
- suggesting new features, or donation.
-
- {{ end }}
-
- {{ partial "post-info.html" . }}
-
-
-{{ if and (.Site.Params.paginationSinglePost) (ne .Type "page") }}
- {{ partial "paginationPost.html" . }}
-{{ end }}
-
-
-{{ partial "custom-webring.html" }}
-
-{{ end }}
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..cb728d9
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,34 @@
+{{- $pctx := . -}}
+{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
+{{- $pages := where $pctx.RegularPages ".Params.disable_feed" "!=" true -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+{{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{- printf "" | safeHTML }}
+
+
+ {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}
+ {{ .Permalink }}
+ {{ .Site.Title }}{{ if ne .Title .Site.Title }}{{ with .Title }} ({{.}}){{ end }}{{ end }}
+ Hugo -- gohugo.io{{ with .Site.LanguageCode }}
+ {{.}}{{end}}{{ with .Site.Author.email }}
+ {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }}
+ {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }}
+ {{.}}{{end}}{{ if not .Date.IsZero }}
+ {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
+ {{ with .OutputFormats.Get "RSS" }}
+ {{ printf "" .Permalink .MediaType | safeHTML }}
+ {{ end }}
+ {{ range $pages }}
+
+ {{ .Title }}
+ {{ .Permalink }}
+ {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}
+ {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}
+ {{ .Permalink }}
+ {{ .Content | html }}
+
+ {{ end }}
+
+
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..c94d359
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,22 @@
+{{ define "main" }}
+
+ {{ .Content }}
+ {{ partial "post-info.html" . }}
+
+
+
+
+ Would you like to discuss this post?
+ Email me!
+{{ end }}
diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html
new file mode 100644
index 0000000..7b3adb9
--- /dev/null
+++ b/layouts/_default/taxonomy.html
@@ -0,0 +1,12 @@
+{{ define "main" }}
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/post-pagination.html b/layouts/partials/post-pagination.html
new file mode 100644
index 0000000..2130181
--- /dev/null
+++ b/layouts/partials/post-pagination.html
@@ -0,0 +1,16 @@
+{{ if or ( .PrevInSection ) ( .NextInSection ) }}
+