导航通过液体嵌套yaml列表
问题描述:
我见过关于这个主题的几个问题,但没有人能解决我的问题。我想有一个多语言的jekyll网站,而不使用任何插件。我有这个嵌套列表导航通过液体嵌套yaml列表
menu:
fr:
home:
name:"Acceuil"
url:"/"
team:
name:"Équipe"
url:"/equipe"
en:
home:
name:"Home"
url:"/home.html"
team:
name:"Team"
url:"/team"
我想根据打印页面上在YAML前面的问题郎选择不同的菜单YAML文件。一个最小为例是:
---
lang: en
---
<ul>
{% for item in site.menu.[page.lang] %}
<li><a href="{{ item[1].url }}">{{ item[1].name }}</a></li>
{% endfor %}
</ul>
,这应该在原始的HTML打印
- 首页
- 队
但不是我的代码打印什么,我只是有两颗子弹带没有文字。我看不出我做错了什么,你们能帮助我吗?
编辑:
好吧,我唯一的问题只是我没有把价值指标和值之间的空间。现在问题解决了。谢谢 !
答
添加冒号和值之间的空白在菜单文件,根据YAML规范:
YAML坚持在“:”映射值指示符从 值由空格分开。
也删除menu:
密钥,并将菜单保存在名为_data/menu.yml
的文件中。
fr:
home:
name: "Acceuil"
url: "/"
team:
name: "Équipe"
url: "/equipe"
en:
home:
name: "Home"
url: "/home.html"
team:
name: "Team"
url: "/team"
然后就可以用site.data.menu
直接访问到lang
密钥访问该数据而无需.
menu
和page.lang
之间:
<ul>
{% for item in site.data.menu[page.lang] %}
<li><a href="{{ item[1].url }}">{{ item[1].name }}</a></li>
{% endfor %}
</ul>
这产生:
<ul>
<li><a href="/home.html">Home</a></li>
<li><a href="/team">Team</a></li>
</ul>
- 我在nav.yaml和langnav.html包括多语言网站中使用了类似的方法。
谢谢,在值指示符和值之间放置空格解决了问题! – Samsa