首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问jekyll数据文件夹中的子文件夹yaml文件?

如何访问jekyll数据文件夹中的子文件夹yaml文件?
EN

Stack Overflow用户
提问于 2014-10-30 10:44:13
回答 2查看 907关注 0票数 0

我现在正在做一个小的旅游公司网站。我想描述一下每一次旅行的活动-

每3天必须在一个具有span-4级的div中包装,如下所示:

代码语言:javascript
复制
<div class ="span-4">

    <h3>Day 1</h3>
    <h4>Departure and arrival</h4>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.....</p>

    <h3>Day 1</h3>
    <h4>Departure and arrival</h4>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.....</p>

    <h3>Day 1</h3>
    <h4>Departure and arrival</h4>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.....</p>

</div>

我在yml文件中使用数据文件夹和循环,如下所示:

代码语言:javascript
复制
 {% for groups in site.data.tak-lampang %}
  <div class="span-4">
     {% for d in groups.day %}
       <h3>{{d.title }}</h3>
       <h2 class ="fi-marker">{{ d.direction }}</h2>
       <p>{{ d.description }}</p>
     {% endfor %}
  </div>
{% endfor %}

我的yml文件看起来像这样

代码语言:javascript
复制
- groups: 
    day:
       - title: "Day 1"
         direction: "A-B" 
         description: "Lorem ipsum......"
    day:    
       - title: "Day 2"
         direction: "B-C"
         description:"Lorem ipsum....."
    day:
       - title: "Day 3"
         direction: "C-D"
         description: "Lorem ipsum ...."

我的输出是

代码语言:javascript
复制
<div class ="span-4">
    <h3>Day 3</h3>
    <h4>C-D</h4>
    <p>Lorem ipsum...</p>
</div>

经过多次尝试,我现在有点卡住了。有人能指出我的错误在哪里吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-30 10:53:28

团体:日:

标题:“第一天”方向:"A-B“描述:"Lorem ipsum.”

标题:“第二天”方向:"B-C“说明:”Lorem ipsum.“

标题:“第三天”方向:“C”描述:"Lorem ipsum .“

试试这个

票数 0
EN

Stack Overflow用户

发布于 2014-10-30 11:36:30

两件事: yaml数据文件中的错误和小的重构

误差

为同一键分配三次值:

代码语言:javascript
复制
- groups: 
    day:
       - title: "Day 1"
         direction: "A-B" 
         description: "Lorem ipsum......"
    day:    
       - title: "Day 2"
         direction: "B-C"
         description:"Lorem ipsum....."
    day:
       - title: "Day 3"
         direction: "C-D"
         description: "Lorem ipsum ...."

groups.day只能有一个值,在本例中是第三天。

数据文件的正确组织可以是:

代码语言:javascript
复制
groups:
    days:
        - title:       "Day 1"
          direction:   "A-B"
          description: "Lorem ipsum......"

        - title:       "Day 2"
          direction:   "B-C"
          description: "Lorem ipsum....."

        - title: "Day 3"
          direction: "C-D"
          description: "Lorem ipsum ...."

重构

在您的循环中,您可以执行{% for groups in site.data.tak-lampang %}。这意味着您必须为每个目的地复制您的代码。如果有一天您想要更改html,则必须在每个文件中更改它。

最好将其抽象为包含模板。

1-数据

您的数据文件是tak-lampang.yml。见上面的代码。

2-旅游网页

旅游页面是tak-lampang.html或者你想要的任何东西。它包括:

代码语言:javascript
复制
---
title: Tak Lampang dream tour
layout: default
dataFile: tak-lampang
---

{% include destinationDisplay.html %}

就这样!

3-显示模板

现在显示模板_includes/destinationDisplay.html

代码语言:javascript
复制
<div class="span-4">
{% for day in site.data[page.dataFile].groups.days %}
    <h3>{{day.title }}</h3>
    <h2 class ="fi-marker">{{ day.direction }}</h2>
    <p>{{ day.description }}</p>
{% endfor %}
</div>

注意,获取正确数据的site.data[page.dataFile].groups.days取决于tak-lampang.html中的page.dataFile变量。

您现在可以在一个文件中更改显示代码,这有利于维护;-)。

和杰基尔一路顺风。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26650906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档