55 votes

Itérer sur les hachages dans les modèles liquides

J'écris un site en Jekyll, qui utilise Liquid.

J'ai l'avant-propos des pages que j'aimerais ressembler à ceci :

 ---
title: Designing algorithms that scale horizontally
speaker: Luke Ehresman, CopperEgg
category: notes.mongodallas.talks
links:
 - demo: http://www.github.com/copperegg/mongo-scaling-demo
layout: talknotes
---

Dans Liquid, la section des liens de YAML se présente comme suit :

 [{'demo' => 'http://www.github.com/copperegg/mongo-scaling-demo' }]

J'aimerais pouvoir parcourir le tableau, en faisant quelque chose comme ceci:

 <a href="{{ link.value }}">{{ link.key }}</a>

Mais toutes les idées que j'ai eues jusqu'à présent m'ont échoué.

113voto

kikito Points 23229

Lorsque vous parcourez un hachage à l'aide d'une variable appelée hash , hash[0] contient la clé et hash[1] contient la valeur à chaque itération.

 {% for link_hash in page.links %}
  {% for link in link_hash %}
    <a href="{{ link[1] }}">{{ link[0] }}</a>
  {% endfor %}
{% endfor %}

25voto

yegor256 Points 21737

Je les définirais comme ceci en YAML :

 links:
  demo: http://www.github.com/copperegg/mongo-scaling-demo

Et puis itérer :

 {% for link in page.links %}
  <a href="{{ link[1] }}">{{ link[0] }}</a>
{% endfor %}

0voto

Edward Points 1100
  {% for link in page.links %}
      {% for item in link %}
        <a href="{{ item[0] }}">{{ link[1] }}</a>
      {% endfor %}
    {% endfor %}

J'ai eu un problème très similaire, mais j'avais plusieurs éléments dans ma variable, j'ai donc utilisé la variable non documentée item et cela a fait le travail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X