v8.0.0

hiddify/hiddify-appv8.0.0Sep 15, 2025by yoshinorin

AI Summary

This is a major version release that drops support for older Node.js versions (16 and 18) and introduces new features like permalink variables, URL config validation, and helper function bindings. It also includes several performance optimizations and dependency updates.

Key Highlights

  • Dropped support for Node.js 16 and 18
  • Added new permalink variable `timestamp` and URL config validation
  • Improved performance with binary relation indexing and caching strategies
  • Updated dependencies including Cheerio to 1.0.0 and Husky to 9.x
  • Refactored code to remove unused functions and timezone settings

Breaking Changes

  • Drop Node.js 16
  • Drop Node.js 18

New Features

  • Bind hexo context to helper function callback
  • Add url config validation
  • Add permalink variable `timestamp`
  • Support additional options for Backtick Code Block
  • Enforce stricter extension checks in load_config

Full Release Notes

## Breaking Changes

* chore: drop Node.js 16 by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5592
* chore: drop Node.js 18 by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5674

## New Features

* feat: bind hexo context to helper function callback by @dimaslanjaka in https://github.com/hexojs/hexo/pull/5555
* feat: add url config validation by @ShaytonXu in https://github.com/hexojs/hexo/pull/5578
* feat: add permalink variable `timestamp` by @uiolee in https://github.com/hexojs/hexo/pull/5611
* feat: Support additional options for Backtick Code Block by @D-Sketon in https://github.com/hexojs/hexo/pull/5625
* feat(load_config): enforce stricter extension checks by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5591

## Fixes

* fix:changed the judgement of whether it has been injected by @mRNA16 in https://github.com/hexojs/hexo/pull/5573
* fix(escapeAllSwigTags): backtrack when tag is incomplete by @D-Sketon in https://github.com/hexojs/hexo/pull/5618
* fix: `hexo.locals.get('posts')` doesn't show all posts by @D-Sketon in https://github.com/hexojs/hexo/pull/5612
* fix: Parsing error for code blocks in list items by @D-Sketon in https://github.com/hexojs/hexo/pull/5617
* fix(open_graph): sort the tags by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5656
* Escape HTML in title of `code` and `include_code` tags by @tommy351 in https://github.com/hexojs/hexo/pull/5688

## Performances

* perf(external_link): optimize external link filter by @D-Sketon in https://github.com/hexojs/hexo/pull/5598
* perf(PostCategory/PostTag): add binary relation index for performance by @D-Sketon in https://github.com/hexojs/hexo/pull/5605
* perf(listArchives): add cache for posts by @D-Sketon in https://github.com/hexojs/hexo/pull/5624
* perf(escapeAllSwigTags): reducing GC overhead by @D-Sketon in https://github.com/hexojs/hexo/pull/5620
* perf: skip tag render when there is no swigTags by @D-Sketon in https://github.com/hexojs/hexo/pull/5650
* perf: faster text-table by @D-Sketon in https://github.com/hexojs/hexo/pull/5665
* warehouse6
  * perf(model): add caching for data keys by @D-Sketon in [#271](https://github.com/hexojs/warehouse/pull/271)

## Refactor

* refactor(common): delete unused function `ignoreTmpAndHiddenFile` by @yoshinorin in https://github.com/hexojs/hexo/pull/5600
* delete scripts `pretest` by @uiolee in https://github.com/hexojs/hexo/pull/5610
* refactor(moment): remove unused timezone setting by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5654

## Test

* test(box/file): extend the mocha timeout to prevent the async file read test from failing by @yoshinorin in https://github.com/hexojs/hexo/pull/5601
* test: improve coverage by @D-Sketon in https://github.com/hexojs/hexo/pull/5638

## Depenrencies

* chore(deps-dev): bump @types/node to ^20.16.10 by @uiolee in https://github.com/hexojs/hexo/pull/5558
* chore(deps): remove resolve by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5594
* chore(deps): update dependencies by @yoshinorin in https://github.com/hexojs/hexo/pull/5597
* chore(deps): update `cheerio` from `0.22` to `1.0.0` by @yoshinorin in https://github.com/hexojs/hexo/pull/5603
* chore(deps): migrate `husky` from `8.x` to `9.x` by @yoshinorin in https://github.com/hexojs/hexo/pull/5602
* chore(deps): update eslint by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5599
* chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/hexojs/hexo/pull/5684
* chore(deps): bump strip-ansi from 6.0.1 to 7.1.0 by @dependabot[bot] in https://github.com/hexojs/hexo/pull/5218
* chore: bump actions/setup-node from 4 to 5 by @dependabot[bot] in https://github.com/hexojs/hexo/pull/5687

## Misc

* chore(lint): apply eslint to test files by @yoshinorin in https://github.com/hexojs/hexo/pull/5655

## New Contributors
* @mRNA16 made their first contribution in https://github.com/hexojs/hexo/pull/5573
* @ShaytonXu made their first contribution in https://github.com/hexojs/hexo/pull/5578

**Full Changelog**: https://github.com/hexojs/hexo/compare/v7.3.0...v8.0.0