在Jekyll中使用数据的正确方法

时间:2015-09-07 08:54:37

标签: html5 jekyll liquid

目标是使用特定页面中前端部分中定义的变量。

这是我的文件系统结构:

_Components

  • c1.html
  • c2.html

这里我已经定义了前面的属性。

_Includes>部件

  • c1.html

这里我想使用循环来引用_Components>中定义的变量。 c1.html页面。

我如何实现这一目标?

在我的_Includes>组件> c1.html我有以下代码:

<body class="full">
    {% assign fullcomponents = site.components %}
        {% for component in fullcomponents | where:"title","c1html" %}
        {% component.title %}
    {% endfor %}
    <div class="container-fluid" id="componentscontainer">
        <div class="col-md-12">                 
            <div class="panel panel-primary" id ="panelcomponentlarge">
                <div class="panel-heading" >
                    Chart C3 Line
                </div>
etc...

当然,我错过了一些琐碎的事情。

第二次尝试

我发现我可以为此提供数据层,因此我尝试将此信息拆分为新的数据文件。

这里是components.json的内容

   {

    "Components": [
    "ChartC3Line":{
            "component":"ChartC3Line",
            "description":"This is an attempt"

        },
        "ChartC3Lines":{
            "component":"ChartC3Lines",
            "description":"This is an attempt"

        }
    ]

}

我试图通过以下代码获取此信息:

    {% assign comp = site.data.components.Components[ChartC3Line] %}   

        HTML:

                        {% highlight html linenos%}

                            <p> Description: {{ comp.description }} </p>

但任何事情都会出现。

第三次尝试 我找到了一个解决方案,但我根本不喜欢这里的新json文件

{

    "ChartC3":[ 
        {
            "component":"ChartC3Line",
            "description":"This is an attempt"

        }],
    "ChartC4":[ 
        {
            "component":"ChartC3Line",
            "description":"This is an attemptSSSSSSS"

        }]


}

我不想拥有一个元素的几个数组的对象! 这里是检索正确信息的代码:

{% assign comp = site.data.components.ChartC4[0] %}   

            HTML:

                            {% highlight html linenos%}

                                <p> Description: {{ comp.description }} </p>

1 个答案:

答案 0 :(得分:0)

<强>解决 遵循json文件的结构,我以更简单的方式更改了我的结构:

{

"ChartC3":
    {
        "component":"ChartC3Line",
        "description":"This is an attempt"

    },
"ChartC4": 
    {
        "component":"ChartC3Line",
        "description":"This is an attemptSSSSSSS"

    }

} 现在我可以轻松访问正确的对象。

{%assign comp = site.data.components.ChartC3%}

        HTML:

                        {% highlight html linenos%}

                            <p> Description: {{ comp.description }} </p>