使用无序列表在液体中按字母顺序排序.csv数据会产生一个空列表元素

时间:2016-02-26 15:27:42

标签: sorting csv liquid alphabetical

我已经设法按字母顺序为我的jekyll网站显示液体中的.csv文件中的数据,但我使用的代码只是在整个列表的开头添加了一个空<li>标记。在我看来,&#34;分裂&#34; filter负责输出的格式化,所以可能有一些东西。

这是我的液体代码:

---
layout: default
---
{% capture thelistings %}
  {% for listing in site.data.terminology %}
    {{ listing.term }}: {{ listing.definition }}
  {% endfor %}
{% endcapture %}
{% assign allsortedlistings = thelistings | split:"    " | sort %}

<ul>
{% for allterms in allsortedlistings %}
<li>{{ allterms }}</li>
{% endfor %}
</ul>

这是.csv数据文件:

term,definition
brother,new explanation for one
aunt,another explanation for two
uncle,"and last one for three, with the use of comma fin"
father,this is it
again,now it is here
utah,this is a state
borrow,something from someone
forbidden,fruit

这是输出列表:

        
  •     
  • 再次:现在就在这里
  •     
  • 阿姨:两个人的另一个解释
  •     
  • 借用:来自某人的东西
  •     
  • 兄弟:一个新的解释
  •     
  • 父亲:就是这样
  •     
  • 禁止:水果
  •     
  • 叔叔:最后一个三个,使用逗号fin
  •     
  • 犹他州:这是一个州

1 个答案:

答案 0 :(得分:0)

问题在于我输出数据的方式。在进行第一次{% capture %}时你必须​​按照希望输出格式化数据,在这种情况下我希望它是一个列表项,所以它应该看起来像<li>{{ listing.term }}: {{ listing.definition }}</li>,因此它包含在里面<li>元素,然后在{{ allterms }}内将<ul>分配为--- layout: default --- {% capture thelistings %} {% for listing in site.data.terminology %} <li>{{ listing.term }}: {{ listing.definition }}</li> {% endfor %} {% endcapture %} {% assign allsortedlistings = thelistings | split:" " | sort %} <ul> {% for allterms in allsortedlistings %} {{ allterms }} {% endfor %} </ul> 。所以最终的代码如下:

var data= {"password":"password","username":"xhinii"};

for(var prop in data) {
    document.querySelector('input[name = "' + prop + '"]').value = prop; 
    document.querySelector('input[name = "' + prop + '"]').setAttribute('placeholder', data[prop])
}