需要在source目录下填加一个demo目录放一些示例文件,hexo默认会编译source目录下的所有文件。但demo目录并不需要编译,_config.yml有提供一个配置项skip_render, 官网说明:

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

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

  1. 如何需要跳过source目录下文件的编译:

    1
    2
    3
    4
    5
    // 跳过单个文件
    skip_render: test.html
    // 跳过所有的html的文件
    skip_render: '*.html'
  2. 跳过某一目录下的所有文件:

    1
    skip_render: test/*
  3. 需要跳过某一目录下的所有文件和子目录时:

    1
    skip_render: test/**
  4. 跳过多个目录,或者多个文件:

    1
    2
    // 最新版本的hexo,用这个好使
    skip_render: ['*.html', demo/**, test/*]

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

1
2
3
4
// 我试了试,不管事啊。
skip_render:
- test1/*.html
- test2/**

ps:

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

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

添加test/*前

添加test/*后

Contents