搜索引擎确认网站所有权时往往会提供一个html文件来进行验证,要是这个文件被渲染了,验证自然就会失败了。或者,有时候会写一些简单的html示例页面,这也是不希望Hexo渲染的。因此有必要针对某个文件或者目录进行排除。Hexo的配置文件中提供了配置项skip_render,但总不清楚到底该怎么用。

注意

只有source目录下的文件才会发布到public(能够在网络上访问到),因此Hexo只渲染source目录下的文件。skip_render参数设置的路径是相对于source目录的路径。

设置排除项

假设source目录下的文件如以下目录树所示

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
├─ demo
|  ├─ js-view-size
|  |  ├─ 1.html
|  |  └┈ 2.html
|  ├─ other
|  |  ├─ 3.html
|  |  ├─ 4.html
|  |  └┈ 5.md
|  ├─ 6.html
|  └┈ 7.md
├─ baidu.html
└┈ google.html

排除单个文件

  • 排除baidu.html
    1
    
    skip_render: 'baidu.html'
    
  • 排除3.html
    1
    
    skip_render: 'demo/other/3.html'
    

排除多个文件

  • 排除baidu.htmlgoogle.html
    1
    2
    3
    
    skip_render:
      - 'baidu.html'
      - 'google.html'
    

    或者

    1
    
    skip_render: '*.html'
    

    后者会排除source目录下所有后缀为html的文件,但是不会排除子目录如demo及其子目录中的html文件。

  • 排除baidu.htmlgoogle.html以及3.html
    1
    2
    3
    4
    
    skip_render:
      - 'baidu.html'
      - 'google.html'
      - 'demo/other/3.html'
    

    或者

    1
    2
    3
    
    skip_render:
      - '*.html'
      - 'demo/other/3.html'
    
  • 排除source/demo/other目录中的所有html文件
    1
    
    skip_render: 'demo/other/*.html'
    

    这不会排除5.md文件

  • 排除source/demo/other目录中的所有文件
    1
    
    skip_render: 'demo/other/**'
    
  • 排除baidu.htmlgoogle.html以及整个source/demo目录
    1
    2
    3
    
    skip_render:
      - '*.html'
      - 'demo/**'
    

    排除所有特定后缀的文件,暂且不知道如何设置。

参考文章