feat: switch to PaperMod theme, add Rybbit analytics, CI/CD deploy

- Replace ananke with PaperMod theme (git submodule)
- Configure PaperMod: reading time, breadcrumbs, search, dark mode
- Localize menus for EN/DE
- Register internetforkids.ong in Rybbit (site ID: a0ab05916d6c)
- Migrate partials from ananke _partials/ to PaperMod extend_head/footer
- Set up webhook-based auto-deploy on push to main

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Christian Gick
2026-04-02 14:12:57 +03:00
parent bdd2da36d5
commit 57bad97639
6 changed files with 56 additions and 22 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "themes/PaperMod"]
path = themes/PaperMod
url = https://github.com/adityatelange/hugo-PaperMod.git

View File

@@ -1,6 +1,6 @@
baseURL = "https://internetforkids.ong/"
title = "Internet for Kids"
theme = "ananke"
theme = "PaperMod"
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true
@@ -26,12 +26,24 @@ enableRobotsTXT = true
description = "Expert insights on child protection laws, online safety, and digital family protection worldwide."
favicon = "/favicon.ico"
author = "Agiliton"
read_more_copy = "Read more"
show_reading_time = true
ShowReadingTime = true
ShowShareButtons = true
ShowPostNavLinks = true
ShowBreadCrumbs = true
ShowCodeCopyButtons = true
defaultTheme = "auto"
# Rybbit Analytics
rybbit_site_id = "" # TBD: set after registering in Rybbit
rybbit_site_id = "a0ab05916d6c"
rybbit_url = "https://analytics.clicksports.de"
[params.homeInfoParams]
Title = "Protecting Kids Online"
Content = "Expert insights on child protection laws, online safety, and digital family protection worldwide."
[[params.socialIcons]]
name = "rss"
url = "/index.xml"
[languages]
[languages.en]
languageName = "English"
@@ -40,6 +52,24 @@ enableRobotsTXT = true
contentDir = "content/en"
[languages.en.params]
description = "Expert insights on child protection laws, online safety, and digital family protection worldwide."
[languages.en.params.homeInfoParams]
Title = "Protecting Kids Online"
Content = "Expert insights on child protection laws, online safety, and digital family protection worldwide."
[[languages.en.menus.main]]
identifier = "about"
name = "About"
url = "/about/"
weight = 2
[[languages.en.menus.main]]
identifier = "tags"
name = "Topics"
url = "/tags/"
weight = 3
[[languages.en.menus.main]]
identifier = "search"
name = "Search"
url = "/search/"
weight = 4
[languages.de]
languageName = "Deutsch"
@@ -48,18 +78,24 @@ enableRobotsTXT = true
contentDir = "content/de"
[languages.de.params]
description = "Experteneinblicke zu Kinderschutzgesetzen, Online-Sicherheit und digitalem Familienschutz weltweit."
[menus]
[[menus.main]]
identifier = "about"
name = "About"
url = "/about/"
weight = 2
[[menus.main]]
identifier = "tags"
name = "Topics"
url = "/tags/"
weight = 3
[languages.de.params.homeInfoParams]
Title = "Kinder online schützen"
Content = "Experteneinblicke zu Kinderschutzgesetzen, Online-Sicherheit und digitalem Familienschutz weltweit."
[[languages.de.menus.main]]
identifier = "about"
name = "Über uns"
url = "/about/"
weight = 2
[[languages.de.menus.main]]
identifier = "tags"
name = "Themen"
url = "/tags/"
weight = 3
[[languages.de.menus.main]]
identifier = "search"
name = "Suche"
url = "/search/"
weight = 4
[taxonomies]
tag = "tags"

View File

@@ -13,13 +13,9 @@
<link rel="canonical" href="{{ .Permalink }}" />
{{/* AI Search Engine Optimization */}}
{{/* Allow all AI crawlers — maximize discoverability */}}
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large" />
{{/* Explicit AI crawler permissions */}}
<meta name="googlebot" content="index, follow" />
{{/* Clear, machine-parseable description for AI summarization */}}
{{ if .IsPage }}
<meta name="topic" content="{{ .Title }}" />
<meta name="subject" content="{{ .Description | default .Summary | plainify | truncate 160 }}" />

Submodule themes/ananke deleted from a5f3dd61ce