微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jekyll 将包含文件中的自定义变量视为文件名

如何解决Jekyll 将包含文件中的自定义变量视为文件名

我有一个自定义变量,我将它传递到我的包含文件中,奇怪的是它被视为文件名。我不确定我做错了什么:

我包含我的组件:

{% include_relative includes/form/components/modal.html for="purpose" %}

includes/form/components/modal.html内容是:

<div class="modal-custom modal-custom-white" data-modal-custom="{% include.for %}" data-modal-requires-update-button>
  <div class="modal-custom-background bg-white"></div>
  <div class="modal-custom-content p-3">

    {% if include.title %}
      <h5 class="font-weight-normal text-dark mb-3">{% include.title %}</h5>
    {% else %}
      <h5 class="font-weight-normal text-dark mb-3"><strong>Tap</strong> to choose:</h5>
    {% endif %}

    <!-- Modal content here -->
    {% if include.content %}
      {% include.content %}
    {% endif %}

  </div>
  <button type="button" class="modal-custom-close is-large bg-light" onclick="toggleModal('purpose','close-retain');diposeExpandedToggler('purpose',true)"></button>
</div>

我正在运行最新版本的 Jekyll,版本 4.2.0,如果我删除 for,则一切正常。我试过了:

  • 重命名变量
  • 清理缓存
  • 以不同方式格式化变量,例如:for=purposefor="purpose"

我在另一个组件中创建了类似的东西,那里一切正常,但我在这里得到的错误是:

液体异常:无法在任何 ["/Users/USER/Sites/MY-PROJECT/src/_includes"] 中找到包含的文件“.for”。确保它存在于这些目录之一中,并且如果它是符号链接,则不会指向您的站点源之外。在 icicle.html

这很奇怪。我错过了什么?

解决方法

您可能只需要使用输出标签 curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI0Smd1Y0t6NVZ4RWNnWXFXQW1yTnFCd0dITFJ5ekZxRGJYTHZ4NzRfZzY0In0.eyJqdGkiOiIzZmFiMjBmYy1mNDQ0LTQyY2EtYjA4MS04ZTBhYmUyNTBhZGUiLCJleHAiOjE2MTk0NjQ0OTMsIm5iZiI6MCwiaWF0IjoxNjE5NDY0MTkzLCJpc3MiOiJodHRwOi8vMTgwLjEzNS4xNjEuMTE6ODA4MC9hdXRoL3JlYWxtcy9tYXN0ZXIiLCJhdWQiOiJnZXRzdG9yZS1tb2JpbGUtdGVtcCIsInN1YiI6ImQ2NDMyMjcxLTA5MDQtNDlhOC1hZjMyLTVlYjZkM2UzMzE5MCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImdldHN0b3JlLW1vYmlsZS10ZW1wIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiNDQ1NzRiODUtZDI3Ny00OWZhLThmMjAtMGE5NTE0MTRiYWZkIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJ1bWFfYXV0aG9yaXphdGlvbiIsIkVTVEFCRUxFQ0lNRU5UTyJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sImNsaWVudElkIjoiZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRIb3N0IjoiMTAuMTgxLjExMi4yMTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtZ2V0c3RvcmUtbW9iaWxlLXRlbXAiLCJjbGllbnRBZGRyZXNzIjoiMTAuMTgxLjExMi4yMTUiLCJlbWFp' -d '{ ..... }' 'http://localhost:40070/log' 而不是非输出标签 {{ include.for }}。此处的 {% include.for %}include.title 也是如此。

您应该传递一个不带引号的变量,否则您将传递字符串文字 include.content 而不是 "purpose" 变量保存的值。

尽管无论如何它都可以工作,但我会尽可能避免使用 purpose 作为键,因为它是 Liquid 中使用的 for 循环关键字。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。