数据文件

当前更新NexT主题并不顺利。通过git pull升级NexT主题时,它经常会陷入冲突状态,然后我们只能手动合并配置。

目前,NexT鼓励用户将一些选项存储在站点配置文件(hexo/_config.yml)中,将其他选项存储在主题配置文件(next/_config.yml)中。此方法很实用,但有一些缺点:

  1. 配置分为两部分
  2. 用户可能会感到困惑,应该把设置放在哪个位置

为了解决此问题,NexT提供了以下两种解决方案。

所有配置都位于主站点配置文件中。这样就无需编辑主题配置文件或创建任何新文件,主题配置放在theme_config后面(需要缩进两格)。

如果新版本中有任何新选项,则只需从主题配置文件中复制这些选项,然后粘贴到站点配置文件中,然后将其值设置为所需的值即可。

用法

  1. 请确认/source/_data/next.yml文件不存在(如果存在则将其删除)。
  2. 将所需的NexT主题选项从主题配置文件复制到站点配置文件,然后复制到
    • 将所有这些设置向右移动两个空格(在Visual Studio Code中:选择所有字符串CTRL+ ])。
    • 在所有这些设置之前添加参数theme_config:

值得参考的链接:

通过这种方式,您可以将所有主题配置放在一个位置(hexo/source/_data/next.yml)。这样就无需编辑主题配置文件(next/_config.yml)。但是option可能无法准确地处理所有hexo外部库及其附加选项(例如,hexo-server只能在默认hexo配置中读取模块选项)。

如果新版本中有任何新选项,则只需从主题配置文件中复制这些选项,然后粘贴hexo/source/_data/next.yml并设置其值即可。

此方法依赖Hexo数据文件。由于Hexo3中才引入了数据文件,因此您需要将Hexo升级到3.0(或更高版本)才能使用此功能。

用法

  1. 请确保您使用的是Hexo3(或更高版本)。

  2. hexo/source/_data目录中创建next.yml(如果_data不存在,则创建目录)。

    在该步骤之后,有2个变体,只需选择其中一个,然后继续下一步即可。

    1. next.ymloverride选项设置false。
    2. 所需的选项从站点配置文件和主题配置文件复制到中hexo/source/_data/next.yml
    1. next.yml设置override选项为true。
    2. 所有NexT主题选项从主题配置文件复制到hexo/source/_data/next.yml中。
  3. 然后,在主站点的配置文件中需要定义theme: next选项(如果需要的话source_dir: source)。

  4. 使用标准参数生成文件、启动服务器、部署(hexo clean && hexo g -d && hexo s)。

已知问题

NexT-7.5.0之前的版本使用lodash/mergenext.yml中合并配置,这可能会导致菜单项顺序错误。由于lodash/merge使用深度复制,因此即使您设置菜单项的顺序,它们也将遵循_config.yml中的默认顺序。