11540 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,

J'utilise Jekyll et dans la doc il est expliqué que l'on peut faire des boucles avec le langage Liquid et que l'on peut aussi utiliser un "sort" comme filter, hors, je n'arrive pas à le faire fonctionner.

Voici ma boucle :

<section class="top-bar-section hide-for-print">
        <!-- Right Nav Section -->
        <ul class="right">
            {% for item in site.html_pages | sort: weight %}
                <li>
                    <a href="{{ item.url }}" {% if forloop.first %}class="active"{% endif %}>
                        {{ item.title }}
                    </a>
                </li>
            {% endfor %}
        </ul>
    </section>


Voici le YAML des pages :

---
layout: default
title: home
weight: 1
---


Après j'ai 2, 3 etc. pour les weight.

Avez-vous une idée du problème ?

Merci.
Je pense que tu dois d'abord effectuer ton tri, assigner le résultat à une nouvelle variable puis faire ta boucle ensuite.

{% assign pages = site.html_pages | sort : 'weight' %}
...
{% for item in pages %}

Modifié par LaJota (14 Dec 2014 - 04:33)
Ouais, alors malheureusement, ça ne marche pas. Plus rien n'est affiché, mon menu est vide...

Merci pour la réponse mais si tu as une autre idée, je prends Smiley smile
Tu peux copier/coller le code complet que tu as essayé ? Parce-que je suis a peu près sûr que ça doit fonctionner.
Ok, alors voici le code de la nav-bar (qui se trouve dans un fichier include) :

<div class="fixed">
    <nav class="top-bar" data-topbar role="navigation">
        <ul class="title-area">
            <li class="name">
                <h1>
                    <a href="index.html" class="action-menu-js action-menu-loc-home close-menu">
                        
                    </a>
                </h1>
            </li>
            <!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
            <li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
        </ul>

        <section class="top-bar-section hide-for-print">
            <!-- Right Nav Section -->
            <ul class="right">
                {% assign pages = site.html_pages | sort : 'weight' %}
                {% for item in pages %}
                    <li>
                        <a href="{{ item.url }}" {% if forloop.first %}class="active"{% endif %}>
                            {{ item.title }}
                        </a>
                    </li>
                {% endfor %}
            </ul>
        </section>
    </nav>
</div>


Dis moi si c'est bon pour toi. Si je met site.html_pages à la place de la var pages de la boucle for, ça affiche le menu non classé, là je n'ai rien.
Modifié par MagicCarpet (17 Dec 2014 - 15:25)