首页 文章

逃离Jekyll Markdown中的渲染液体模板

提问于
浏览
1

有没有办法逃避Jekyll降价页面中的液体模板渲染?

我在markdown文件中有以下fenced代码块:

```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>

它呈现给:

```xml
<!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 }}

2 回答

  • 0

    事实证明,我的问题因Vue.js的模板问题而变得更加复杂,Vue.js也使用模板的胡子语法 . 我能用以下方法解决这个问题:

    {% raw %}{{ "{{ content "  }}}}{% endraw %}
    

    它看起来不太好,但它确实有效 .

  • 1

    我遇到了同样的问题 . 我使用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>
        `
    });
    

相关问题