Releases
4.1.0
Breaking change
Requires Node 8.10 or above [#3778 ]
Node 8 is going to be deprecated in less than a month , we strongly urge to upgrade to Node 10 or newer
og:locale
Open Graph tag won't be inserted if language:
(in config, front-matter of post/page or open_graph()
helper) is not in language-TERRITORY
format [#3808 ]
en
is invalid
en-GB
is valid
Not all locales are supported (e.g. en-AU
is not valid), see official list
Dash (e.g. "en-GB") must be used for multilingual support, dash is automatically transformed to underscore (e.g. "en_GB") in og:locale
Verify the corresponding file exists in the languages/
folder of installed theme before changing the language:
config
Features
Support adding hour and minute to post permalink [#3629 ]
_config.yml
permalink : :year/:month/:day/:hour/:minute/:title/
Results in https://yoursite.com/2019/12/09/23/59/a-post/
Insert article:published_time
[#3674 ] article:author
[#3805 ] Open Graph tags
Enable lazyload
in iframe-related tag plugins [#3798 ]
meta_generator
helper to insert metadata element tag [#3782 ]
Example usage:
Insert the following snippet (if EJS is used) inside <head>
element of your theme layout,
would output <meta name="generator" content="Hexo 4.1.0">
Hexo 3.9.0+ inserts the tag automatically; to get the performance benefit (of the meta_generator
helper), meta_generator:
option should be disabled,
_config.yml
meta_generator : false
Support custom attributes in js()
[#3681 ] and css()
[#3690 ] helpers
< % - js ( { src : 'script.js' , integrity : 'foo' , async : true } ) % >
// <script src="/script.js" integrity="foo" async></script>
< % - css ( { href : 'style.css' , integrity : 'foo' } ) % >
// <link rel="stylesheet" href="/style.css" integrity="foo">
Support wrap:
option to enable/disable wrapping backtick codeblock in <table>
element [#3827 ]
Enabled by default, enabling line_number
also enables it
Configure in highlight:
_config.yml
highlight :
line_number : false # must be disabled to disable wrap:
wrap : false
{ % codeblock lang:js wrap:false % }
const foo = ( bar ) => {
return bar ;
} ;
{ % endcodeblock % }
Fixes
Retain blank lines in a codeblock attached in blockquote [#3770 ]
Replaced deprecated og_updated_time
Open Graph tag with article:modified_time
[#3674 ]
Replaced deprecated keywords
Open Graph tag with article:tag
[#3805 ]
meta_generator tag should be inserted into <head>
that spans multiple lines [#3778 ]
No longer clear database db.json
when running hexo new
or hexo --help
[#3793 ]
Completely ignore files/folders specified in ignore:
option [#3797 ]
If you're using Webpack or related tools in your theme, the node_modules
folder could cause some issues
A temporary workaround is to configure Hexo to ignore that folder,
_config.yml
ignore : ' **/themes/*/node_modules/**'
The workaround will no longer be necessary in future version
jsfiddle, vimeo and youtube tag plugins now use https only [#3806 ]
external_link
filter should not process data URLs (e.g. mailto:
& javascript:
) [#3812 ] and <article>
element [#3895 ]
Prevent unnecessary insertion of front-matter when using alias in Hexo CLI [#3830 ]
-p
is alias of --path
-s
is alias of --slug
-r
is alias of --replace
Applies include:
and exclude:
options to post's asset folder [#3882 ]
ignore:
option should work for files, in addition to folders [#3878 ]
Housekeeping
Add FOSSA license analyzer for open-source software license compliance [#3779 ]
Run benchmark in CI to catch regression [#3776 ]
Further reduces lodash usage [#3786 ], [#3788 ], [#3790 ], [#3785 ], [#3809 ], [#3791 ], [#3810 ], [#3826 ], [#3867 ], [#3845 ]
Remove unnecessary file at the end of unit test [#3792 ]
Add funding source to npm [#3851 ]
Update bump strip-ansi from 5.2.0 to 6.0.0 [#3852 ]
Update chalk from 2.4.2 to 3.0.0 [#3853 ]
You can’t perform that action at this time.