Maison  >  Article  >  développement back-end  >  Rendre conditionnellement plusieurs sections dans Hugo

Rendre conditionnellement plusieurs sections dans Hugo

WBOY
WBOYavant
2024-02-08 23:42:22950parcourir

在 Hugo 中有条件地渲染多个部分

Dans Hugo, il existe une fonctionnalité très utile pour restituer plusieurs pièces en fonction des conditions. Cette fonctionnalité nous permet d'afficher/masquer certaines parties de la page en fonction de situations ou de conditions spécifiques. Que nous construisions un site Web statique ou un site Web dynamique, cette fonction de rendu conditionnel peut nous aider à contrôler de manière plus flexible la façon dont la page est présentée. Dans cet article, je vais discuter avec vous de la façon d'implémenter le rendu conditionnel de plusieurs pièces dans Hugo et de ses scénarios d'utilisation.

Contenu de la question

Je souhaite afficher tous les fichiers markdown dans chaque dossier, à l'exception des fichiers statiques de la page d'accueil du site Web. Une solution consiste à utiliser union dans Hugo, mais à mesure que le nombre de dossiers augmente, j'ai constaté que je suis. répéter l'union partout (le code avec union est commenté et cela fonctionne d'ailleurs), donc j'ai pensé qu'utiliser des tranches serait une meilleure idée, mais lorsque j'essaie d'utiliser des tranches, j'obtiens l'erreur suivante -

Échec du rendu de la page : "accueil" Échec du rendu : "(chemin du répertoire)layoutsindex.html:12:19" : échec de l'exécution du modèle à 7f2a73d20e0f8951034640607a03fade: can'tvaluate field pages in type string.

{{ define "main" }}
<ul class="homepage-topic-sections-container">
    {{$sectionnames := slice "posts" "problems" "tutorials"}}
    {{range $index, $sectionname := $sectionnames}}
    {{ range where .pages "section" $sectionname }}
                   ^^^^^^

Une solution possible consiste à utiliser $. 访问全局上下文:.pages ==> $.pages.

Peut-être qu'une meilleure solution serait de répertorier la section des exclusions. Il n'est alors pas nécessaire de modifier le code lors de l'ajout de dossiers supplémentaires :

{{ define "main" }}
<ul class="homepage-topic-sections-container">
    {{ range where .Pages "Section" "!=" "static" }}
    <li>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer