逃避在Jekyll Markdown中呈现液体模板

3

有没有一种方法可以在Jekyll markdown页面中逃避液体模板渲染?

我在一个markdown文件中有以下围栏式代码块:

```html
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Example Title</title>
</head>

<body>
  <div id="app">
    {% raw %}
    {{ content }}
    {% endraw %}
  </div>
</body>

</html>
```

这将呈现为:

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Example Title</title>
</head>

<body>
  <div id="app">



  </div>
</body>

</html>

我不确定为什么,但是Jekyll正在处理{% raw %}标签之间的内容。我想保留{{ content }}块,而不进行渲染。

我也尝试过使用{作为页面变量,并通过以下方式访问它:

{{ page.lcb }}{ content }}

1
可能是如何转义Liquid模板标签?的重复问题。 - Chris
2个回答

5
原来我的问题更加复杂,和Vue.js的模板问题有关,Vue.js也使用mustache语法进行模板渲染。我通过以下方式解决了这个问题:
{% raw %}{{ "{{ content "  }}}}{% endraw %}

它看起来不太好,但它能正常工作。


0

我遇到了同样的问题。我使用CloudCannon来处理Jekyll。我有几个地方使用了{{}},所以最终我把它放到了组件文件中,这也符合Vue的结构要求,例如:

var app = new Vue({
    el: "#app",
    data: {...} ,
    filters: {...} ,
    methods: {...},
    template: `
      <div>
        <ul class="services">
          <li class="services__item" v-for="service in services" v-on:click="toggleActive(service)" v-bind:class="{ \'active\' : service.active }">
            <span>{{service.name}}</span> <span>{{service.price | currency}}</span>
          </li>
        </ul>
        <p class="total">
          <span>Total:</span> <span>{{total() | currency}}</span>
        </p>
      </div>
    `
});


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接