- 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.
1. Restored resume.md: Left exactly as it was.
2. Configured hugo.toml Mounts: I mounted /srv/configs into the virtual assets namespace. This
securely gives Hugo access to those files as raw static resources.
3. Updated include Partial: I rewrote the shortcode partial (layouts/partials/include.html) to:
* Intercept absolute paths starting with /srv/configs/, map them to configs/..., and retrieve
their raw text content using resources.Get.
* Intercept paths starting with /srv/docs/private/, look them up as a Page, and use .RawContent
instead of .Content (which prevents Hugo from wrapping your Markdown in HTML <p> tags when
injecting it into your code blocks).
* Strip any YAML frontmatter from the raw content using a regex replaceRE block.
partial
1. Mounted Configuration Directory: Added /srv/configs as a mount point in
/srv/dev/hugo/wiki/config/_default/hugo.toml. This allows Hugo's readFile and fileExists functions to
access your Docker Compose and other configuration files within the virtual filesystem.
2. Improved include Partial: Rewrote /srv/dev/hugo/wiki/layouts/partials/include.html with the following
enhancements:
* Path Mapping: It now automatically maps absolute paths like /srv/configs/... to the new configs/ mount
and /srv/docs/private/... to the existing content/private/ mount.
* Raw Content Support: If the included file is not a Markdown file (e.g., .yaml, .env, .sh), it now
outputs the raw content instead of attempting to render it as Markdown. This ensures that your Docker
Compose files are included exactly as they are when wrapped in a code block.
* Robust Lookups: Added better path variation checking to handle both absolute and relative paths more
gracefully.
root.
Changes Made:
1. Improved include.html Partial:
* Page Support: Now uses .Site.GetPage first, allowing files to be included via Hugo's virtual filesystem (mounts).
* Frontmatter Stripping: Added a regex-based stripper to ensure that if a raw file is read via readFile, its YAML/TOML frontmatter isn't rendered as text/horizontal rules.
* Shortcode Processing: Confirmed that RenderString correctly processes shortcodes within included content.
2. Updated Hugo Configuration:
* Added [[module.mounts]] to /srv/dev/hugo/wiki/config/_default/hugo.toml to expose your private documentation directory (/srv/docs/private) to Hugo as content/private.