La estructura del proyecto. De WordPress a Jekyll 5
Una de las dificultades que experimenté al intentar pasar de Worpress a Jekyll fue entender para que era cada componente y como interactuaban entre si. La solución la encontré cuando dejé de intentar crear mi blog desde cero y empecé a hacer ingeniería inversa a un tema desarrollado por otra persona. Las ventajas del código abierto.
Para comenzar, asumiendo que instalaste los requisitos previos que indicamos en los artículos anteriores, vamos a crear nuestro sitio. El ejemplo es un blog de jardinería.jekyll new blog_de_jardineria
Si vas a la carpeta vas a ver lo siguiente:
- Una carpeta llamada _posts.
- Dos archivos con extensión markdown
- Una página web.
- Un archivo de configuración con extensión .yml del que hablaremos extensamente en el próximo articulo.
- Un archivo Gemfile que lista los componetes del sitio y otro del mismo nombre pero con extensión .lock que evita que seh hagan modificaciones involuntarias.
La estructura del proyecto
Al igual que cualquier sitio basado en WordPress, Jekyll también crea una estructura de carpetas donde guarda todos los archivos, y lo hace por los mismos motivos. Permitir que el usuario agrupe los archivos de una manera ordenada yq a y, a medida que el proyecto crezca, siga siendo manejable.
La carpeta base la creamos con el comando jekyll new.
Dentro de ella encontramos dos tipos de carpetas; las que están relacionadas con la configuración del blog que se identifican con un guion delante del nombre (en nuestro caso la carpeta _post y las que tienen recursos que no se incluirán como parte del proceso de creación. Por ejemplo las que contienen imágenes.
Carpetas basadas en contenido
En este grupo se almacena contenido destinado a los visitantes del sitio
_ post
La carpeta _post contiene todas las entradas del blog. Aquí se utiliza un formato muy específico para cada uno de los archivos que se guardan en ella. El nombre del archivo debe estar en el formato de fecha-nombre de archivo — año-mes-fecha-nombre_archivo_completo.md — y esta fecha de publicación se mostrará como la fecha en la que se realizó esta publicación en el blog de Jekyll. Debemos tener en cuenta que aunque la carpeta se llame _ posts, aquí va todo el contenido que van a ver los lectores del blog, por ejemplo el formulario de contacto o las biografías de los autores. Más adelante veremos que es posible asignar distintos diseños a las páginas.
_drafts
Es el equivalente a guardar borrador de WordPress. Su uso recomendado es para los post que no están listos para publicarse aunque pueden usarse para almecenar listas de ideas, diseños para utilizar más adelante, etc.
_includes
En este espacio podemos almacenar código html que se puede reutilizar en varias ocasiones. Por ejemplo, en nuestro caso un banner que salude por el inicio de una estación dependiendo del hemisferio en el que esté el usuario.
_layouts
Como dijimos más arriba, diferentes partes del contenido pueden necesitar distintos diseños. Por ejemplo, para mostrar un video podemos quererer que la página sea a una sola columna, mienras que si se trata de un autor invitado necesitaríamos una columna para que se vea su biografía y datos de contacto. En esta carpeta se almacenan los distintos diseños que utiizará el sitio.
Carpetas de información
Estas dos carpetas son utilizadas por el sitio para su funcionamiento.
_data
En un blog unipersonal, el archivo de configuración puede almacenar todos los datos necesarios. Pero, si tenemos un blog con muchos autores se necesita otra forma de gestionar la información. La carpeta _data se utiliza para almacenar datos en formatos JSON o CSV que el sitio puede recuperar de acuerdo a la interacción con los usuarios.
_site
La carpeta _site la completa el sitio con toda la información disponible en las carpetas anteriores. Aquí encontraremos el sitio que subiremos al servidor para que puedan acceder los usuarios. Por supuesto que al tratarse de código html y css es posible realizarle modificaciones como a cualquier otro sitio web.
En el próximo articulo comenzaremos a modificar el archivo de configuración.