Files
FixIt/README.zh-cn.md
T
Cell a96ba665ac refactor(assets)!: rewrite content encryption with AES-256-GCM and PBKDF2 (#806)
* refactor(assets)!: rewrite content encryption with AES-256-GCM and PBKDF2

- Remove legacy Base64 obfuscation layer (content-encryption.html)
- Replace <cipher-text> with <template> for inert content storage
- Single-layer AES-256-GCM encryption via post-build script
- PBKDF2 key derivation (100k iterations) for encryption
- PBKDF2-protected password verification (data-verify-salt)
- Depth-tracking parser for nested shortcode support
- Dev mode: plaintext content used directly without encryption
- Remove crypto-js and xxhash-wasm vendored dependencies

* feat(post-encrypt): prepare package for npm publishing

- Add bin entry, build script, and dist output for npx usage
- Replace @hugo-fixit/shared with standalone implementations
- Add CLI shebang for direct execution
- Add package README with usage documentation
- Remove FIXIT_ENCRYPT_INPUT env var (redundant with --input)
- Add encryption detection warning in assets.html
- Remove Post-build Encryption sections from READMEs

* chore: integrate post-encrypt into build pipeline and use consola

- Replace console with consola for post-encrypt logging
- Improve verification messages (no templates, count, etc.)
- Simplify build scripts: encrypt runs as part of main build
- Update encryption detection warning to use npx command

* feat(assets): add encryption dev warning admonition

- Add danger admonition in single.html for full-page encryption (dev mode only)
- Add encryption detection warning in assets.html console
- Improve post-encrypt verification messages with template count

* feat(assets): improve encryption i18n, cache security, and error handling

- Add encryptionWarning and encryptionCommand i18n keys for all 16 languages
- Store PBKDF2 verification hash in localStorage cache for better security
- Show decryption errors via flashTooltip instead of console only
- Add FixItDecryptor type definitions in global.ts
- Move encryption detection to init/detection-encryption.html with batched warning
- Remove redundant per-page warning from assets.html

* feat(assets): redesign fixit-decryptor UI with card layout

- Page-level: card form with lock icon header, password input with key icon, primary-colored unlock button, circular re-encrypt button
- Shortcode-level: connected input+button design (search bar style) with focus ring sync
- Remove loading spinner, use display:none/flex toggle via .initialized class
- Move lock icon styling to UnoCSS (text-primary text-xl)
- Initialize CellTooltip on re-encrypt button
- Fix JSDoc @param warnings in global.ts

* refactor(assets): unify TOC template and decryptor animations

- TOC always rendered in `<template data-toc>`, containers populated by initToc()
- Moved TOC scroll/resize handling from events.ts to toc.ts (syncTocLayout, syncTocActiveState)
- Removed EventsModule toc dependency, updated public-api.ts constructor
- Removed visibility:hidden from #toc-auto
- Decryptor: form always visible, @starting-style for fade-in on init
- Decryptor: content expand/collapse animation using height + opacity
- Removed encrypted-hidden from TOC elements in single.html

* refactor(assets): add target to fixit:decrypted event and simplify handlers

- Add { target: Element } payload to fixit:decrypted in event-bus.ts
- Remove $content closure from fixit-decryptor init(), use detail.target
- Update content.ts and toc.ts to use detail.target from event

* fix(assets): use eventBus for TOC scroll/resize listeners and eliminate redundant template parsing

- Replace raw window scroll/resize listeners in TocModule with eventBus
  subscriptions (fixit:scroll/fixit:resize), reusing EventsModule's
  throttle and debounce instead of duplicating un-throttled handlers.
- Refactor hasUnencryptedTemplate in post-encrypt to accept the already-
  computed matches array, avoiding a redundant findEncryptionTemplates
  call on the same HTML content.
- Remove crypto-js and xxhash-wasm from README credits.

* style(assets): soften decryptor button background and add form hover shadow

* build(workflow): add post-encrypt step to build script
2026-07-05 23:26:11 +08:00

16 KiB
Raw Blame History

Hugo Theme FixIt

FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。
如果你喜欢这个主题,别忘了留下一颗 哦,谢谢!

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

FixIt logo

FixIt

它的原型基于 LoveIt 主题,KeepIt 主题和 LeaveIt 主题。

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

Warning

v0.x 版本仅接受 bug 修复,如需提交新功能,请基于 v1 分支开发。

1.0 版本计划在 2027 年上半年 发布,欢迎加入开发和讨论!详见 v1 里程碑

即时预览

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

更多 FixIt 的例子参见 这里

使用指南

主题文档

前往 快速上手 页面,了解如何使用 FixIt 主题创建一个新网站的详细步骤。

大纲:安装篇入门篇内容管理进阶篇

快速开始

我们提供了一个 CLI 工具,可以通过一个命令来创建一个新的 FixIt 项目。

pnpx fixit-cli create my-blog

asciicast

模板

点击以下链接使用模板生成一个新的仓库:

模板 仓库 生成链接
基于 Hugo Modules 的快速入门模板。 hugo-fixit-starter 点击生成
基于 Git submodule 的快速入门模板。 hugo-fixit-starter1 点击生成
使用 Fixit 主题构建多语言网站。 docs 点击生成
基于 FixIt 主题进行自定义设置。 Lruihao/hugo-blog 点击生成

特色

点击展开

性能和 SEO

外观和布局

  • 响应式 布局
  • 浅色/深色 主题模式
  • 全局一致的 设计语言
  • 支持 分页
  • 易用和自动展开的 文章目录
  • 支持 多语言 和国际化
  • 美观的 CSS 动画

社交和评论系统

扩展功能

  • 支持基于 PostChatAI 摘要AI 搜索AI 智能客服
  • 支持 渐进式网页应用
  • 支持 二级菜单
  • 支持 内容加密(页面、局部)
  • 支持 友情链接 的页面模板
  • 支持基于 algoliaFuse.jsPagefind、CSE 或 PostChat搜索
  • 支持基于 Google自定义搜索引擎 (CSE)
  • 支持 Twemoji
  • 支持 代码高亮
  • 一键 复制代码 到剪贴板
  • 支持基于 lightgallery图片画廊
  • 支持 Font Awesome 图标 的 Markdown 扩展语法
  • 支持 上标注释 的 Markdown 扩展语法
  • 支持 分数 的 Markdown 扩展语法
  • 支持多种 admonitions shortcode 或 alerts 的 Markdown 扩展语法
  • 支持 标签页 的 shortcode,提供多种设计样式
  • 支持基于 KaTeXMathJax数学公式
  • 支持基于 mermaid图表 代码块扩展语法和 shortcode
  • 支持基于 ECharts交互式数据可视化 代码块扩展语法和 shortcode
  • 支持 Timeline 的代码块扩展语法和 shortcode
  • 支持 文件树 的代码块扩展语法和 shortcode
  • 支持基于 Mapbox GL JSMapbox shortcode
  • 支持基于 APlayerMetingJS音乐播放器 shortcode
  • 支持 Bilibili 视频抖音视频 shortcode
  • 支持 自定义样式 的 shortcode
  • 支持 自定义脚本 的 shortcode
  • 支持 自定义模板块
  • 支持基于 TypeIt打字动画 shortcode
  • 支持基于 cookieconsentCookie 许可横幅
  • 支持基于 cell-watermark网页水印
  • 支持基于 pangu.js中文排版
  • 支持本地 缓存远程图床图片
  • ……

多语言和国际化

FixIt 主题多语言基本配置及自动翻译等详见 内容管理 文档,欢迎 贡献一种新的语言

FixIt 支持下列语言。
  • 英语
  • 简体中文
  • 繁体中文
  • 法语
  • 波兰语
  • 巴西葡萄牙语
  • 意大利语
  • 西班牙语
  • 德语
  • 塞尔维亚语
  • 俄语
  • 罗马尼亚语
  • 越南语
  • 印地语
  • 日语
  • 韩语

主题组件

为了平衡 FixIt 主题的 简洁性可扩展性,我们额外开发了一系列 Hugo 主题组件 供用户选择。

点击展开

社区支持

所有的反馈都是欢迎的!详见 DiscussionsPull requestsIssues

官方社区 说明
Discussions GitHub 讨论区
FixIt 主题交流群(微信) 关注「菠菜眾長」回复“FixIt”获取
FixIt 主题交流群(QQ QQ 群:814031017
FixIt 开发交流群 QQ 群:770835493

参与贡献

我们欢迎你加入 FixIt 的开发,贡献出你的一份力量。请看开源 贡献指南🤗

你也可以随时向我们的 官方插件 提交 Issue 或 Pull Request。

Note

在贡献时,请先通过此存储库上的讨论来讨论你希望进行的更改,然后再进行实际更改。

致谢

感谢 所有贡献者 的支持!

感谢 Hugo DoIt 主题和 Hexo NexT 主题给予的灵感和借鉴。

感谢 FixIt 主题中使用的所有开源项目。

许可协议

FixIt 根据 MIT 许可协议授权。更多信息请查看 LICENSE 文件

赞助支持

如果你喜爱这个主题,请考虑给我买杯咖啡 ️,谢谢!

感谢以下赞助商提供大力支持:

作者

Lruihao