如何从根本解决hexo不兼容标签问题
报错
1 | INFO Start processing |
出现这个情况一般是因为Markdown文件中有标签与nunjucks
模板引擎的标签冲突了,这些标签都是模板引擎的,如果Markdown文件中有这些标签,那么在解析的是就会把Markdown中的标签动态解析了。通常情况下是不允许的。
这里提供几个方案
方案一
当然是最简单的,把博客卸载不用了!!!🐶
开玩笑,其实是使用标签进行处理
1 | {% raw %} |
这样,但是这样使用有一个麻烦的点,经过我的测试,只能在小部分的地方比如只包括代码,如果大面积的使用会导致其他标签失效,比如说##
,所以一般不采用这样方法
方案二
半永久方法,修改配置文件
直接修改nunjucks
模板的源代码,找到如下文件:
1 | node_modules/nunjucks/src/lexer.js |
在文件的开头可以看到如下代码:
1 | ; |
可以直接改了这些渲染标签,比如我的Markdown文件中就是需要显示{{name}}
这一类代码。那么你可以这么做:
1 | var VARIABLE_START = '{$'; |
把模板引擎的占位符修改为其他字符之后,这样模板解析的时候就不会跟你的Markdown内容冲突了,而且是对所有Markdown文件都有效的。
但是这个方法在进行模版的更新之后就会失效,所以是半永久