- 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.
57 lines
2.2 KiB
CSS
57 lines
2.2 KiB
CSS
/* --- 1. Global Prose Rules --- */
|
|
.article-content.prose {
|
|
width: 100%;
|
|
max-width: 85ch;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
|
|
|
|
/* --- 2. Absolute Isolation Layout --- */
|
|
.single-post-wrapper {
|
|
display: flex;
|
|
flex-direction: column; /* On mobile, they stack normally */
|
|
width: 100%;
|
|
}
|
|
|
|
/* --- 4. Projects Page (Isolated) --- */
|
|
.projects-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
/* --- Base Styles --- */
|
|
#resume-table p { padding: .5em }
|
|
.iframe-wrapper { position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; }
|
|
.iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
#resume-table { border-collapse: collapse }
|
|
#resume-table .statements td { font-style: italic; padding: 1em; text-align: center }
|
|
#resume-table .header { padding-top: 1em; padding-left: 1em; font-weight: 700; text-transform: uppercase; text-align: left }
|
|
.google-blue { color: #4285f4; font-weight: bolder; }
|
|
.google-red { color: #ea4335; font-weight: bolder; }
|
|
.google-yellow { color: #fbbc04; font-weight: bolder; }
|
|
.google-green { color: #34a853; font-weight: bolder; }
|
|
.header-google-blue { border-bottom: 4px solid #4285f4 }
|
|
.header-google-red { border-bottom: 4px solid #ea4335 }
|
|
.header-google-yellow { border-bottom: 4px solid #fbbc04 }
|
|
.header-google-green { border-bottom: 4px solid #34a853 }
|
|
#resume-table td, #resume-table tr { border-width: 0 }
|
|
#resume-table ul { margin-top: 0; margin-bottom: 0 }
|
|
#resume-table .section-header td { padding-top: .66em; font-weight: 700 }
|
|
#resume-table .role { padding: .66em; text-align: left }
|
|
#resume-table .dates { text-align: right; padding-right: 1em }
|
|
#resume-table .quote { text-align: center }
|
|
#resume-table .twitter-blue { color: #1da1f2; font-weight: bolder }
|
|
.center { text-align: center; padding: .5em }
|
|
img[src$='#center']{ display: block; margin: 0.7rem auto; }
|
|
img[src$='#floatleft']{ float:left; margin: 0.7rem; }
|
|
img[src$='#floatright']{ float:right; margin: 0.7rem; }
|
|
.homepage .content { text-align: left; }
|
|
|
|
|
|
/* Hide any TOC link that points to an element with the 'no-toc' class */
|
|
.toc-right a.no-toc-link,
|
|
.toc-inside a.no-toc-link {
|
|
display: none !important;
|
|
} |