记一次hexo报错——tag name expected

感觉什么都没做但是Hexo就报Template render error了……随后开始疯狂找原因……

问题

具体错误信息如下:

1
2
3
4
5
6
7
Unhandled rejection Template render error: (unknown path) [Line 70, Column 4]
tag name expected
at Object._prettifyError (...source folder...\node_modules\nunjucks\src\lib.js:36:11)
at Template.render (...source folder...\node_modules\nunjucks\src\environment.js:542:21)
at Environment.renderString (...source folder...\node_modules\nunjucks\src\environment.js:380:17)
at Promise.fromCallback.cb (...source folder...\node_modules\hexo\lib\extend\tag.js:62:48)
......

刚开始看到 tag name expected的时候,还以为是文档里面没有加tag,将最近更新的几篇都反复修改了一下,然后问题依旧存在。真是太天真了


原因

两篇文章里面都不约而同地提到,

其中{%和%}被当成hexo模板中的标签,解析出错。

当然,有着同样的问题的还有{{ }}。

这个时候我就想起来,有用{% ... %}指令的,就是我刚刚安装好的七牛云插件。所以找了一下,果然是在某一段{% ... %}里面没有加七牛云插件的指令,但是在解析的时候它在等七牛云的指令,最终导致了tag name expected这个问题。


解决方案

就……把qnimg的指令加上去就好了。

不过对于其他需要{{ }}或者{% %}的指令,可以用以下两种方案解决:

1
{% raw %}{%和%}{% endraw %}

或者用```包裹住代码块。

只要做到让其显示的只要是源代码就好了,那么hexo就不会对其进行编译了。


Reference

Hexo + Github 部署博客踩坑

Hexo报错Template render error: tag name expected

-------The end of this article  Thank you for your reading-------
0%