Hexo 4.1.0 发布

重大变更

  • 需要 Node 8.10 或更高版本 #3778
    • Node 8 将在 不到一个月 内被弃用,我们强烈建议升级到 Node 10 或更高版本
  • 如果 language:(在配置文件、文章/页面 front-matter 或 open_graph() 帮助函数中)不是 language-TERRITORY 格式,则不会插入 og:locale Open Graph 标签 #3808
    • en 无效
    • en-GB 有效
    • 并非所有语言环境都受支持(例如 en-AU 无效),请参阅 官方列表
    • 为了支持多语言,必须使用连字符(例如“en-GB”),连字符会在 og:locale 中自动转换为下划线(例如“en_GB”)
    • 在更改 language: 配置之前,请验证安装主题的 languages/ 文件夹中是否存在相应的语言文件

特性

  • 支持在文章永久链接中添加小时和分钟 #3629

    • 示例用法
    _config.yml
    permalink: :year/:month/:day/:hour/:minute/:title/
    • 结果为 https://example.com/2019/12/09/23/59/a-post/
  • 插入 article:published_time #3674 article:author #3805 Open Graph 标签

  • 在 iframe 相关标签插件中启用 lazyload #3798

  • meta_generator 帮助函数用于插入 元数据 元素标签 #3782

    • 示例用法
    • 在主题布局的 <head> 元素中插入以下代码片段(如果使用 EJS),
    <%- meta_generator() %>
    • 将输出 <meta name="generator" content="Hexo 4.1.0">
    • Hexo 3.9.0+ 会自动插入该标签;为了获得性能优势(meta_generator 帮助函数的优势),meta_generator: 选项应禁用,
    _config.yml
    meta_generator: false
  • 支持在 js() #3681css() #3690 帮助函数中使用自定义属性

    • 示例用法
    <%- js({ src: 'script.js', integrity: 'foo', async: true }) %>
    // <script src="/script.js" async></script>

    <%- css({ href: 'style.css', integrity: 'foo' }) %>
    // <link rel="stylesheet" href="/style.css">
  • 支持 wrap: 选项以启用/禁用将反引号代码块包装在 <table> 元素中 #3827

    • 默认情况下启用,启用 line_number 也会启用它
    • 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 %}
    • 输出结果为,
      const foo = (bar) => {
      return bar;
      };

修复

  • 保留附加在块引用中的代码块中的空白行 #3770

  • 将已弃用的 og_updated_time Open Graph 标签替换为 article:modified_time #3674

  • 将已弃用的 keywords Open Graph 标签替换为 article:tag #3805

  • meta_generator 标签应插入到跨越多行的 <head>#3778

  • 运行 hexo newhexo --help 时不再清除数据库 db.json #3793

  • 完全忽略在 ignore: 选项中指定的 文件/文件夹 #3797

    • 如果您在主题中使用 Webpack 或相关工具,node_modules 文件夹可能会导致一些问题
    • 一个临时的解决方法是配置 Hexo 忽略该文件夹,
    _config.yml
    ignore: '**/themes/*/node_modules/**'
    • 该解决方法在未来版本中将不再需要
  • jsfiddle、vimeo 和 youtube 标签插件现在仅使用 https #3806

  • external_link 过滤器不应处理数据 URL(例如 mailto:javascript:)[#3812] 和 <article> 元素 #3895

  • 防止在 Hexo CLI 中使用别名时不必要地插入 front-matter #3830

    • -p--path 的别名
    • -s--slug 的别名
    • -r--replace 的别名
  • include:exclude: 选项 应用于文章的资源文件夹 #3882

  • ignore: 选项应适用于文件,除了文件夹 [#3878]

杂项