Creación de una arquitectura simple para un blog
Los artículos del blog en nuestro ejemplo se almacenarán como archivos markdown locales en el directorio de nuestra aplicación (no se obtendrán de una fuente de datos externa), por lo que necesitaremos leer los datos del sistema de archivos.
En esta sección, veremos los pasos para crear un blog que lea datos markdown del sistema de archivos.
Creación de los archivos markdown
Primero, crea un nuevo directorio de primer nivel llamado posts
(no es lo mismo que pages/posts
) en tu carpeta raíz. Dentro de posts
, crea dos archivos: pre-rendering.md
y ssg-ssr.md
.
Ahora, copia el siguiente código en posts/pre-rendering.md
:
Luego, copia el siguiente código en posts/ssg-ssr.md
:
Puedes haber notado que cada archivo markdown tiene una sección de metadatos en la parte superior que contiene
title
ydate
. Esto se llama YAML Front Matter, que puede ser analizado usando una biblioteca llamada gray-matter.
Instalación de gray-matter
Primero, instala gray-matter que nos permite analizar los metadatos en cada archivo markdown.
Creación de la función utilitaria para leer el sistema de archivos
A continuación, crearemos una función utilitaria para analizar datos del sistema de archivos. Con esta función utilitaria, nos gustaría:
- Analizar cada archivo markdown y obtener
title
,date
, y el nombre del archivo (que se usará comoid
para la URL del artículo). - Listar los datos en la página de índice, ordenados por fecha.
Crea un directorio de primer nivel llamado lib
en el directorio raíz. Luego, dentro de lib
, crea un archivo llamado posts.js
, y copia y pega este código:
Nota:
No necesitas entender qué hace el código anterior para aprender Next.js, la función es para hacer que el ejemplo del blog sea funcional. Pero si deseas aprender más:
fs
es un módulo de Node.js que te permite leer archivos del sistema de archivos.path
es un módulo de Node.js que te permite manipular rutas de archivos.matter
es una biblioteca que te permite analizar los metadatos en cada archivo markdown.- En Next.js, la carpeta
lib
no tiene un nombre asignado como la carpetapages
, por lo que puedes nombrarla como quieras. Por convención se suele usarlib
outils
.
Obtención de los datos del blog
Ahora que los datos del blog están analizados, necesitamos agregarlos a nuestra página de índice (pages/index.js
). Podemos hacer esto con un método de obtención de datos de Next.js llamado getStaticProps()
. En la siguiente sección, aprenderemos cómo implementar getStaticProps()
.
¡Hagámoslo en la siguiente página!