chore: migrate to tsuki theme

- Replace hugo-theme-stack submodule with tsuki
- config/_default/hugo.yml: theme: tsuki
- config/_default/permalinks.yml: keep /p/:slug/ for posts to preserve
  existing URLs (matches Stack default)
- config/_default/markup.yml: add parser.autoHeadingIDType: github-ascii
  for ASCII heading slugs
- config/_default/params.yml: add tsuki-required keys (search.enable,
  home.recentPostsCount); restructure comments.giscus to tsuki schema
  (repoId/categoryId lowercase, theme, lang, etc.). Stack-only params
  kept for now in case of rollback (silently ignored by tsuki).
- Move content/page/archives -> content/archives (tsuki uses kind=section)
- Move content/page/search -> content/search (drop json output;
  Pagefind index built in CI replaces Fuse.js search)
- Add data/profile.yaml driving the homepage hero
- Copy assets/img/avatar.png -> static/img/ for tsuki's relURL resolution

Verified: 717 pages build clean, 280 aliases preserve old URLs.
Posts at /p/<slug>/, comments + TOC + archives + search all render.
This commit is contained in:
2026-05-07 22:35:40 +07:00
parent c011f972a6
commit aee074195d
13 changed files with 63 additions and 32 deletions
+3 -3
View File
@@ -1,3 +1,3 @@
[submodule "themes/hugo-theme-stack"]
path = themes/hugo-theme-stack
url = https://github.com/CaiJimmy/hugo-theme-stack/
[submodule "themes/tsuki"]
path = themes/tsuki
url = https://github.com/tiennm99/tsuki.git
+1 -1
View File
@@ -1,6 +1,6 @@
baseurl: https://miti99.com/
languageCode: vi
theme: hugo-theme-stack
theme: tsuki
title: miti99
defaultContentLanguage: vi
hasCJKLanguage: false
+2
View File
@@ -13,6 +13,8 @@ goldmark:
- \)
renderer:
unsafe: true
parser:
autoHeadingIDType: github-ascii
tableOfContents:
endLevel: 4
+23 -3
View File
@@ -4,6 +4,18 @@ featuredImageField: image
rssFullContent: true
favicon: /favicon.png
# tsuki theme options
search:
enable: true
home:
recentPostsCount: 5
# Stack params below are ignored by tsuki but kept for now in case of rollback.
# To clean up: remove sidebar, widgets, article.toc/readingTime/license,
# comments.{disqusjs,utterances,beaudar,remark42,vssue,waline,twikoo,cactus,gitalk,cusdis},
# imageProcessing, colorScheme, defaultImage, opengraph.twitter
footer:
since: 2020
customText: "Made by miti99 with ❤️"
@@ -88,14 +100,22 @@ comments:
siteName: ""
giscus:
enable: true
repo: tiennm99/miti99
repoID: R_kgDOILzXrw
repoId: R_kgDOILzXrw
category: Announcements
categoryID: DIC_kwDOILzXr84CeYAw
categoryId: DIC_kwDOILzXr84CeYAw
mapping: pathname
strict: "0"
reactionsEnabled: "1"
inputPosition: bottom
theme: preferred_color_scheme
lang: vi
# Legacy Stack keys kept for reference; ignored by tsuki:
repoID: R_kgDOILzXrw
categoryID: DIC_kwDOILzXr84CeYAw
lightTheme: light
darkTheme: dark
reactionsEnabled: 1
emitMetadata: 0
gitalk:
+1 -1
View File
@@ -1,2 +1,2 @@
# post: /p/:slug/
post: /p/:slug/
page: /:slug/
+9
View File
@@ -0,0 +1,9 @@
---
title: "Archives"
description: "Toàn bộ bài viết theo năm và tháng."
menu:
main:
weight: -70
params:
icon: archives
---
-10
View File
@@ -1,10 +0,0 @@
---
title: Archives
layout: archives
slug: archives
menu:
main:
weight: -70
params:
icon: archives
---
-13
View File
@@ -1,13 +0,0 @@
---
title: "Search"
slug: "search"
layout: "search"
outputs:
- html
- json
menu:
main:
weight: -60
params:
icon: search
---
+9
View File
@@ -0,0 +1,9 @@
---
title: "Search"
description: "Tìm kiếm bài viết trên miti99."
menu:
main:
weight: -60
params:
icon: search
---
+14
View File
@@ -0,0 +1,14 @@
name: "miti99"
handle: "tiennm99"
tagline: "A developer wants to be magician."
avatar: "img/avatar.png"
bio: |
Vietnamese developer. Writing about code, work, and the small things in between.
links:
- icon: github
label: GitHub
url: https://github.com/tiennm99
- icon: rss
label: RSS
url: /index.xml
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

Submodule
+1
Submodule themes/tsuki added at d88f18d33f