Commit Graph

2457 Commits

Author SHA1 Message Date
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
Cell b274b1b33b chore(config): remove deprecated hugoVersion.extended
The `hugoVersion.extended` field is deprecated since Hugo v0.153.0
and the version check was removed in v0.153.2. WebP encoding is now
supported in all Hugo editions, and LibSass has been replaced by Dart
Sass. Since the theme requires Hugo >= 0.161.0, this setting is no
longer needed.
2026-07-18 02:48:17 +08:00