Classement entre sections et pages #14

Merged
vincent merged 4 commits from classement into main 2 months ago
Owner

J'ai pu mettre en place une méthode pour classer sections et pages entre elles. Avec elle, si on veut les mélanger, on peut utiliser la variable weight_custom. Si toutes les pages et sous-sections d'une section ont cette variable définie, alors le classement mélangé s'opère. Sinon, toute reste comme avant.
J'ai mis une explication dans le README.

Pour exploiter la section [extra] dans les en-têtes, il a fallu toutes les passer dans la syntaxe officielle, avec des +++ au lieu des --- par exemple. Zola est sommairement compatible avec les en-têtes en ---, mais ceux avec +++ sont eux pleinement pris en charge avec toutes les fonctionnalités.
La principale modification est dans templates/_nav.html. Tout le reste a été fait avec des sed, à part pour le README.

image

J'ai pu mettre en place une méthode pour classer sections et pages entre elles. Avec elle, si on veut les mélanger, on peut utiliser la variable `weight_custom`. Si toutes les pages et sous-sections d'une section ont cette variable définie, alors le classement mélangé s'opère. Sinon, toute reste comme avant. J'ai mis une explication dans le README. Pour exploiter la section `[extra]` dans les en-têtes, il a fallu toutes les passer dans la syntaxe officielle, avec des `+++` au lieu des `---` par exemple. Zola est sommairement compatible avec les en-têtes en `---`, mais ceux avec `+++` sont eux pleinement pris en charge avec toutes les fonctionnalités. La principale modification est dans `templates/_nav.html`. Tout le reste a été fait avec des `sed`, à part pour le README. ![image](/attachments/b7e6b103-cf63-4473-a67e-2e6b57c1c404)
vincent added 4 commits 2 months ago
Owner

LGTM

LGTM
Owner

Cool ! C'était obligé de fonctionner avec une variable custom ou ça aurait pu aussi être fait avec la variable weight d'origine ?

Cool ! C'était obligé de fonctionner avec une variable custom ou ça aurait pu aussi être fait avec la variable `weight` d'origine ?
Poster
Owner

Cool ! C'était obligé de fonctionner avec une variable custom ou ça aurait pu aussi être fait avec la variable weight d'origine ?

À l'origine mon but (et la solution la plus efficace) était effectivement d'utiliser la variable weight, mais c'est impossible parce que Zola ne la transpose pas des en-têtes de pages jusqu'aux contextes des modèles Tera. En clair, dans ton modèle html, tu peux faire {{page.title}} pour afficher le titre de la page, parce que la variable title est importée par Zola; mais {{page.weight}} ne va pas marcher parce qu'une fois que Zola a classé les pages entre elles (et les sections entre elles), le poids est jeté à la poubelle. Le dev de Zola m'a fait comprendre qu'il trouvait ça très bien comme ça.

Utiliser la section [extra] dans les en-têtes pour importer des variables arbitraires est la seule solution que j'ai trouvé. Une fois cette demande fusionnée, j'ai l'intention de montrer le guide (et son code) au dev de Zola dans l'espoir de lui faire prendre conscience que les sections imbriquées c'est cool, et que simplement laisser la variable weight accessible à Tera ce serait super pratique. Si ça venait à arriver, j'en tirerai parti et annulerai tout ce contournement avec weight_custom.

Si demain ou après-demain il n'y a pas eu d'objection, je fusionnerai cette branche.

> Cool ! C'était obligé de fonctionner avec une variable custom ou ça aurait pu aussi être fait avec la variable `weight` d'origine ? À l'origine mon but (et la solution la plus efficace) était effectivement d'utiliser la variable `weight`, mais c'est impossible parce que Zola ne la transpose pas des en-têtes de pages jusqu'aux contextes des modèles Tera. En clair, dans ton modèle html, tu peux faire `{{page.title}}` pour afficher le titre de la page, parce que la variable `title` est importée par Zola; mais `{{page.weight}}` ne va pas marcher parce qu'une fois que Zola a classé les pages entre elles (et les sections entre elles), le poids est jeté à la poubelle. Le dev de Zola m'a fait comprendre [qu'il trouvait ça très bien comme ça](https://github.com/getzola/zola/issues/1984#issuecomment-1241884815). Utiliser la section `[extra]` dans les en-têtes pour importer des variables arbitraires est la seule solution que j'ai trouvé. Une fois cette demande fusionnée, j'ai l'intention de montrer le guide (et son code) au dev de Zola dans l'espoir de lui faire prendre conscience que les sections imbriquées c'est cool, et que simplement laisser la variable `weight` accessible à Tera ce serait super pratique. Si ça venait à arriver, j'en tirerai parti et annulerai tout ce contournement avec `weight_custom`. Si demain ou après-demain il n'y a pas eu d'objection, je fusionnerai cette branche.
Owner

C'est bon pour moi, merci beaucoup pour le travail @vincent !

C'est bon pour moi, merci beaucoup pour le travail @vincent !
vincent merged commit d695725647 into main 2 months ago
The pull request has been merged as d695725647.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/guide.deuxfleurs.fr#14
Loading…
There is no content yet.