Grav - Pages

Dans ce chapitre, étudions les Grav Pages. Les pages peuvent être définies comme des éléments constitutifs du site. Les pages combinent contenus et navigations; cela facilite le travail même pour les utilisateurs inexpérimentés.

Pour commencer, dites-nous comment créer une page simple. Tous les contenus utilisateur seront stockés soususer/pages/dossier. Il n'y aura qu'un seul dossier appelé01.home. La partie numérique du dossier est facultative; il exprime l'ordre de vos pages (par exemple, 01 viendra avant 02) et informe explicitement Grav que cette page doit être visible dans le menu.

Voyons maintenant comment créer une nouvelle page.

Step 1 - Créez un dossier sous /user/pages/; par exemple, 02.about comme indiqué dans la capture d'écran suivante.

Step 2 - Créez un fichier appelé default.md à l'intérieur du nouvellement créé 02.about dossier avec le contenu suivant.

---
title: About Us
---

# About Us Page!

This is the body of **about us page**.

Le code ci-dessus utilise certains Markdownsyntaxe expliquée brièvement ci-dessous. Vous pouvez étudier en détail surMarkdowndans le chapitre Markdown .

  • Le contenu entre les indicateurs --- est le Page Headers.

  • # ou hashes syntaxe dans Markdown indique un titre qui sera converti en <h1> en-tête en HTML.

  • ** les marqueurs indiquent du texte en gras ou <b> en HTML.

Step 3 - Rechargez votre navigateur et vous pouvez voir une nouvelle page dans le menu comme indiqué dans la capture d'écran suivante.

Types de pages

Grav Pages prend en charge 3 types de pages -

  • Page standard.
  • Page de liste.
  • Page modulaire.

Page standard

Les pages standard sont les types de pages les plus élémentaires tels que les articles de blog, les formulaires de contact, les pages d'erreur, etc. Par défaut, une page est considérée comme une page standard. Vous êtes accueilli par une page standard dès que vous téléchargez et installez le package Base Grav. Vous verrez la page suivante lorsque vous installerez le package Base Grav.

Page de liste

La page de liste est une extension d'une page standard qui a une référence à une collection de pages. Le moyen le plus simple de configurer la page de liste est de créer des pages enfants sous la page de liste. Une page de liste de blog en est un bon exemple.

Un exemple de squelette de blog avec une page de liste se trouve dans les téléchargements Grav . Un exemple est montré dans la capture d'écran suivante.

Page modulaire

La page modulaire est une forme de page de liste qui construit une seule page à partir de ses pages enfants. Cela nous permet de créer des mises en page d'une page très complexes à partir de pages de contenu modulaires plus petites. Cela peut être réalisé en créant la page modulaire à partir de plusieurs dossiers modulaires trouvés dans le dossier principal de la page.

Un exemple de squelette d'une page utilisant une page modulaire peut être trouvé dans les téléchargements Grav . Un exemple est montré dans la capture d'écran suivante.

Dossiers

le /user/pagesLe dossier contiendra le contenu de leurs pages respectives. Les dossiers à l'intérieur du/user/pagesLes dossiers sont automatiquement traités comme des menus par Grav et utilisés à des fins de commande. Par exemple, le01.homele dossier sera traité comme home. La commande doit également être maintenue, c'est-à-dire que 01.home viendra avant 02.environ.

Vous devez fournir un point d'entrée afin qu'il spécifie le navigateur où aller lorsque vous pointez le navigateur vers la racine de votre site. Par exemple, si vous entrez http://monsite.com dans votre navigateur, Grav attend un aliashome/ par défaut, mais vous pouvez remplacer l'emplacement du domicile en modifiant le home.alias option dans le fichier de configuration Grav.

Soulignez (_) avant que le nom du dossier ne soit identifié comme Modular folders, qui est un type de dossier spécial destiné à être utilisé uniquement avec un contenu modulaire. Par exemple, pour le dossier tel quepages/02.about, slug serait par défaut aboutet l'URL sera http://monsite.com/about.

