前言

这两天做的一个 stars页面 预览渲染时,产生了错误

Hexo预览渲染时会对默认 /source/ 里的所有文件页面应用主题模板渲染
但有一些自己的前端作品或demo页我们不希望经过渲染(因为会报错)
而是保持完全原来的样子

  • 添加的模块仍在主题内,主题头部信息依然存在,仅仅是在特定区域进行渲染(适合添加 about 页面)
  • 完全页面渲染,在主题内点击对应链接跳转到一个完全崭新的页面(我需要的)

Hexo渲染逻辑

source 文件夹下存放了待被转化的 markdown 文件
在执行 hexo g 命令时,source 目录下的文件将被转化为 HTML 文件

解决方法

在查看Hexo的_config.yml配置文件的时候发现有这么一个东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Directory

source_dir: source
# 资源文件夹,这个文件夹用来存放内容
public_dir: public
# 公共文件夹,这个文件夹用于存放生成的站点文件
tag_dir: tags
# 标签文件夹
archive_dir: archives
# 归档文件夹
category_dir: categories
# 分类文件夹
code_dir: downloads/code
# Include code 文件夹
assets_dir: assets
# 资源文件夹
i18n_dir: :lang
# 国际化(i18n)文件夹
skip_render:
# 跳过指定文件的渲染,您可使用 glob 表达式来匹配路径

其中的 skip_render: 则可以帮助我们跳过指定的文件或文件夹内的内容渲染

  • 排除单个文件

    1
    2
    skip_render: stars/**
    # 排除 stars 文件夹内所有的文件
    1
    2
    skip_render: *.html
    # 排除 source 文件夹下所有后缀为 html 的文件,但是不会排除子目录如stars及其子目录中的1.html文件
  • 排除多个文件

    1
    2
    3
    4
    5
    6
    7
    skip_render:
    - '1.html'
    # 排除 source 文件夹下所有的 1.html 文件,但是不会排除子目录如 stars 及其子目录中的 1.html 文件
    - 'stars/all.json'
    # 排除 stars 文件夹内的 all.json 文件
    - 'stars/*.html'
    # 排除 stars 文件夹内所有的 html后缀文件