0%

hexo | 在 Hexo 博客中创建自定义页面

我们有的时候想放一下别的页面,比如,我们自己写了一个 html。但是,在渲染的时候,会被 hexo 自动添加一些东西,所以,我想不让 hexo 自动渲染。

比如,我创建了一个 html 文件,引用了 js 、css 等,我如果不想叫渲染的话,可以在 html 的开头加上

1
2
layout: false
---

只是这个方法只适用于 html 文件,而且每个文件都要加,还是有很大的局限性。除此之外,有个还笨办法,就是把要引用的文件放到 themes/(主题名)/source 文件夹下,这样也会避免被编译,但本人不建议使用。

我用的是上面的方法,下面的方法没用过,但是,可以看一下:

打开 hexo 项目根目录下的配置文件 _config.yml ,找到 skip_render: ,在这里就可以配置需要跳过渲染的文件。

例如,我们把所有静态页面放到 source 文件夹下的 demo 文件夹中,只要配置

skip_render: demo/**

就可以使demo下的所有文件(包括子文件)避免被编译。这样的匹配规则在许多前端框架和自动化工具中都有用到,前端小伙伴应该都很熟悉。举几个例子:

1
2
3
4
skip_render: demo/*             # 屏蔽demo文件夹下的文件,不包括子文件夹内的内容
skip_render: demo/** # 屏蔽demo文件夹下的所有文件,包括子文件夹内的内容
skip_render: demo/index.html # 屏蔽demo文件夹下的index.html,特指一个文件
skip_render: demo/*.html # 屏蔽demo文件夹下的所有html文件

写多个筛选条件时,要这样:

1
2
3
skip_render:
- space/**
- demo/*

配置文件写好后,重新生成代码,就可以通过链接访问未经编码的原生页面了。这里有个小问题,在 markdown 页面里的链接只能在本页面打开,如果想实现以新标签打开链接,可以直接在 markdown<a target="_blank" href="#"></a>,或者通过js控制。

注意

在执行 hexo g 生成代码之前,建议先执行hexo clean 将原有代码清空,以免造成混乱。

请我喝杯咖啡吧~