Si le nom du dossier n'est pas précédé de chiffres, cette page est considérée comme invisible et ne sera pas affichée dans la navigation. Par exemple, le ifuser/pages/ a /contactdossier, ne sera pas affiché dans la navigation. Cela peut être remplacé dans la page elle-même dans la section d'en-tête en définissant visible sur true comme indiqué ci-dessous pour le rendre visible dans la navigation.

---
title: contact
visible: true
---

Par défaut, une page est visible dans la navigation si les dossiers environnants ont des préfixes numériques. Les valeurs valides pour définir la visibilité sont true ou false.

Commande

Il existe de nombreuses façons de contrôler l'ordre du dossier, l'un des moyens importants est de définir content.order.bydes paramètres de configuration de la page. Les options sont listées ci-dessous.

  • default - Le système de fichiers peut être utilisé pour la commande, c'est-à-dire 01.home avant 02.about.

  • title - Le titre peut être utilisé pour la commande qui est définie dans chaque page.

  • date - La commande peut être basée sur la date qui est définie dans chaque page.

  • folder - Le nom de dossier composé de n'importe quel préfixe numérique, par exemple 01., sera supprimé.

  • basename - L'ordre est basé sur le dossier alphabétique sans ordre numérique.

  • modified - L'horodatage modifié de la page peut également être utilisé.

  • header.x - N'importe quel champ d'en-tête de page peut être utilisé pour la commande.

  • manual - Il est possible de faire un classement des variables order_manual.

  • random - La randomisation de votre commande peut également être effectuée.

L'ordre manuel est spécifiquement défini en fournissant une liste d'options au content.order.customparamètre de configuration. Vous pouvez définir lepages.order.dir et le pages.order.by options pour remplacer le comportement par défaut dans le fichier de configuration du système Grav.

Fichier de page

La page à l'intérieur du dossier de page doit être créée comme .mdfichier, c'est-à-dire un fichier au format Markdown; c'est une démarque avec le front matière de YAML. ledefaultsera le nom standard du modèle principal et vous pouvez lui donner n'importe quel nom. Un exemple de page simple est présenté ci-dessous -

---
title: Title of the page
taxonomy:
   category: blog page
---
# Title of the page

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque porttitor eu
felis sed ornare. Sed a mauris venenatis, pulvinar velit vel, dictum enim. Phasellus
ac rutrum velit. **Nunc lorem** purus, hendrerit sit amet augue aliquet, iaculis
ultricies nisl. Suspendisse tincidunt euismod risus. Nunc a accumsan purus.

Le contenu entre les marqueurs --- est connu sous le nom de frontal YAML et ce frontal YAML se compose de paramètres YAML de base. Dans l'exemple ci-dessus, nous définissons le titre et la taxonomie de la page de blog. La section après la paire de marqueurs --- est le contenu réel que nous voyons sur notre site.

Taille du résumé et séparateur

La taille par défaut du résumé peut être définie dans site.yaml utilisé via page.summary(). Ceci est utile pour les blogs où seules les informations résumées sont nécessaires et non le contenu de la page entière. Vous pouvez utiliser lemanual summary separator aussi connu sous le nom summary delimiter: === et assurez-vous de le mettre dans votre contenu avec des lignes vierges au-dessus et en dessous, comme indiqué ci-dessous.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.

===

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum."

Le texte au-dessus du séparateur sera utilisé lorsqu'il est référencé par page.summary() et le contenu complet lorsqu'il est référencé par page.content().

Recherche d'autres pages

Grav a une fonction appelée find() méthode pour trouver une autre page et effectuer des actions sur cette page.

Par exemple, si vous souhaitez répertorier tous les emplacements de l'entreprise sur une page particulière, utilisez la règle de démarque suivante:

# Locations 
<ul>
   {% for loc in page.find('/locations').children if loc != page %}
      <li><a href="{{loc.url}}">{{ loc.title }}</a></li>
   {% endfor %}
</ul>