如何使用兩個參數編寫/調用自定義液體標籤?帶兩個參數的自定義液體標籤
語境:傑奇2.1.1
我有被呈現爲選項卡集某些頁面。我的頁面前面的問題被允許定義額外的標籤在一些網頁上,類似這樣的:
---
blah: blah
extra-tabs:
- A page: a-page.md
- Another page: other-page.md
---
我可以解決這個感謝Iterate over hashes in Liquid Templates。但是...
我有一個額外的限制:當呈現a-page.md時,顯示的標籤應該看起來不同(< li class =「active」> ...)。雖然這可以通過上面鏈接的技術解決,它的醜陋:
{% for extra_tab_hash in page.extra-tabs %}
{% for extra_tab in extra_tab_hash %}
{% if page.name == extra_tab[1] %}
<li class="active"><a href="#">{{extra_tab[0]}}</a></li>
{% else %}
<li><a href="{{ extra_tab[1] | in2out }}">{{extra_tab[0]}}</a></li>
{% endif %}
{% endfor %}
{% endfor %}
我還想寫替換條件的自定義標籤的if/else/ENDIF,是這樣的:
{% for extra_tab_hash in page.extra-tabs %}
{% for extra_tab in extra_tab_hash %}
{% mytab extra_tab[0] extra_tab[1] %}
{% endfor %}
{% endfor %}
我有兩個問題:
- MYTAB正在接收僅一個輸入端,通常稱爲文本,包含{%...%}中的所有內容,而我需要兩個單獨的值。我可以將標籤拆分(',')或其他東西,但還有其他問題?
- 它沒有被解釋:它實際上是「extra_tab [0] extra_tab [1]」。
所以:我如何誘使Liquid擴展引用「extra_tab [*]」?