如何使用两个参数编写/调用自定义液体标签?带两个参数的自定义液体标签
语境:杰奇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 [*]”?