Cell 658f03d1e5 refactor(params)!: flatten [params.page] to [params], snake_case keys, more page-level params support (#805)
* refactor(params)!: snake_case config + eliminate params.page + use .Param

BREAKING CHANGE: All params keys renamed from camelCase to snake_case,
[params.page] section eliminated (moved to [params] level), and users
must update their hugo.toml and front matter accordingly.

Key changes:
- All camelCase config keys → snake_case (e.g., defaultTheme → default_theme)
- [params.page] flat keys and sub-sections moved to [params] level
- Removed function/params.html (manual merge), replaced with Hugo .Param
- New function/param.html partial for page-level section params with
  shorthand boolean support and site defaults merging
- New function/camel-case.html for string conversion
- snake2camel.html renamed to camel-case-keys.html
- New function/get-cover.html for cover image resolution
- Deprecation warnings in detection-deprecated.html for old config keys
- Front matter only params (subtitle, featured_image, password, repost,
  weight, message) use .Params.xxx instead of .Param
- Page-level sections use param.html partial
- Simplified patch.html (siteTime only) and init/index.html

Refs: camel-case-keys.html#29 (planned v1.0 breaking change)

* refactor(params)!: move params.link to page-level, simplify link guard

- Move [params.link] and [params.link.guard] to page-level section
- link.html: .Page optional, use param.html when available for
  page-level override, fall back to site config without .Page
- Remove $guardConfig variable, use $config.guard directly
- Remove unnecessary .Page from callers that don't need page override
- friends.html: use param.html for link guard instead of link_guard

* refactor(params)!: move image/codeblock/json_viewer/filetree to page-level

- Move [params.image], [params.codeblock], [params.json_viewer],
  [params.filetree] to page-level sub-sections
- Templates use param.html for merged config (page override + site defaults)
- image.html: .Page optional, falls back to site config without .Page
- Add v1- prefix to all deprecation warnidf IDs
- Fix camelCase key access in image.html (blackList, cacheRemote)
- Fix Hugo-lowered camelCase keys in code-block-wrapper.html
- Add deprecation warnings for codeblock camelCase Markdown attributes
- Add deprecation warnings for file-tree camelCase Markdown attributes
- Update render-codeblock-toggle.html for snake_case attribute names

* style: standardize @param comment style across all HTML templates

- PascalCase types: {string} → {String}, {boolean} → {Boolean},
  {int} → {Int}, {map} → {Map}, {array} → {Array}
- Add missing ` - ` separator between param name and description
- Remove extra alignment spaces between type and param name

* refactor(params)!: move params.mermaid to page-level, extract gen/ templates

- Move [params.mermaid] to page-level sub-sections
- Mermaid config injected into window.config (per-page override support)
- mermaid.ts reads config from window.config.mermaid instead of parameter
- Create _partials/gen/ directory for JS content generators
- Move mermaid-bootstrap.html from plugin/ to gen/
- Extract window.config JS generation into gen/config.html
- mermaid.html uses param.html for wrapper config

* refactor(params)!: consolidate link_to_* into params.post_link section

- Move link_to_markdown/source/edit/report/vscode into [params.post_link]
- Rename keys: markdown, source, edit, report (bool), editor (string)
- editor defaults to "vscode", supports "trae" etc. via protocol template
- footer.html uses .Param "post_link" for all link toggles
- Remove link_to_* from deprecated keys list

* fix: add fallback for deprecated camelCase attributes and expand deprecation warnings

- render-codeblock-file-tree.html: folderSlash attribute fallback
- render-codeblock-toggle.html: lineNosToggler/lineWrapToggler fallback + warnings
- code-block-wrapper.html: maxShownLines/wrapperClass fallback
- detection-deprecated.html: add nested key warnings for 13 sections
  (header, breadcrumb, navigation, watermark, busuanzi, image, mermaid,
  codeblock, filetree, math.katex, math.mathjax.options, post_summary, footer)
- detection-deprecated.html: add link_guard front matter deprecation warning

* fix(mermaid): fix rendering in hidden tab panels and neutral layer scheduling

- isRenderContextActive: check tab-panel visibility via getBoundingClientRect
  instead of panel.hidden (tab-container uses slot-based hiding, not hidden attr)
- bindTabContainerChanged: render neutral layers when switching tabs so
  print/fallback scenarios work correctly
2026-07-01 22:27:08 +08:00
2026-05-28 15:21:04 +08:00
2026-01-04 15:19:09 +08:00
2025-09-06 14:42:46 +08:00

Hugo Theme FixIt

FixIt is a clean, elegant but advanced blog theme for Hugo.
Don't forget to leave a if you like this theme, thanks!

English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語

FixIt logo

FixIt

It is based on the original LoveIt Theme, KeepIt Theme and LeaveIt Theme.

Build GitHub release (latest by date) Hugo License GitHub stars Gitee star of FixIt

Warning

Version v0.x only accepts bug fixes. For new feature submissions, please develop on the v1 branch.

Version 1.0 is planned for release in the first half of 2027. Welcome to join the development and discussion! See v1 Milestone for details.

Live Preview

💟 Docs | ❇️ Test | 🚼 Demo | 🆕 Starter

More FixIt examples here.

Usage

Documentation

Head to the Quick Start page for a step-by-step guide on how to create a new website with FixIt.

Outline: InstallationGetting StartedContent ManagementAdvanced Usage

Starter Wizard

We provided a CLI tool to help you create a new project with FixIt by a single command.

pnpx fixit-cli create my-blog

asciicast

Templates

Click the following links to generate a new repository with template:

Template repository Generate link
A quick-start template base on Hugo Modules. hugo-fixit-starter Click
A quick-start template base on Git submodule. hugo-fixit-starter1 Click
Build multilingual sites using Fixit theme. docs Click
Customize with FixIt theme. Lruihao/hugo-blog Click

Features

Click to view.

Performance and SEO

Appearance and Layout

  • Responsive layout
  • Light/Dark mode
  • Globally consistent design language
  • Pagination supported
  • Easy-to-use and self-expanding table of contents
  • Multilanguage supported and i18n ready
  • Beautiful CSS animation

Social and Comment Systems

  • Gravatar supported by Gravatar
  • Local Avatar supported
  • Up to 87 social links supported
  • Up to 28 share sites supported
  • Disqus comment system supported by Disqus
  • Gitalk comment system supported by Gitalk
  • Valine comment system supported by Valine
  • Waline comment system supported by Waline
  • Facebook comments system supported by Facebook
  • Telegram comments system supported by Telegram Comments
  • Commento comment system supported by Commento
  • Utterances comment system supported by Utterances
  • Artalk comment system supported by Artalk
  • Twikoo comment system supported by Twikoo
  • giscus comment system supported by giscus

Extended Features

  • AI Summary, AI Search and AI Chatbot supported by PostChat
  • PWA (Progressive Web App) supported
  • Sub Menu supported
  • Content Encryption supported (Pages, Partial)
  • Friends page embedded template
  • Search supported by algolia, Fuse.js, Pagefind, CSE or PostChat
  • Custom Search Engine (CSE) supported by Google
  • Twemoji supported
  • Automatically highlighting code
  • Copy code to clipboard with one click
  • Images gallery supported by lightgallery
  • Extended Markdown syntax for Font Awesome icons
  • Extended Markdown syntax for ruby annotation
  • Extended Markdown syntax for fraction
  • Multiple admonitions shortcode or alerts extended Markdown syntax
  • Tabs and Tab shortcode with multiple design styles
  • Mathematical formula supported by KaTeX or MathJax
  • Diagrams code fences extended and shortcode supported by mermaid
  • Interactive data visualization shortcode and code fences extended supported by ECharts
  • Timeline code fences extended and shortcode supported
  • File tree code fences extended and shortcode supported
  • Mapbox shortcode supported by Mapbox GL JS
  • Music player shortcode supported by APlayer and MetingJS
  • Bilibili player and Douyin player shortcode
  • Custom style shortcode
  • Custom script shortcode
  • Open more custom blocks
  • Animated typing supported by TypeIt
  • Cookie consent banner supported by cookieconsent
  • Web Watermark supported by cell-watermark
  • Chinese typesetting supported by pangu.js
  • Options to cache remote image locally
  • ...

Multilingual and i18n

FixIt supports multilingual and i18n. For more information, see the Content Management documentation. You are welcome to contribute with a new language.

FixIt supports the following languages.
  • English
  • Simplified Chinese
  • Traditional Chinese
  • French
  • Polish
  • Brazilian Portuguese
  • Italian
  • Spanish
  • German
  • Serbian
  • Russian
  • Romanian
  • Vietnamese
  • Hindi
  • Japanese
  • Korean

Theme Components

To balance simplicity and extensibility, FixIt theme provides extra Hugo theme components for customization.

Click to view.

Community

All feedback is welcome! Head over to the discussions, Pull requests and issues tracker.

Official Community Description
Discussions GitHub discussion forum
FixIt WeChat group Follow and reply "FixIt" to get
FixIt QQ group QQ group: 814031017
FixIt Dev group QQ group: 770835493

Contributing

We welcome you to join the development of FixIt. Please see contributing document. 🤗

Also, we welcome Issue or PR to our official-components.

Note

When contributing, please first discuss the change you wish to make via a discussion on this repository before making the actual change.

Acknowledgements

Thanks to the support of all contributors!

Thanks to the Hugo DoIt theme and Hexo NexT theme for inspiration and reference.

Thanks to all the open source projects used in the FixIt theme.

License

FixIt is licensed under the MIT license. Check the LICENSE file for details.

Sponsor Support

If you enjoy the theme, please consider buying me a cup of coffee . Thanks!

Thanks to the following sponsors for their great support:

Author

Lruihao

Languages
HTML 32.2%
TypeScript 21.4%
TOML 18.4%
SCSS 17.8%
Markdown 8.1%
Other 2%