{% raw %}
这几天写了一篇有关于 Vue.js 的博客,在讲述插值语法时会用到 }},但是 Hexo 博客使用的是 Nunjucks 来解析文章,内容中如果包含 {{ }} 或者 {% %} 就会发生错误

{% endraw %}

image-20210330000446314

官方给出了三种解决办法:

  1. 使用 raw 标签

    {% raw %}
    将包含 {{ }} 或者 {{% %}} 的内容放在其中
    {% endraw %}
  2. 使用 ` 或者 ```

    `{{ }}` `{% %}`
  3. front-matter 中禁止 Nunjucks

    disableNunjucks: true

{% raw %}

我首先选择的是第三个解决办法,设置 front-matter,但是没有用;而第二个办法直接排除,因为我的 {{}} 就是放在 single backtick 中,但是明显没有效果;那我只有选择第一种办法了,但是事情没有解决,因为 }} 会被解析为行内公式,这是因为我开启了 mathjax,导致页面显示错误。

但是山穷水复疑无路,我想了想为什么没有加 raw 标签之前不会将 }} 解析为数学公式,因为 }} 放在 single backtick 中,会被优先解析为 code 标签,加了 raw 标签之后就不会解析了,因此我将

{% endraw %}

`{{}}`

全部换成了

<code>{{}}</code>

修改之前:

image-20210330000543405

修改之后:

image-20210330000651668

至此果然能够正常的渲染了。