- Theme Decoupling & Cleanup:
- Fully decoupled and vendored the Blowfish theme directly into root directories (layouts/,
assets/, static/, data/, i18n/).
- De-registered and cleaned up legacy Git submodules (themes/blowfish, themes/hugo-admonitions)
from the Git index to protect the build from upstream breakages.
- Configured .gitignore to ignore development preview symlinks (content, static,
config/_default/menus.en.toml), build folders (public/, resources/), and locks.
- TOC & Layout Fixes:
- Replaced the custom layouts/_default/single.html template with the Blowfish default to restore
native container widths and the side-by-side flex layout.
- Restored TOC to float on the right sidebar on desktop viewports and render inline on mobile
viewports.
- Fixed a parameter resolution bug in layouts/partials/toc.html by checking both .Site.Params.
smartTOC and .Site.Params.article.smartTOC (where it is defined in params.toml).
- Upgraded the TOC scrollspy JavaScript to target all '#TableOfContents' containers on the page,
enabling highlight tracking on both desktop and mobile layouts.
- Documentation Updates (README.md):
- Restored YAML front matter metadata block at the top.
- Added detailed notes on the CI/CD build process and Gitea runner deployment targets
(/srv/www/docs-public and /srv/www/docs-private).
- Added a categorized and sorted "Shortcodes Quick Reference" table at the top of the shortcodes
section (ordered by Custom, Hugo Default, and Blowfish).
- Documented custom shortcodes (Include, Screenshot, Raw HTML) and missing Hugo default
shortcodes (Highlight, Instagram, Param, Ref, Relref, Twitter, Vimeo, Youtube).
- Restructured headings to ensure all sub-shortcodes are H3, removed block break tags (<br/>),
and appended horizontal separators (---) after H2 sections.
119 lines
4.1 KiB
HTML
119 lines
4.1 KiB
HTML
{{ define "main" }}
|
|
{{ .Scratch.Set "scope" "term" }}
|
|
{{ $showHero := .Params.showHero | default site.Params.term.showHero | default false }}
|
|
{{ if $showHero }}
|
|
{{ $heroStyle := print "hero/" site.Params.term.heroStyle ".html" }}
|
|
{{ if templates.Exists ( printf "partials/%s" $heroStyle ) }}
|
|
{{ partial $heroStyle . }}
|
|
{{ else }}
|
|
{{ partial "hero/basic.html" . }}
|
|
{{ end }}
|
|
{{- end -}}
|
|
|
|
|
|
<header class="mt-5">
|
|
{{ if .Params.showBreadcrumbs | default (site.Params.term.showBreadcrumbs | default false) }}
|
|
{{ partial "breadcrumbs.html" . }}
|
|
{{ end }}
|
|
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">{{ .Title }}</h1>
|
|
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
|
|
{{ partial "article-meta/term.html" (dict "context" . "scope" "single") }}
|
|
</div>
|
|
</header>
|
|
|
|
<section class="flex flex-col max-w-full mt-0 mb-5 prose dark:prose-invert lg:flex-row">
|
|
{{ if .Content }}
|
|
<div class="min-w-0 min-h-0 max-w-prose">
|
|
{{ .Content }}
|
|
</div>
|
|
{{ end }}
|
|
</section>
|
|
|
|
{{ if gt .Pages 0 }}
|
|
{{ $cardView := .Params.cardView | default (site.Params.term.cardView | default false) }}
|
|
{{ $cardViewScreenWidth := site.Params.term.cardViewScreenWidth | default false }}
|
|
{{ $groupByYear := .Params.groupByYear | default (site.Params.term.groupByYear | default false) }}
|
|
|
|
{{ if not $cardView }}
|
|
|
|
<section class="space-y-10 w-full">
|
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
|
{{ if $groupByYear }}
|
|
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
|
{{ .Key }}
|
|
</h2>
|
|
{{ end }}
|
|
{{ range .Pages }}
|
|
{{ partial "article-link/simple.html" . }}
|
|
{{ end }}
|
|
{{ end }}
|
|
</section>
|
|
{{ else if and $cardView (not $cardViewScreenWidth) }}
|
|
|
|
{{ if $groupByYear }}
|
|
|
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
|
<h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
|
{{ .Key }}
|
|
</h2>
|
|
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
|
|
{{ range .Pages }}
|
|
{{ partial "article-link/card.html" . }}
|
|
{{ end }}
|
|
</section>
|
|
{{ end }}
|
|
|
|
{{ else }}
|
|
|
|
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3">
|
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
|
{{ range .Pages }}
|
|
{{ partial "article-link/card.html" . }}
|
|
{{ end }}
|
|
{{ end }}
|
|
</section>
|
|
{{ end }}
|
|
|
|
{{ else if and $cardView $cardViewScreenWidth }}
|
|
|
|
{{ if $groupByYear }}
|
|
|
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
|
<div class="relative w-screen max-w-[1600px] px-[30px] start-[calc(max(-50vw,-800px)+50%)]">
|
|
<h2 class="mt-12 mb-3 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
|
{{ .Key }}
|
|
</h2>
|
|
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5">
|
|
{{ range .Pages }}
|
|
{{ partial "article-link/card.html" . }}
|
|
{{ end }}
|
|
</section>
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ else }}
|
|
|
|
<div class="relative w-screen max-w-[1600px] px-[30px] start-[calc(max(-50vw,-800px)+50%)]">
|
|
<section class="w-full grid gap-4 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5">
|
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
|
{{ range .Pages }}
|
|
{{ partial "article-link/card.html" . }}
|
|
{{ end }}
|
|
{{ end }}
|
|
</section>
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ end }}
|
|
|
|
{{ else }}
|
|
<section class="mt-10 prose dark:prose-invert">
|
|
<p class="py-8 border-t">
|
|
<em>{{ i18n "term.no_articles" | emojify }}</em>
|
|
</p>
|
|
</section>
|
|
{{ end }}
|
|
|
|
{{ partial "pagination.html" . }}
|
|
{{ end }}
|