Je sais comment définir la balise de titre et la métadescription de mon article et des pages de catégorie car elles proviennent d'une base de données, mais je ne trouve pas dans KeystoneJS où les mettre à jour pour les autres pages - Accueil, Blog, etc.
Vous trouverez ci-dessous le code du guidon que j'utilise pour mes métadonnées. Chaque page qui n'est pas une "publication" utilise les options finales Else en bas.
{{#if data.post}}
{{#if data.post.meta.title}}
<title>{{data.post.meta.title}}</title>
<meta property="og:title" content="{{data.post.meta.title}}">
<meta name="twitter:title" content="{{data.post.meta.title}}">
{{else}}
<title>{{data.post.title}}</title>
<meta property="og:title" content="{{data.post.title}}">
<meta name="twitter:title" content="{{data.post.title}}">
{{/if}}
{{#if data.post.meta.description}}
<meta name="description" content="{{data.post.meta.description}}">
<meta property="og:description" content="{{data.post.meta.description}}">
<meta name="twitter:description" content="{{data.post.meta.description}}">
{{else}}
<meta name="description" content="{{data.post.content.brief}}">
<meta property="og:description" content="{{data.post.content.brief}}">
<meta name="twitter:description" content="{{data.post.content.brief}}">
{{/if}}
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<meta property="og:image" content="{{data.post.image.url}}">
<meta name="twitter:image:src" content="{{data.post.image.url}}">
<meta property="og:url" content="{{data.post.fullPostUrl}}">
<meta name="twitter:url" content="{{data.post.fullPostUrl}}">
<meta property="article:published_time" content="{{data.post.publishedDate}}">
{{# each data.post.categories}}
<meta property="article:tag" content="{{name}}">
{{/each}}
{{else}}
<title>GENERAL TITLE</title>
<meta propery="description" content="GENERAL DESCRIPTION">
<meta property="og:image" content="{{baseUrl}}/images/logo.png">
<meta name="twitter:image:src" content="{{baseUrl}}/images/logo.png">
{{/if}}
Je peux voir par défaut que Keystone utilise la même valeur pour toutes les pages.
Je vous remercie!
Réponses:
1 pour la réponse № 1Si quelqu'un est curieux, j'ai pu accomplir cela en les chargeant directement depuis les itinéraires. Par exemple:
// Render the view
view.render("blog", {
title: "Blog",
description: "This is my blog meta description"
});