2017-03-22 7 views
1

私の_dataフォルダーに正しく動作しているデータがいくつか作成されました。私はそれを使用してナビゲーションシステムを作成しています。私のデータファイルelements.ymlデータ駆動型ナビゲーションでアクティブなクラスを設定する

:私の簡単なナビゲーションのために

- name: design-elements 

- name: ui-components 

- name: helper-classes 

page.url == {{data.name}}場合、私はactiveクラスを追加します。

{% for element in site.data.elements %} <li {% if page.url == '/{{ element.name }}.html' %} class="active"{% endif %}>

それ決しては私のページのNAVは{{element.name}}と同じであっても、trueに解決します。私はこのようなことを書いています。

私は明示的にこのようにそれを記述する場合、それは動作します:

<li {% if page.url == '/design-elements.html' %} class="active"{% endif %}>

なぜこれが起こっている私にはわかりません。

答えて

2

{{}}{%%}は機能しません。

ので、この:

<li {% if page.url == '/{{ element.name }}.html' %} class="active"{% endif %}> 

はそれらなしで書き直す必要があります。この場合、私はcaptureタグを使用しますが、それはまた、新しい文字列に結果のURLを割り当てて行うこととし、それを比較する:

{% capture new_url %}/{{element.name}}.html{% endcapture %} 
<li {% if page.url == new_url %} class="active"{% endif %}> 
+0

これは完璧に動作しますが、今、私はそれを使用して行うことができるか興味があります '割り当てます'、あなたが言及したように。 – justinw

+1

@justinwはappendを使っています。{%assign newurl = '/' | append:element.name | append: '.html'%} – marcanuy

+0

これも機能します。フォローアップのための負荷ありがとう! – justinw

関連する問題