jekyll - 将数组传递给包含以循环
问题描述
根据传入的内容,我有一个包含 >1 个按钮的包含。
目前我在包括以下内容:
{% if include.buttons %}
{% for button in include.buttons %}
<a class="{{ button.classes }}" href="{{ button.url }}">{{ button.title }}</a>
{% endfor %}
{% endif %}
然后我试图传入以下数据:
{% assign buttons = '[{ "title": "button 1", "url": "https://#", "classes": "btn btn-transparent" }, { "title": "button 2", "url": "https://#", "classes": "btn btn-primary" }]' %}
{% include header.html
buttons=buttons
%}
我无法解决的是如何正确地将数据传递给包含,以便我可以遍历它。
解决方案
问题是将数据分配为数组。在液体中,您不能直接初始化数组。一种解决方法是使用split。
但是,使用 jekyll,您可以通过数据文件提供数组。只需将您的按钮放在一个文件中,例如_data\buttons.yml
:
postXX:
- button1:
- title: "button 1"
- url: "https://#"
- classes: "btn btn-transparent"
- button2:
- title: "button 2"
- url: "https://#"
- classes: "btn btn-primary"
现在您可以在您的帖子/页面的 yaml-header 中添加一个引用,例如:
---
your other yaml options....
buttons: postXX
---
最后,像在代码中那样分配按钮并包含它们。
{% assign buttons = site.data.buttons[page.buttons] %}
{% include header.html
buttons=buttons
%}
推荐阅读
- algorithm - 给定一个图 G,验证所有从顶点 u 出发的简单最大路径必须通过 2 个与不同奇偶校验数相关联的顶点
- angular - “ng serve”上的 EntryComponent 错误,但在保存文件后消失
- python - pandas str 中的正则表达式替换以排除部分匹配
- javascript - 如何使用 javascript 在 4 个 div 元素的背景中创建图像?
- docker - Mamba 将软件包安装到错误的环境中
- search - WHMCS 自定义字段智能搜索
- angular - Angular中css和js本地化的解决方案是什么,不需要上网就可以正常工作
- pymol - Pymol 命令行中的氢键分析
- django - 为什么没有回滚钩子?
- camera - jpeg 文件中是否有任何文本数据?