Commit Graph

2458 Commits

Author SHA1 Message Date
github-actions[bot] ce5bcbaecf chore(deps): bump fuse.js from 7.4.2 to 7.5.0 (#819) 2026-09-01 10:18:10 +08:00
github-actions[bot] 1b9beb90bb chore(deps): bump twikoo from 1.7.13 to 1.7.15 (#818) 2026-09-01 10:08:24 +08:00
github-actions[bot] ee02a6baf0 chore(deps): bump cell-tooltip from 0.3.1 to 0.4.0 (#817)
Co-authored-by: Lruihao <33419593+Lruihao@users.noreply.github.com>
2026-09-01 02:12:17 +08:00
Cell fbdf95b627 feat(version): update version badge shortcode documentation and examples
feat(rtl): add .fa-feather icon to RTL support
2026-09-01 02:06:56 +08:00
Cell 7a2c04cba7 feat(assets): add table auto-numbering and sorting support
- Add CSS counter-based table auto-numbering with i18n support
- Add client-side table sorting with numeric/string/date detection
- Support per-table opt-out via Markdown attributes (number=false, sort=false)
- Add table caption support via {caption="..."} attribute
- Extract table styles from _content.scss to dedicated _table.scss
- Add TableConfig TypeScript interface
- Register table-sort script via .Store.hasTableSort for lazy loading
2026-09-01 02:06:56 +08:00
Cell a9c7fc2641 refactor(layouts): extract sidebar asides into partials
- Extract aside-collection into layouts/_partials/single/aside-collection.html
- Extract aside-toc (with print button) into layouts/_partials/single/aside-toc.html
- Simplify single.html with partial calls
2026-08-28 15:26:49 +08:00
Cell 2d0b34b1c6 perf(assets): optimize TOC tracking and refactor heading numbers to CSS counters (#834)
* perf(assets): optimize TOC scroll tracking and collapse behavior

- Replace linear scan + getBoundingClientRect with cached offsets and binary search
- Add rAF throttle to syncTocActiveState for per-frame update limit
- Use diff-based has-active class updates to avoid visual flash
- Simplify collapse CSS (remove broken @supports grid-animation block)
- Replace scrollTop assignment with smooth scrollIntoView

* refactor(assets): replace template heading numbers with CSS counters

- Remove heading counter map and format logic from render-heading.html
- Add CSS counters for h2-h6 numbering via .heading-numbered::before
- Add CSS counters for TOC ol numbering via ::marker
- Use :has(:nth-child(10)) for adaptive ol padding by digit count
- Remove [params.heading.number.format] config (CSS uses fixed format)

* feat(layouts): add print button to sidebar TOC title

- Add print icon button next to TOC title text in sidebar
- Use event.stopPropagation() to prevent TOC toggle on click
- Add "print" i18n key to all 19 language files
- Style print button with secondary color and hover effect
2026-08-28 15:00:10 +08:00
Cell 0b2909c5a5 feat(layouts): add nav-dialog with tab switching for TOC and collections (#833)
* feat(layouts): add nav-dialog with tab switching for TOC and collections on mobile

Rename toc-dialog to nav-dialog and integrate collection list via
tab-element, so mobile users can switch between table of contents and
collection/series list in the drawer. Extract nav-dialog into a
dedicated partial. Add single.navigation i18n key for all languages.

* feat(collections): remove early exit for collections with less than two pages

* style(assets): add transition to collection-summary background-color
2026-08-27 11:22:48 +08:00
Cell 57f98b48c5 feat(assets): add isRTL to core module and fix tooltip placement for RTL
Add isRTL utility function in utils/dom.ts and expose it via CoreService
and window.fixit. Use isRTL to flip task list tooltip placement from
'right' to 'left' in RTL layouts.
2026-08-25 13:57:00 +08:00
Cell 1d07b40d08 refactor(layouts): remove Hugo Extended check, use warnidf for init warnings
SCSS now depends on Dart Sass (external) instead of Hugo Extended's
built-in LibSass, so the hugo.IsExtended check is no longer needed.
Also switches warnf to warnidf for encryption/pagefind warnings to
prevent duplicate messages.
2026-08-25 11:33:44 +08:00
Cell 47b7c969f1 feat(layouts): add post disclaimer/declaration feature (#832)
Add a lightweight disclaimer notice at the beginning of articles to
indicate content origin (AI-generated, repost, original, custom).

- Add params.disclaimer config with enable, type, content options
- Support 4 types: ai, repost, original, custom
- Add custom SVG icons for ai/repost/original types
- Add i18n translations for 20 languages
- Add shimmer animation effect with RTL and reduce-motion support
2026-08-24 17:51:58 +08:00
Cell 152e7fa5a2 chore: change sassdoc/typedoc output to local public/references/ 2026-08-24 01:51:22 +08:00
Cell df90a0eb96 docs: add RTL support and new languages to README
- Add RTL (Right-to-Left) layout to features section
- Add Arabic, Persian, Urdu to supported languages list
2026-08-24 00:43:35 +08:00
Cell 5f1e79f49c feat(i18n): add RTL support for Arabic, Persian and Urdu (#831)
* feat(i18n): add RTL support and Arabic/Persian translations

- Add `dir` attribute to `<html>` via `.Site.Language.Direction`
- Convert physical CSS properties to logical properties across ~30 SCSS files
- Add `[dir="rtl"]` overrides for elements that need physical direction (code blocks, translate, icons)
- Add `logical-direction.html` template function for config value normalization
- Add RTL-aware deprecation warnings for old "left"/"right" config values
- Rename github corner, TOC position, reading progress config values from "left"/"right" to "start"/"end"
- Add Arabic (ar.toml) and Persian (fa.toml) i18n translation files
- Update multilingual documentation with RTL language configuration guide

* feat(shortcodes): add RTL support for tabs and refactor border-radius mixin

- Rename tabs placement values from "left"/"right" to "start"/"end" with deprecation warnings
- Convert all physical directional properties in tabs SCSS to logical properties
- Add RTL overrides for translate and box-shadow in tabs
- Add "start"/"end" support to border-radius mixin using CSS logical properties
- Refactor fixit-decryptor to use border-radius(start/end) mixin

* feat(assets): add RTL support for toc-dialog slide animation

The mobile toc-dialog always slid in from the right (100vw). In RTL
mode it should slide from the left (-100vw), matching the
border-inline-start/margin-inline-end anchoring.

* feat(assets): add RTL support for post-tag comma separator

* refactor(assets): extract RTL styles into dedicated _rtl.scss

* feat(assets): add RTL support for theme-switch and directional icons

* feat(i18n): add RTL support and improve i18n

- Add RTL typography corrections for Arabic-script languages (:lang(ar/fa/ur))
- Remove fa-list-ol from RTL flip list (numbers get mirrored)
- Add Urdu translation file (i18n/ur.toml)
- Rename noMoretTranslations to noTranslations and simplify all translations
- Update json-viewer-element from 1.0.4 to 1.0.6
- Add RTL test posts (index.en.md, index.ar.md)
- Fix layout partials for RTL support

See https://fixit.lruihao.cn/docs/content-management/introduction/#rtl-language-support
2026-08-24 00:22:34 +08:00
Cell 8b6806bbf3 fix(layouts): hide end_flag when post content is encrypted 2026-08-19 12:41:05 +08:00
Cell c65852d882 fix(layouts): replace deprecated .Site.BuildDrafts with HUGO_PARAMS_MENU_DRAFT env var
Use getenv "HUGO_PARAMS_MENU_DRAFT" to control draft menu item visibility,
replacing the deprecated .Site.BuildDrafts (Hugo v0.156.0). (#702)

Also refactors menu range loops to use `continue` for reduced nesting.
2026-08-19 12:30:50 +08:00
Cell 224621b114 fix(post-chat-ai): correct variable name for upLoadWeb in postChatConfig 2026-08-19 09:52:20 +08:00
Cell e0940bd4d3 fix(layouts): resolve accessibility and SEO issues from AI crawler support (#830) 2026-08-17 12:47:50 +08:00
Cell 8782b46f53 docs: add China mirror (Gitee) section to README 2026-08-14 15:02:20 +08:00
Cell 9f378691f1 docs: add README for apps directory with development instructions 2026-08-14 12:45:34 +08:00
Cell 9f4d33a670 docs: add README for internal packages overview and development instructions 2026-08-14 12:41:43 +08:00
Cell 3c449a9017 refactor(assets): extract UnoCSS config into @hugo-fixit/unocss-preset package (#829)
Extract theme tokens, shortcuts, blocklist, safelist, and icon configuration
from uno.config.ts into a reusable workspace package at packages/unocss-preset/.

- Create @hugo-fixit/unocss-preset with presetFixIt and createFixItConfig()
- Simplify uno.config.ts to use createFixItConfig() with content/cli overrides
- Move unocss, @iconify/json from root devDependencies to preset package
2026-08-14 12:33:18 +08:00
dependabot[bot] 65e9f2ff92 chore(deps-dev): bump toml from 3.0.0 to 5.0.0 (#815) 2026-08-12 18:10:29 +08:00
Cell 54fe7bdc83 Merge pull request #814 from hugo-fixit/dependabot/npm_and_yarn/commander-15.0.0 2026-08-12 18:09:34 +08:00
dependabot[bot] 0bc1862853 chore(deps-dev): bump the npm-development group with 6 updates (#813)
Bumps the npm-development group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@antfu/eslint-config](https://github.com/antfu/eslint-config) | `9.1.0` | `9.2.0` |
| [@iconify/json](https://github.com/iconify/icon-sets) | `2.2.502` | `2.2.507` |
| [concurrently](https://github.com/open-cli-tools/concurrently) | `10.0.3` | `10.0.4` |
| [eslint](https://github.com/eslint/eslint) | `10.7.0` | `10.8.0` |
| [lint-staged](https://github.com/lint-staged/lint-staged) | `17.1.0` | `17.2.0` |
| [fs-extra](https://github.com/jprichardson/node-fs-extra) | `11.3.6` | `11.4.0` |


Updates `@antfu/eslint-config` from 9.1.0 to 9.2.0
- [Release notes](https://github.com/antfu/eslint-config/releases)
- [Commits](https://github.com/antfu/eslint-config/compare/v9.1.0...v9.2.0)

Updates `@iconify/json` from 2.2.502 to 2.2.507
- [Commits](https://github.com/iconify/icon-sets/compare/2.2.502...2.2.507)

Updates `concurrently` from 10.0.3 to 10.0.4
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v10.0.3...v10.0.4)

Updates `eslint` from 10.7.0 to 10.8.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.7.0...v10.8.0)

Updates `lint-staged` from 17.1.0 to 17.2.0
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lint-staged/lint-staged/compare/v17.1.0...v17.2.0)

Updates `fs-extra` from 11.3.6 to 11.4.0
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.3.6...11.4.0)

---
updated-dependencies:
- dependency-name: "@antfu/eslint-config"
  dependency-version: 9.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: "@iconify/json"
  dependency-version: 2.2.507
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: concurrently
  dependency-version: 10.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: eslint
  dependency-version: 10.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: lint-staged
  dependency-version: 17.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: fs-extra
  dependency-version: 11.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-12 18:01:24 +08:00
Cell b680d609a1 fix(scss): preserve mobile search modal height (#828) 2026-08-12 12:43:00 +08:00
Cell a9c29b1641 fix(scss): preserve bare CSS fallback values in fi-var
Solve the problem of losing the default background color of the "mark" tag
2026-08-12 11:25:11 +08:00
Cell 7bdd0c5869 fix: update manifest output condition to include server and non-production checks 2026-08-07 20:47:40 +08:00
dependabot[bot] 8d7703a418 chore(deps): bump actions/setup-node from 6 to 7 (#812)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-01 11:42:56 +08:00
dependabot[bot] da2f085969 chore(deps): bump github/codeql-action from 4 to 4.37.3 (#811)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4 to 4.37.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v4...v4.37.3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.37.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-01 11:42:28 +08:00
Cell e3acdb9732 fix(workflow): pass GITHUB_TOKEN to gen-lexers step 2026-08-01 11:36:43 +08:00
dependabot[bot] ece55d0d36 chore(deps-dev): bump commander from 14.0.3 to 15.0.0
Bumps [commander](https://github.com/tj/commander.js) from 14.0.3 to 15.0.0.
- [Release notes](https://github.com/tj/commander.js/releases)
- [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tj/commander.js/compare/v14.0.3...v15.0.0)

---
updated-dependencies:
- dependency-name: commander
  dependency-version: 15.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-01 01:25:15 +00:00
Cell a73416e2be chore(release): 1.0.0-alpha v1.0.0-alpha 2026-07-27 14:44:11 +08:00
Cell 9e2f388022 style(assets): use cooler and darker hover colors for menu items in dark mode 2026-07-26 04:14:46 +08:00
Cell 610fa1d561 fix(assets): apply correct json-viewer theme after content decryption 2026-07-26 02:08:02 +08:00
Cell a5a7b98c95 docs: update v1 migration guide and fixit-encrypt repository
- Update README warning to point to v1 migration guide
- Update version compatibility check for v1.0.0
- Remove temporary v1 development warning
- Update fixit-encrypt repository link in encrypt package README
2026-07-24 12:39:03 +08:00
Cell a5d24f395e refactor(assets): use ES6 # private fields instead of TS private
Convert all TypeScript `private` and `private readonly` declarations to
ES6 `#` syntax for true runtime privacy. TypeScript's `private` keyword
only provides compile-time checking but fields remain accessible in
compiled JavaScript.
2026-07-23 14:33:19 +08:00
Cell f5509e5b82 style(assets): rebuild unocss.css
Remove redundant CSS variable comments and add .ease-out utility.
2026-07-23 12:59:30 +08:00
Cell d35dd6a120 chore: clean up VSCode settings
Remove explorer.fileNesting config and fix comment casing.
2026-07-23 12:59:19 +08:00
Cell 5322a15ceb docs(layouts): add header comments to undocumented partials
Add `{{/* ... */}}` header comments to 25 partials that had no documentation,
enabling `pnpm gen:docs` to generate their reference docs. Also fix
base/head/index.html leading blank line that prevented parser matching.

Groups covered: base/, feed/, function/, home/, init/, plugin/, single/, store/, (root).
2026-07-23 12:56:40 +08:00
Cell a254e10136 chore(release): encrypt 0.3.1 encrypt-v0.3.1 2026-07-21 16:24:19 +08:00
Cell 15b415ff2e docs(encrypt): update Go implementation status to Available
Also fix shell command injection in bench.ts and simplify build script.
2026-07-21 16:23:08 +08:00
Cell 2c0b48370b feat(gen-docs): add Hugo partials docs generation (#809)
* feat(gen-docs): add documentation generation package with SassDoc and TypeDoc support

Add new `@hugo-fixit/gen-docs` package that parses Hugo config (hugo.toml) and generates
documentation. Includes SassDoc annotations for SCSS variables and mixins, TypeDoc config
for TypeScript source docs, and a `.sassdocrc` configuration file.

* docs(readme): add browsers support section

* feat(gen-docs): add Hugo partials docs generation and fix config empty sections

- Add partial-parser.ts: parses Hugo partial comment blocks (@param/@return/@example)
- Add partials.ts renderer: generates grouped Markdown with param tables
- Add `partials` subcommand with -t/-o options for template injection
- Fix config-parser: empty TOML sections (library.js/library.css) now retain descriptions
- Fix config-parser: correctly distinguish section-level vs key-level comments
- Update README with partials subcommand documentation
2026-07-21 12:19:07 +08:00
Cell e07eefd506 fix(layouts): fix busuanzi site views variable name in footer 2026-07-21 01:30:32 +08:00
Cell 7a28234de3 fix(styles): content style priority conflict 2026-07-21 00:38:02 +08:00
Cell 0d6af76f06 feat(layouts): add timeout and cache key options to get-remote-image partial 2026-07-19 15:33:15 +08:00
Cell 10da1f731f chore(release): encrypt 0.3.0 encrypt-v0.3.0 2026-07-19 13:25:28 +08:00
Cell bfee4041d6 refactor(encrypt): rename post-encrypt to encrypt
- Rename package from @hugo-fixit/post-encrypt to @hugo-fixit/encrypt
- Rename bin from post-encrypt to fixit-encrypt
- Update all i18n translations (16 files) to use npx @hugo-fixit/encrypt
- Update CI workflow, publish script, code comments, and docs
- Rewrite README with performance benchmarks and other implementations
2026-07-19 13:15:57 +08:00
Cell 78f1a8583a test(post-encrypt): add performance benchmark script 2026-07-19 12:38:03 +08:00
Cell 3e4cb8d699 feat(post-encrypt): add elapsed time and scanned file count to output 2026-07-18 13:40:17 +08:00