Amélioration de la page d'article

Ajout du title à la page d'article

Dans pages/posts/[id].js, ajoutons la balise title en utilisant les données de l'article. Vous devrez ajouter une importation pour next/head en haut du fichier et ajouter la balise title en mettant à jour le composant Post :

// Ajoutez cette importation
import Head from 'next/head';
 
export default function Post({ postData }) {
  return (
    <Layout>
      {/* Ajoutez cette balise <Head> */}
      <Head>
        <title>{postData.title}</title>
      </Head>
 
      {/* Conservez le code existant ici */}
    </Layout>
  );
}

Formatage de la date

Pour formater la date, nous utiliserons la bibliothèque date-fns. Tout d'abord, installez-la :

npm install date-fns

Ensuite, créez un fichier appelé components/date.js et ajoutez le composant Date suivant :

import { parseISO, format } from 'date-fns';
 
export default function Date({ dateString }) {
  const date = parseISO(dateString);
  return <time dateTime={dateString}>{format(date, 'LLLL d, yyyy')}</time>;
}

Remarque : Vous pouvez consulter les différentes options de chaîne format() sur le site date-fns.

Maintenant, ouvrez pages/posts/[id].js, ajoutez une importation pour le composant Date en haut du fichier, et utilisez-le à la place de {postData.date} :

// Ajoutez cette importation
import Date from '../../components/date';
 
export default function Post({ postData }) {
  return (
    <Layout>
      {/* Conservez le code existant ici */}
 
      {/* Remplacez {postData.date} par ceci */}
      <Date dateString={postData.date} />
 
      {/* Conservez le code existant ici */}
    </Layout>
  );
}

Si vous accédez à http://localhost:3000/posts/pre-rendering, vous devriez maintenant voir la date écrite sous la forme "1 janvier 2020".

Ajout de CSS

Enfin, ajoutons un peu de CSS en utilisant le fichier styles/utils.module.css que nous avons ajouté précédemment. Ouvrez pages/posts/[id].js, puis ajoutez une importation pour le fichier CSS et remplacez le composant Post par le code suivant :

// Ajoutez cette importation en haut du fichier
import utilStyles from '../../styles/utils.module.css';
 
export default function Post({ postData }) {
  return (
    <Layout>
      <Head>
        <title>{postData.title}</title>
      </Head>
      <article>
        <h1 className={utilStyles.headingXl}>{postData.title}</h1>
        <div className={utilStyles.lightText}>
          <Date dateString={postData.date} />
        </div>
        <div dangerouslySetInnerHTML={{ __html: postData.contentHtml }} />
      </article>
    </Layout>
  );
}

Si vous accédez à http://localhost:3000/posts/pre-rendering, la page devrait maintenant paraître un peu mieux :

Exemple

Excellent travail ! Nous allons maintenant améliorer la page d'index et nous aurons terminé !