- 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.
180 lines
7.2 KiB
JavaScript
180 lines
7.2 KiB
JavaScript
module.exports = {
|
|
darkMode: "class",
|
|
theme: {
|
|
screens: {
|
|
sm: "640px",
|
|
md: "853px",
|
|
lg: "1024px",
|
|
xl: "1280px",
|
|
"2xl": "1536px",
|
|
},
|
|
colors: {
|
|
...require('tailwindcss/colors'),
|
|
transparent: "transparent",
|
|
neutral: {
|
|
DEFAULT: "rgba(var(--color-neutral), <alpha-value>)",
|
|
50: "rgba(var(--color-neutral-50), <alpha-value>)",
|
|
100: "rgba(var(--color-neutral-100), <alpha-value>)",
|
|
200: "rgba(var(--color-neutral-200), <alpha-value>)",
|
|
300: "rgba(var(--color-neutral-300), <alpha-value>)",
|
|
400: "rgba(var(--color-neutral-400), <alpha-value>)",
|
|
500: "rgba(var(--color-neutral-500), <alpha-value>)",
|
|
600: "rgba(var(--color-neutral-600), <alpha-value>)",
|
|
700: "rgba(var(--color-neutral-700), <alpha-value>)",
|
|
800: "rgba(var(--color-neutral-800), <alpha-value>)",
|
|
900: "rgba(var(--color-neutral-900), <alpha-value>)",
|
|
},
|
|
primary: {
|
|
50: "rgba(var(--color-primary-50), <alpha-value>)",
|
|
100: "rgba(var(--color-primary-100), <alpha-value>)",
|
|
200: "rgba(var(--color-primary-200), <alpha-value>)",
|
|
300: "rgba(var(--color-primary-300), <alpha-value>)",
|
|
400: "rgba(var(--color-primary-400), <alpha-value>)",
|
|
500: "rgba(var(--color-primary-500), <alpha-value>)",
|
|
600: "rgba(var(--color-primary-600), <alpha-value>)",
|
|
700: "rgba(var(--color-primary-700), <alpha-value>)",
|
|
800: "rgba(var(--color-primary-800), <alpha-value>)",
|
|
900: "rgba(var(--color-primary-900), <alpha-value>)",
|
|
},
|
|
secondary: {
|
|
50: "rgba(var(--color-secondary-50), <alpha-value>)",
|
|
100: "rgba(var(--color-secondary-100), <alpha-value>)",
|
|
200: "rgba(var(--color-secondary-200), <alpha-value>)",
|
|
300: "rgba(var(--color-secondary-300), <alpha-value>)",
|
|
400: "rgba(var(--color-secondary-400), <alpha-value>)",
|
|
500: "rgba(var(--color-secondary-500), <alpha-value>)",
|
|
600: "rgba(var(--color-secondary-600), <alpha-value>)",
|
|
700: "rgba(var(--color-secondary-700), <alpha-value>)",
|
|
800: "rgba(var(--color-secondary-800), <alpha-value>)",
|
|
900: "rgba(var(--color-secondary-900), <alpha-value>)",
|
|
},
|
|
},
|
|
extend: {
|
|
typography: ({ theme }) => ({
|
|
DEFAULT: {
|
|
css: {
|
|
"--tw-prose-body": theme("colors.neutral.700 / 1"),
|
|
"--tw-prose-headings": theme("colors.neutral.800 / 1"),
|
|
"--tw-prose-lead": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-links": theme("colors.primary.600 / 1"),
|
|
"--tw-prose-bold": "inherit",
|
|
"--tw-prose-counters": theme("colors.neutral.800 / 1"),
|
|
"--tw-prose-bullets": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-quotes": theme("colors.neutral.700 / 1"),
|
|
"--tw-prose-quote-borders": theme("colors.primary.500 / 1"),
|
|
"--tw-prose-captions": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-code": theme("colors.secondary.700 / 1"),
|
|
"--tw-prose-pre-code": theme("colors.neutral.700 / 1"),
|
|
"--tw-prose-pre-bg": theme("colors.neutral.50 / 1"),
|
|
"--tw-prose-th-borders": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-td-borders": theme("colors.neutral.300 / 1"),
|
|
"--tw-prose-invert-body": theme("colors.neutral.300 / 1"),
|
|
"--tw-prose-invert-headings": theme("colors.neutral.50 / 1"),
|
|
"--tw-prose-invert-lead": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-invert-links": theme("colors.primary.400 / 1"),
|
|
"--tw-prose-invert-bold": theme("colors.neutral.DEFAULT / 1"),
|
|
"--tw-prose-invert-counters": theme("colors.neutral.400 / 1"),
|
|
"--tw-prose-invert-bullets": theme("colors.neutral.600 / 1"),
|
|
"--tw-prose-invert-quotes": theme("colors.neutral.200 / 1"),
|
|
"--tw-prose-invert-quote-borders": theme("colors.primary.600 / 1"),
|
|
"--tw-prose-invert-captions": theme("colors.neutral.400 / 1"),
|
|
"--tw-prose-invert-code": theme("colors.secondary.400 / 1"),
|
|
"--tw-prose-invert-pre-code": theme("colors.neutral.200 / 1"),
|
|
"--tw-prose-invert-pre-bg": theme("colors.neutral.700 / 1"),
|
|
"--tw-prose-invert-th-borders": theme("colors.neutral.500 / 1"),
|
|
"--tw-prose-invert-td-borders": theme("colors.neutral.700 / 1"),
|
|
a: {
|
|
textDecoration: "none",
|
|
textDecorationColor: theme("colors.primary.300 / 1"),
|
|
fontWeight: "500",
|
|
"&:hover": {
|
|
color: theme("colors.primary.600 / 1"),
|
|
textDecoration: "none",
|
|
borderRadius: "0.09rem",
|
|
},
|
|
},
|
|
"a code": {
|
|
color: "var(--tw-prose-code)",
|
|
},
|
|
hr: {
|
|
border: '0.8px solid theme("colors.neutral.300 / 1")',
|
|
},
|
|
kbd: {
|
|
backgroundColor: theme("colors.neutral.200 / 1"),
|
|
padding: "0.1rem 0.4rem",
|
|
borderRadius: "0.25rem",
|
|
fontSize: "0.9rem",
|
|
fontWeight: "600",
|
|
},
|
|
mark: {
|
|
color: theme("colors.neutral.800 / 1"),
|
|
backgroundColor: theme("colors.primary.600 / 1"),
|
|
padding: "0.1rem 0.2rem",
|
|
borderRadius: "0.25rem",
|
|
},
|
|
code: {
|
|
paddingTop: "3px",
|
|
paddingBottom: "3px",
|
|
paddingLeft: "5px",
|
|
paddingRight: "5px",
|
|
borderRadius: "0.25rem",
|
|
},
|
|
"code::before": {
|
|
display: "none",
|
|
},
|
|
"code::after": {
|
|
display: "none",
|
|
},
|
|
"p::before": {
|
|
display: "none",
|
|
},
|
|
"p::after": {
|
|
display: "none",
|
|
},
|
|
"a.active": {
|
|
"text-decoration-color": theme("colors.primary.600 / 1"),
|
|
},
|
|
"p.active": {
|
|
"text-decoration-color": theme("colors.primary.600 / 1"),
|
|
},
|
|
},
|
|
},
|
|
invert: {
|
|
css: {
|
|
a: {
|
|
textDecorationColor: theme("colors.neutral.600 / 1"),
|
|
"&:hover": {
|
|
color: theme("colors.primary.400 / 1"),
|
|
},
|
|
},
|
|
kbd: {
|
|
color: theme("colors.neutral.200 / 1"),
|
|
backgroundColor: theme("colors.neutral.700 / 1"),
|
|
},
|
|
mark: {
|
|
backgroundColor: theme("colors.primary.400 / 1"),
|
|
},
|
|
"code:not(pre code)": {
|
|
backgroundColor: theme("colors.zinc.900 / 0.7"),
|
|
},
|
|
"a.active": {
|
|
"text-decoration-color": theme("colors.primary.400 / 1"),
|
|
},
|
|
"p.active": {
|
|
"text-decoration-color": theme("colors.primary.400 / 1"),
|
|
},
|
|
hr: {
|
|
border: '0.8px solid theme("colors.neutral.500 / 1")',
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
plugins: [
|
|
require("@tailwindcss/typography"),
|
|
require("@tailwindcss/forms"),
|
|
require("tailwind-scrollbar")({ preferredStrategy: "pseudoelements" }),
|
|
],
|
|
};
|