Hexo 的 Template render error 错误
Hexo 的 Template render error 错误探究。
使用 Hexo 生成文档的时候,可能会如果如下错误:
1 | FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html |
原因可能有如下两种:
- 在
.md
源文件中出现了没有闭合的双括号,如单独的{{
或者单独的}}
,或者出现了闭合的但是中间为空的双括号,如{{}}
。 - 在
.md
源文件中出现了没有闭合的标签插件(Tag Plugins)。如只有{% xxx %}
,但却没有{% endxxx %}
。
更深层的原因是, {{ 和 }} ,以及 {% %} 是 Hexo 模板中的标签,Hexo 处理源文件的时候会对这些标签进行解析,但是单独写的或者使用不支持的标签就会导致解析错误。
如果确实需要在文章中呈现出双括号或者括号加百分号这样的文字,可以直接在源文件中使用
1 | {% raw %} |
和
1 | {% endraw %} |
把要显示的文字括起来就好了。如下所示:
1 | {% raw %} |
上边两个标签之间加了换行,不换行也可以的,只要把内容放在两个标签中间就可以了。另外,多个 {% raw %}{% endraw %}
连续使用,可能会有非预期的效果,因为有些情况下为贪婪匹配模式,最远的两个匹配上,中间的所有内容都被设定为 raw 类型,不再有渲染效果。
另外,标签插件是只有 Hexo 已经规定的才能使用,如果自己随便写一个名字,会产生 unknown block tag: xxx
错误。可以使用的标签插件请参考:标签插件(Tag Plugins)