Hexo问题分享:忽略要编译的文件

2019-10-14 15:10:36 浏览数 (1)

Hexo作为开源的博客平台,我们其实可以自定义一些自己喜欢的主题或者页面,我们只需要在source目录下填加一个demo目录放一些示例文件,hexo默认会编译source目录下的所有文件。下面主要给大家分享一下小明遇到的一个技术点:比如有时候demo目录并不需要编译,比如:404.html。

这些hexo都为我们考虑好了,_config.yml中有提供一个配置项skip_render, 官网说明如下:

skip_render:跳过指定文件的渲染,您可使用glob表达式来匹配路径。

glob表达式链接的是minimatch,说明路径匹配用的应该是minimatch这个npm模块包来完成的。需要指出的是这里面配置的路径都是相对source目录的。

  1. 如何需要跳过source目录下文件的编译: // 跳过单个文件 skip_render: test.html // 跳过所有的html的文件 skip_render: '*.html'
  2. 跳过某一目录下的所有文件: skip_render: test/*
  3. 需要跳过某一目录下的所有文件和子目录时: skip_render: test/**
  4. 跳过多个目录,或者多个文件: // 最新版本的hexo,用这个好使 skip_render: ['*.html', demo/**, test/*]

看见有人是说是这样,反正我试不管事,可能的版本的原因:

代码语言:javascript复制
// 我试了试,不管事啊。
skip_render:
    - test1/*.html
    - test2/**

ps:

  1. 如果设置skip_render不起作用,可以先执行hexo clean清除一下缓存。
  2. 如果跳过多个目录编译失败,请尝试更新hexo, 在source同级目录中执行npm update hexo
  3. 如果需要查看是否成功跳过编译,可以在编译的时候加上--debug hexo generate --debug

关注打印出来的Rendering xxxx 中的东西。 以下是我在skip_render中加入test/*的前后对比:

添加test/*前

添加test/*后

0 人点赞