migrate to decoupled Blowfish layout, fix TOC scrollspy, and update docs
- 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.
This commit is contained in:
18
assets/img/traffic.svg
Normal file
18
assets/img/traffic.svg
Normal file
@@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
|
||||
<defs>
|
||||
<pattern id="pid-0.32277503320149736" x="0" y="0" width="322.56" height="322.56" patternUnits="userSpaceOnUse">
|
||||
<g transform="scale(1.26)"><g> <line x1="12.8" y1="-268.8" x2="12.8" y2="-217.6" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-12.8" x2="12.8" y2="38.400000000000006" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="243.2" x2="12.8" y2="294.4" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-192" x2="12.8" y2="-140.8" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="64" x2="12.8" y2="115.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="320" x2="12.8" y2="371.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-115.19999999999999" x2="12.8" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="140.8" x2="12.8" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="396.8" x2="12.8" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-38.39999999999998" x2="12.8" y2="38.400000000000034" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="217.60000000000002" x2="12.8" y2="294.40000000000003" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="473.6" x2="12.8" y2="550.4000000000001" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
|
||||
</g> <g> <line x1="38.400000000000006" y1="-243.2" x2="38.400000000000006" y2="-192" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="12.8" x2="38.400000000000006" y2="64" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="268.8" x2="38.400000000000006" y2="320" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-166.39999999999998" x2="38.400000000000006" y2="-115.19999999999999" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="89.60000000000001" x2="38.400000000000006" y2="140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="345.6" x2="38.400000000000006" y2="396.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-89.59999999999997" x2="38.400000000000006" y2="-12.799999999999955" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="166.40000000000003" x2="38.400000000000006" y2="243.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="422.40000000000003" x2="38.400000000000006" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g> <g> <line x1="64" y1="-243.2" x2="64" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="12.8" x2="64" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="268.8" x2="64" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-166.39999999999998" x2="64" y2="-115.19999999999999" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="89.60000000000001" x2="64" y2="140.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="345.6" x2="64" y2="396.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-89.59999999999997" x2="64" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="166.40000000000003" x2="64" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="422.40000000000003" x2="64" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g> <g> <line x1="89.60000000000001" y1="-243.2" x2="89.60000000000001" y2="-166.39999999999998" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="12.8" x2="89.60000000000001" y2="89.60000000000001" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="268.8" x2="89.60000000000001" y2="345.6" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-140.8" x2="89.60000000000001" y2="-89.6" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="115.2" x2="89.60000000000001" y2="166.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="371.2" x2="89.60000000000001" y2="422.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-63.99999999999997" x2="89.60000000000001" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="192.00000000000003" x2="89.60000000000001" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="448" x2="89.60000000000001" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g> <g> <line x1="115.2" y1="-243.2" x2="115.2" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="12.8" x2="115.2" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="268.8" x2="115.2" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-192" x2="115.2" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="64" x2="115.2" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="320" x2="115.2" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-115.19999999999999" x2="115.2" y2="-64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="140.8" x2="115.2" y2="192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="396.8" x2="115.2" y2="448" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-38.39999999999998" x2="115.2" y2="-12.799999999999983" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="217.60000000000002" x2="115.2" y2="243.20000000000002" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="473.6" x2="115.2" y2="499.20000000000005" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
|
||||
</g> <g> <line x1="140.8" y1="-243.2" x2="140.8" y2="-166.39999999999998" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="12.8" x2="140.8" y2="89.60000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="268.8" x2="140.8" y2="345.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-140.8" x2="140.8" y2="-115.19999999999999" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="115.2" x2="140.8" y2="140.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="371.2" x2="140.8" y2="396.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-89.59999999999997" x2="140.8" y2="-63.99999999999997" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="166.40000000000003" x2="140.8" y2="192.00000000000003" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="422.40000000000003" x2="140.8" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-38.39999999999998" x2="140.8" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="217.60000000000002" x2="140.8" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="473.6" x2="140.8" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
|
||||
</g> <g> <line x1="166.40000000000003" y1="-268.8" x2="166.40000000000003" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-12.8" x2="166.40000000000003" y2="64.00000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="243.2" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-166.39999999999998" x2="166.40000000000003" y2="-89.59999999999997" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="89.60000000000001" x2="166.40000000000003" y2="166.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="345.6" x2="166.40000000000003" y2="422.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-63.99999999999997" x2="166.40000000000003" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="192.00000000000003" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="448" x2="166.40000000000003" y2="576" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g> <g> <line x1="192.00000000000003" y1="-243.2" x2="192.00000000000003" y2="-166.39999999999998" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="12.8" x2="192.00000000000003" y2="89.60000000000001" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="268.8" x2="192.00000000000003" y2="345.6" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-140.8" x2="192.00000000000003" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="115.2" x2="192.00000000000003" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="371.2" x2="192.00000000000003" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-38.39999999999998" x2="192.00000000000003" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="217.60000000000002" x2="192.00000000000003" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="473.6" x2="192.00000000000003" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g> <g> <line x1="217.60000000000002" y1="-243.2" x2="217.60000000000002" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="12.8" x2="217.60000000000002" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="268.8" x2="217.60000000000002" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-192" x2="217.60000000000002" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="64" x2="217.60000000000002" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="320" x2="217.60000000000002" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-115.19999999999999" x2="217.60000000000002" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="140.8" x2="217.60000000000002" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="396.8" x2="217.60000000000002" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-38.39999999999998" x2="217.60000000000002" y2="-12.799999999999983" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="217.60000000000002" x2="217.60000000000002" y2="243.20000000000002" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="473.6" x2="217.60000000000002" y2="499.20000000000005" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
|
||||
</g> <g> <line x1="243.20000000000002" y1="-243.2" x2="243.20000000000002" y2="-166.39999999999998" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="12.8" x2="243.20000000000002" y2="89.60000000000001" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="268.8" x2="243.20000000000002" y2="345.6" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-140.8" x2="243.20000000000002" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="115.2" x2="243.20000000000002" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="371.2" x2="243.20000000000002" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-38.39999999999998" x2="243.20000000000002" y2="-12.799999999999983" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="217.60000000000002" x2="243.20000000000002" y2="243.20000000000002" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="473.6" x2="243.20000000000002" y2="499.20000000000005" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
|
||||
</g></g>
|
||||
</pattern>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.32277503320149736)"></rect>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user