v7.0.0
hexojs/hexov7.0.0Oct 31, 2023by yoshinorin
AI Summary
A major version update requiring Node.js 14+, dropping several built-in tags, and completing the migration to TypeScript.
Key Highlights
- Requires Node.js 14 or higher.
- Dropped built-in tags: gist, youtube, jsfiddle, and vimeo.
- Removed front-matter property `link` from posts.
- Migrated the codebase to TypeScript.
Breaking Changes
- Require Node.js 14+
- Dropped built-in tags (gist, youtube, jsfiddle, vimeo)
- Dropped `external_link` boolean type
- Removed post front-matter property `link`
New Features
- URL hash support for post_link tag
- Support quotes in img title and alt
- Allow top-level await in plugins or scripts
- Define global variable `hexo`
Full Release Notes
## Migration Guide
### built-in tags
> **WARNING**
> Some of the built-in tags have been dropped (`gist`, `youtube`, `jsfiddle`, and `vimeo`). If you use those tags in your existing blog posts, you can install [hexo-tag-embed](https://github.com/hexojs/hexo-tag-embed) to continue using them with Hexo `v7.0.0`.
> **Note**
> No need to install it if you are not using (or will not use) `gist`, `youtube`, `jsfiddle`, `vimeo` tags in your post or page.
```sh
$ npm i hexo-tag-embed
```
### Syntax highlighting
> **WARNING**
> Syntax highlighting is refactored and controlled by the following settings. See [Syntax Highlighting](https://hexo.io/docs/syntax-highlight#Configuration) for more details.
```yaml
syntax_highlighter: highlight.js # highlight.js | prismjs | <empty>
```
## Breaking Changes
* chore: require node14+ by @yoshinorin in https://github.com/hexojs/hexo/pull/5061
* Dropped tag features. Please see `Migration Guid` section.
* refactor: drop `gist` tag by @yoshinorin in https://github.com/hexojs/hexo/pull/5067
* refactor: drop `youtube` tag by @yoshinorin in https://github.com/hexojs/hexo/pull/5064
* refactor: drop `jsfiddle` tag by @yoshinorin in https://github.com/hexojs/hexo/pull/5066
* refactor: drop `vimeo` tag by @yoshinorin in https://github.com/hexojs/hexo/pull/5065
* Dropped features
* refactor: drop `external_link` boolean type by @yoshinorin in https://github.com/hexojs/hexo/pull/5063
* refactor: drop `use_date_for_updated` option for `updated_option` by @yoshinorin in https://github.com/hexojs/hexo/pull/5062
* feat(post): remove front-matter property `link` (#5253) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5253
* revert: Access data files from source folder (#1969) (#5325) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5325
* refactor highlight: add extend api for highlight by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5095
## Notable Changes
* Migrate TypeSctipt
* refactor: prepare for migration to typescript by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5094
* refactor: migrate typescript by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5092
* Refactor types by @Pcrab in https://github.com/hexojs/hexo/pull/5178
## New Features
* feat(tags/post_link): search for both slug and title by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5114
* feat(open_graph): drop google_plus by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5115
* feat(tags/img): support quotes in img title and alt by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5112
* feat(console-new): support default title from path by @xu-song in https://github.com/hexojs/hexo/pull/4714
* feat: add an option to disable titlecase in post by @renbaoshuo in https://github.com/hexojs/hexo/pull/5156
* feat: add exclude_languages feature to prismjs by @D-Sketon in https://github.com/hexojs/hexo/pull/5182
* feat(tags/post_link): use slug when title is empty by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5220
* feat: add url_for and full_url_for tag plugins by @D-Sketon in https://github.com/hexojs/hexo/pull/5198
* feat: allow top-level await in plugins or scripts by @Pcrab in https://github.com/hexojs/hexo/pull/5228
* feat: define global variable hexo (#5242) by @dimaslanjaka in https://github.com/hexojs/hexo/pull/5242
## Fixes
* fix(#1099): hexo server error when changing the config by @D-Sketon in https://github.com/hexojs/hexo/pull/5055
* fix: exclude_languages does not work in code blocks by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5088
* When promisifying, store does not preserve disableNunjucks property by @tcr in https://github.com/hexojs/hexo/pull/2670
* fix(post): skip before_post_render and after_post_render on non-posts by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5118
* fix: Failed to create post with special character title by @D-Sketon in https://github.com/hexojs/hexo/pull/5149
* fix(box): check for invalid file by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5173
* fix(backtick_code): handle empty code block by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5206
* fix(moize): helper function not working fine with relative_url by @D-Sketon in https://github.com/hexojs/hexo/pull/5217
* fix(post): skip_render not working in post_asset_folder (#5258) by @D-Sketon in https://github.com/hexojs/hexo/pull/5258
* Revert "fix(backtick_code): handle empty code blocks (#5206)" (#5257) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5257
* fix(post-asset): strip extensions better on permalink (#5153) by @KagamigawaMeguri in https://github.com/hexojs/hexo/pull/5153
* Reverted in: Revert "fix(post-asset): strip extensions better on permalink (#5153)" (#5308) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5308
## Performance
* perf: reduce the number of traversals through posts by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5119
* perf(post): cache tags getter (#5145) by @SukkaW in https://github.com/hexojs/hexo/pull/5145
## Refactor
* refactor: use the `WHATWG URL API` instead of `url.resolve` by @yoshinorin in https://github.com/hexojs/hexo/pull/5136
## CI/CD
* ci: reduce the running of ci (#5282) by @uiolee in https://github.com/hexojs/hexo/pull/5282
* ci: reduce the running of ci (#5291) by @uiolee in https://github.com/hexojs/hexo/pull/5291
## Dependencies
* chore: bump sinon from 13.0.2 to 14.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/4965
* chore: bump lint-staged from 11.2.6 to 13.0.3 by @dependabot in https://github.com/hexojs/hexo/pull/5008
* chore: bump husky from 7.0.4 to 8.0.1 by @dependabot in https://github.com/hexojs/hexo/pull/4966
* chore: bump hexo-fs from 3.1.0 to 4.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5077
* chore: bump hexo-renderer-marked from 5.0.0 to 6.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5081
* chore: bump hexo-front-matter from 3.0.0 to 4.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5087
* chore: bump abbrev from 1.1.1 to 2.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5093
* chore: bump hexo-i18n from 1.0.0 to 2.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5099
* chore: bump hexo-util from 2.7.0 to 3.0.1 by @dependabot in https://github.com/hexojs/hexo/pull/5107
* chore: bump warehouse from 4.0.2 to 5.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5101
* chore(deps): update `hexo-log` from `3.2.0` to `4.0.1` by @yoshinorin in https://github.com/hexojs/hexo/pull/5096
* chore: bump sinon from 14.0.2 to 15.0.0 by @dependabot in https://github.com/hexojs/hexo/pull/5121
* chore: change dependencies version by @Pcrab in https://github.com/hexojs/hexo/pull/5202
* chore: bump c8 from 7.14.0 to 8.0.0 (#5227) by @dependabot in https://github.com/hexojs/hexo/pull/5227
## Test
* test(benchmark): update hexo-many-posts repo by @SukkaW in https://github.com/hexojs/hexo/pull/5128
* test(list_route): improve coverage by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5097
* test: improve coverage by @D-Sketon in https://github.com/hexojs/hexo/pull/5221
* test: improve coverage by @D-Sketon in https://github.com/hexojs/hexo/pull/5223
## Misc
* fix typo (#5245) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5245
* chore(github): delete `other` issue template (#5248) by @yoshinorin in https://github.com/hexojs/hexo/pull/5248
* chore(lint-staged): remove `git-exec-and-restage` (#5281) by @uiolee in https://github.com/hexojs/hexo/pull/5281
* chore(github): use github issue form (#5319) by @uiolee in https://github.com/hexojs/hexo/pull/5319
## New Contributors
* @D-Sketon made their first contribution in https://github.com/hexojs/hexo/pull/5055
* @xu-song made their first contribution in https://github.com/hexojs/hexo/pull/4714
* @tcr made their first contribution in https://github.com/hexojs/hexo/pull/2670
* @Pcrab made their first contribution in https://github.com/hexojs/hexo/pull/5178
* @KagamigawaMeguri made their first contribution in https://github.com/hexojs/hexo/pull/5153
* @dimaslanjaka made their first contribution in https://github.com/hexojs/hexo/pull/5242
* @uiolee made their first contribution in https://github.com/hexojs/hexo/pull/5281
## Full Changelog
https://github.com/hexojs/hexo/compare/6.3.0...v7.0.0
--------------------------------------------------------------------
# Appendix: Changes between v7.0.0(RC2) and v7.0.0
## Breaking Changes
* revert: Access data files from source folder (#1969) (#5325) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5325
* feat(post): remove front-matter property `link` (#5253) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5253
## New Feature
* feat: define global variable hexo (#5242) by @dimaslanjaka in https://github.com/hexojs/hexo/pull/5242
## Performance
* perf(post): cache tags getter (#5145) by @SukkaW in https://github.com/hexojs/hexo/pull/5145
## Fixes
* fix(post): skip_render not working in post_asset_folder (#5258) by @D-Sketon in https://github.com/hexojs/hexo/pull/5258
* Revert "fix(backtick_code): handle empty code blocks (#5206)" (#5257) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5257
* fix(post-asset): strip extensions better on permalink (#5153) by @KagamigawaMeguri in https://github.com/hexojs/hexo/pull/5153
* Reverted in: Revert "fix(post-asset): strip extensions better on permalink (#5153)" (#5308) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5308
## CI/CD
* ci: reduce the running of ci (#5282) by @uiolee in https://github.com/hexojs/hexo/pull/5282
* ci: reduce the running of ci (#5291) by @uiolee in https://github.com/hexojs/hexo/pull/5291
## Dependencies
* chore: bump c8 from 7.14.0 to 8.0.0 (#5227) by @dependabot in https://github.com/hexojs/hexo/pull/5227
## Misc
* fix typo (#5245) by @stevenjoezhang in https://github.com/hexojs/hexo/pull/5245
* chore(github): delete `other` issue template (#5248) by @yoshinorin in https://github.com/hexojs/hexo/pull/5248
* chore(lint-staged): remove `git-exec-and-restage` (#5281) by @uiolee in https://github.com/hexojs/hexo/pull/5281
* chore(github): use github issue form (#5319) by @uiolee in https://github.com/hexojs/hexo/pull/5319
## Full Changelog
https://github.com/hexojs/hexo/compare/v7.0.0-rc2...v7.0.0