2017-09-29 8 views
0

_data 폴더에 CSV 파일이 있는데, 내 Front Matter에 액세스하기 위해 CSV의 행을 지정하고 해당 행의 특정 행을 기반으로 CSV에서 특정 열을 반환하려고합니다. 서문. 여기 지킬 액체 배열 ID가 작동하지 않습니다.

CSV 파일입니다 :

name,description 
Dallas,Big City in Texas 

그리고 여기 내 index.html 파일의 내용입니다 : 데이터 파일을 사용하여

--- 
city: "Dallas" 
--- 

{{ site.data.data[page.city].description }} 

지킬 문서 페이지 당을,이 구문을 사용할 수 있어야합니다 이 방법으로 데이터 파일에 액세스 할 수 있지만 컴파일 된 HTML 파일에는 데이터가 포함되어 있지 않습니다.

CSV 파일 및 그 작업의 내용에 액세스하는 다른 방법을 테스트 했으므로 데이터 파일이나 사이트 자체에 문제가있는 것 같지 않고 [ ] 어레이 ID Liquid 구문을 사용하는 것이 좋습니다.

답변

0

해시 구조에 대해 [] 표기법을 잘못 이해 한 것처럼 보입니다. 나는

data.csv 조금 확장 있습니다 .. []가 작동하도록되어 방법에 대해 방향을 먼저합니다

name,description 
Dallas,Big City in Texas 
Houston,Another City in Texas 

을하고 "검사"당신의 위의 CSV 파일에서 얻은 데이터 객체,

사이트 구축에

{{ site.data.data | inspect }} 
, 당신은 결과 개체가 해시의 배열이 단순히 것을 볼 수 있습니다 :

,

즉, 색인 번호를 참조하여 개별 해시 항목에 액세스 할 수 있음을 의미합니다.

{{ site.data.data[0] }}은 첫 번째 해시를 제공하고 {{ site.data.data[1] }}은 다음 해시를 제공합니다. 당신은 데이터의 해시에 대한 [] 작품은 단순히 솔루션을 얻을 수 있습니다 방법을 알고 이제

<p> 
    Big City in Texas 
</p> 

:

따라서 {{ site.data.data[0].description }}는 당신에게 당신이 얻을 것으로 예상 결과를 제공 할 것입니다.

{% for entry in site.data.data %} 
    <div> 
    <span>{{ entry.name }}</span> : <span>{{ entry.description }}</span> 
    </div> 
{% endfor %} 

당신에게 줄 것이다 :

<div> 
    <span>Dallas</span> 
    <span>Big City in Texas</span> 
</div> 
<div> 
    <span>Houston</span> 
    <span>Another City in Texas</span> 
</div> 

이 배열의 요소에 액세스하려면, 하나는 단순히 배열 객체 참조 필요한 항목을 반복 할 수