--- title: Crea tu sitio web en texto plano layout: post excerpt: | Cómo construir tu sitio web en texto-plano con Jekyll, utilizando el mismo template que uso para texto-plano.xyz/~santisoler --- Quiero compartirles un tutorial para que puedan construir su propio sitio web en texto-plano utilizando el mismo template de Jekyll que desarrollé para mi propio sitio. Jekyll es un software que nos permite construir sitios web estáticos de manera muy sencilla, especialmente orientado a mantener blogs. Jekyll nos permite armar nuestro sitio web editando únicamente un archivo de configuración y creando contenido en Markdown, un lenguaje Markup muy sencillo de utilizar. Este programa parte del archivo de configuración y unas plantillas HTML y CSS, convierte tus archivos Markdown a HTML y compila el sitio web listo para su publicación. Lo que les comparto es un repositorio git (https://git.texto-plano.xyz/santisoler/website-template) que contiene un template con el cual podés armar tu sitio web tal y como está construido el mio, sin necesidad de editar más que el archivo de configuración y agregar tu contenido en archivos Markdown. Pueden leer el `README.md` alojado en el repositorio o bien seguir el tutorial que copio a continuación: ## Clonar el repositorio Comenzamos por clonar este repositorio utilizando `git`. Si estamos dentro de texto plano podemos clonarlo con: ``` git clone -b main /var/www/cgit_repos/santisoler/website-template.git mi-sitio-web ``` O si estamos en una máquina propia con: ``` git clone -b main https://git.texto-plano.xyz/santisoler/website-template mi-sitio-web ``` Entramos a la carpeta en la que clonamos el repositorio: ``` cd mi-sitio-web ``` Dentro de esta carpeta encontramos el código fuente para construir nuestro sitio web. ## Configurando el sitio Primero vamos a editar r el archivo `_config.yml`. Vamos a configurar el título del sitio y el nickname del autor: ``` title: ~santisoler author: ~santisoler ``` Dado que nuestro sitio en texto-plano no está alojado en el root del website, es necesario configurar el baseurl, que en general debe ser igual a una barra (`/`) seguida de nuestro nombre de usuario con el tilde: ``` baseurl: /~santisoler ``` Luego podemos editar el `index.md` para agregar contenido al home de nuestro sitio. Por ejemplo, podemos escribir algo acerca de nosotros y listar nuestros perfiles en la red. ### Añadiendo contenido Podemos añadir contenido a nuestro sitio web a través de archivos Markdown. Por ejemplo, si queremos añadir una nueva entrada a nuestro blog, debemos crear un archivo en `_posts` cuyo nombre esté compuesto por la fecha de publicación y luego un nombre sencillo, por ejemplo: ``` touch _posts/2021-03-22-mi-primer-posteo.md ``` Cada entrada del blog debe tener un header (en YAML) y luego el contenido (en Markdown). Por ejemplo: --- title: Mi primer posteo layout: post excerpt: | Este es un resumen de mi posteo --- Acá puedo escribir mi entrada del blog usando Markdown. Puedo armar listas: - un elemento - otro elemento O listas numeradas: 1. Primer elemento 2. Segundo elemento Con enlaces, por ejemplo a [Wikipedia](https://www.wikipedia.org). O bien podemos crear código: ``` echo "Aguante texto-plano" ``` ### Clasificar los posts en categorias Este template nos permite clasificar nuestras entradas de blogs en categorías o secciones. Por ejemplo, supongamos que vamos a mantener dos categorías: `Blog personal` y `Tutoriales`. A la hora de escribir una nueva entrada del blog, vamos a especificar la categoría a la cual este pertenece a través del parámetro `categories`. Por ejemplo, creamos un post para nuestro `Blog personal`: --- title: Mi primer posteo layout: post categories: Blog personal excerpt: | Este es un resumen de mi posteo --- Y otro para la sección `Tutoriales`: --- title: ¿Cómo usar Jekyll? layout: post categories: Tutoriales excerpt: | Este es mi tutorial --- No nos olvidemos de editar nuestro `_config.yml`, activando las categorías en el home: ``` # Split the blog posts in categories show_categories: true ``` Cuando construyamos el sitio, nuestro home mostrará todos los posts del blog, pero divididos en sus correspondientes categorías. ## Construir el sitio Una vez que generamos contenido nuevo, vamos a proceder a construir el sitio web. Esto lo debemos hacer a través de Jekyll. Si estamos dentro de texto-plano, podemos ejecutar: ``` jekyll26 build ``` Si instalaste `jekyll` a través de `bundler` en tu computadora, podés usar: ``` bundle exec jekyll build ``` Estos comandos generarán una carpeta `_site` que contiene todos los archivos necesarios para servir nuestro sitio web. ## Servir el sitio localmente Si estás modificando tu sitio desde tu computadora, podés ver una cómo va quedando sirviéndolo localmente con: ``` bundle exec jekyll serve ``` Jekyll te dará una url a través de la cual vas a poder visualizar tu sitio web. ## Servir el sitio en texto-plano Lo único que queda es publicar el sitio web para que todes puedan acceder a él. Para ello debemos copiar todos los archivos de la carpeta `_site` en `~/public_html/`: ``` cp -r _site/* ~/public_html/ ``` A veces será necesario quitar el sitio web viejo que está siendo servido y reemplazarlo por el nuevo: **USAR ESTE COMANDO CON CUIDADO!** ``` rm -r ~/public_html/* cp -r _site/* ~/public_html/ ``` Recuerda que cada vez que creemos una nueva entrada de nuestro blog o hagamos cualquier modificación a nuestro sitio, lo haremos en los archivos ubicados en `mi-sitio-web`. Mientras que el contenido de `~/public_html` solo será aquel que cree automáticamente Jekyll. Es por eso que es importante que **guardes copias de la carpeta `mi-sitio-web`**. Si sabes usar `git` para gestionar repositorios, puedes utilizarlo para gestionar los cambios de tu sitio web. ## Licencia El template se encuentra bajo [Licencia Creative Commons Atribución 4.0 Internacional][cc-by]. [cc-by]: https://creativecommons.org/licenses/by/4.0/deed.es ## Comentarios Si encontraste algún error, los pasos anteriores no te funcionaron, tuviste alguna dificultad o te gustaría colaborar con el template, sentite libre de escribirme a santisoler arroba texto-plano.xyz