En este apunte vamos a dedicarnos a repasar cómo crear un sitio estático por medio del programa Pelican.
Una vez más, mi objetivo es dar un pantallazo general de la aplicación desde el momento en que es instalada hasta revisar sus funciones más básicas.
La idea es que nos pongamos a trabajar lo más rápido posible.
Ya en la ocasión anterior hice lo mismo cuando escribí sobre Jekyll, otra herramienta que se utiliza para la creación de este tipo de páginas web.
Entonces para no volver a repetirme demasiado, resumo algunos de los beneficios de un sitio estático con los siguientes puntos:
– Son más livianos, por lo que consumen menos recursos de almacenamiento y descarga.
– Se pueden mantener con menos esfuerzos, no requieren de bases de datos o actualizaciones periódicas.
– Son más seguro, y si algo se rompe no son complejos de reparar.
– Parecen volver a ponerse de moda cada diez años.
Se entienden como validas razones para estudiar todo esto. Por lo mismo, sin dar más vueltas…
¿Qué es Pelican?
Por si ya no te lo imaginabas, Pelican es un generador de páginas web estáticas.
Este programa funciona en base al lenguaje de programación Python. Es una primera gran diferencia con la aplicación Jekyll, que esta escrita en Ruby.
Es posible también crear nuevos temas para nuestra página web, y para esto se utiliza Jinja2, el lenguaje para planillas de Python. Pero hay también planillas ya existentes para poder empezar desde cero.
El asunto particular de la creación de la página web se resume a esto: Pelican hace la “estructura” del sitio. Luego escribimos publicaciones (o también llamados post) creadas en el lenguaje Markdown. El programa procesa las publicaciones , y las integra dentro del sitio final en HTML.
Las publicaciones también pueden estar escritas en reStructuredText en lugar de Markdown.
El sitio resultante se divide páginas y publicaciones. Un ejemplo de página es por mencionar algo la página de biografiás o la política de privacidad. Y las publicaciones se ordenan cronológicamente.
Realmente esta descripción es solo para resaltar que la estructura final de nuestro sitio no va a ser muy distinta a la estructura de un blog en WordPress: páginas, publicaciones individuales o posts y un orden cronológico de publicación.
Primero, instalar Python:
Para empezar, es necesario que tengas el interprete de Python3 (en adelante) instalado en tu equipo.
Si utilizás un sistema GNU/Linux, creo que lo necesario para interactuar con python ya viene instalado desde un primer momento. Pero puedo equivocarme.
Por eso, podes instalar python con el comando:
sudo apt install python3
Listo, con eso tendría que alcanzar. Y si ya se encuentra instalado, en ese caso te lo va a avisar.
Ahora bien, hay dos formas de utilizar (e instalar) Pelican.
La forma más sencilla se consigue realizando una instalación general de la aplicación.
Otra forma es realizando una instalación dentro de un entorno aislado, utilizando Python.
Siendo que la instalación recomendada es la segunda, voy a dedicar el resto de la entrada a esa.
Al usar este entorno virtual, nos evitamos realizar cambios globales. De este modo todas las librerías que descarguemos quedan “encerradas” dentro de ese contexto y no reciben modificaciones al hacer actualizaciones por fuera.
Cómo instalar Pelican dentro de un entorno aislado:
Escribí especialmente sobre cómo crear este tipo de entorno virtual de Python en esta otra entrada.
Pero con el objetivo de resumir, tengo que empezar utilizando este comando:
sudo apt install python3-virtualenv
Lo siguiente es crear el entorno virtual para Pelican. Lo hacemos poniendo en la terminal los siguientes comandos, alternativamente uno después del otro:
virtualenv ~/virtualenvs/pelican
cd ~/virtualenvs/pelican
source bin/activate
Cuando lo hagas vas a ver que en la terminal aparece la palabra (pelican) y que te movió a otro directorio (llamado ~/virtualenvs/pelican). Eso quiere decir que todo va funcionando y podemos continuar.
Instalar Pelican
Lo siguiente es instalar Pelican… finalmente.
Vamos a hacer esto agregando las dependencias con soporte para el lenguaje Markdown, que es el lenguaje que en el futuro va a ayudarnos para darle forma a las publicaciones.
El comando para instalar Pelican de este modo es:
python -m pip install "pelican[markdown]"
Hay que recordar que no estamos haciendo la instalación de forma global, la estamos haciendo dentro de un entorno virtual. Si lo estamos haciendo a nivel del sistema, seguramente vamos a tener que agregar “sudo” en el comando.
La documentación también recomienda agregar una librería para tener nuevas opciones tipográficas. Conseguimos esto con:
python -m pip install typogrify
Y listo, con eso tenemos Pelican instalado y listo para usar dentro de su entorno virtual.
Resolver error [Errno 13]
Es posible que al hacer la instalación de Pelican (o de algun otro conjunto de paquetes para Python) dentro de nuestro entorno virtual recibamos el siguiente error en la terminal:
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied:
Check the permissions.
Esto quiere decir que no tenemos permisos para instalar algo dentro del directorio al que estamos accediendo.
Lo que pudo haer ocurrido fue que utilizamos “sudo” al crear el entorno de este modo:
sudo virtualenv ~/virtualenvs/pelican
Pero no tenemos que suar sudo para evitar este problema, el comando es el que mencionamos al principio:
virtualenv ~/virtualenvs/pelican
Comenzar a utilizar Pelican:
Ahora vamos a crear un directorio para alojar el proyecto del blog. Lo hacemos dentro del mismo directorio donde nos encontramos, para que en su búsqueda coincida con el entorno virtual.
Siendo que en mi caso es un nuevo blog, una versión estática de este sitio, voy a llamarlo nuevoapunte y luego entrar a el:
mkdir nuevoapunte
cd nuevoapunte
Empezar nuestro sitio web estático:
Ahora dentro de la carpeta correcta, podemos crear la base de un nuevo provecto con el comando:
pelican-quickstart
Luego vienen algunas preguntas. Si, preguntas. Si no conocés la respuesta de alguna, simplemente dale enter y seguí adelante.
Son preguntas al estilo de “¿sabes cual va a ser la URL del sitio?” o “¿cual es el título del sitio?” y el objetivo de las respuestas es llenar automáticamente la información que va aparecer en los archivos que van a crearse.
Al terminar, vas a encontrar el siguiente árbol de directorio:
- Content: esta carpeta permanece sin elementos, pero podemos agregarle páginas y artículos luego.
- Makefile
- Output: guarda el sitio que fue generado en base al contenido.
- task.py
- pelicanconf.py: que contiene las especificaciones generales del sitio.
- publishconf.py: las especificaciones que se van a utilizar al momento de publicar.
Cómo crear una página en Pelican:
No es posible terminar de generar el sitio hasta haber creado un primer articulo o una página dentro del futuro website.
Aunque el término “página” es sinónimo del sitio web entero, en este caso me refiero a una de las páginas individuales dentro del sitio. Se trata de una página que no se ve afectada por la creacion de nuevos post, no es cronológica.
Cómo un ejemplo básico de estas páginas, vamos a crear una llamada “contacto”.
Primero nos movemos dentro de la carpeta content, que por ahora estaba vacía.
cd content
Y vamos a crear una carpeta llamada pages, que va a guardar todas nuestras futuras páginas individuales (política de privacidad, política de cookies, esas cosas)
mkdir pages
cd pages
Y ahora vamos a crear un documento sin formato para crear el archivo contacto. Para ello yo utilizo el programa nano:
nano contacto.md
El archivo se guarda con esa extensión por el lenguaje markdown.
Y para agregar algo de contenido rápido, copiamos:
Title: ¡contacto! Pronto voy a compartir los datos para que podamos mantenernos en contacto. ¡Esperás más información pronto!
El contenido de la página es solo ilustrativo, para que podamos ver el sitio terminado. Podemos guardar el archivo y cerrar el editor de texto.
Cómo ver nuestro primer sitio creado en Pelican
Ya casi terminamos.
Para ver una versión de prueba del sitio, volvemos a la carpeta principal de nuestro proyecto (en mi caso, llamada nuevoapunte) y usamos el comando:
pelican content
El sitio ahora fue guardado dentro del directorio output.
Acto seguido, para poder ver el sitio, escribimos el comando:
pelican --listen
El comando va a capturar la terminal. A modo de respuesta, nos va a dar una URL en el puerto :8000 para copiar en nuestro navegador de confianza.
Si copiamos ese link y lo pegamos en navegador, en la parte donde siempre aparecen las URL, vamos a poder ver una primera versión de este nuevo sitio.
No solamente vamos a encontrar la página “¡contacto!” que creamos, también vamos a tener el resto del tema básico que utiliza Pelican.
Si presionamos en la terminal Ctrl+c se va a interrumpir el comando en curso, liberando la terminal para seguir trabajando en el contenido del sitio.
Conclusión:
Con esto concluye mi apunte sobre cómo crear un sitio estático con Pelican.
Una vez más, al final del día esto no es más que mi propio recuento sobre la documentación del programa. Mezclado con mi experiencia al aprender a usarlo.
En otras oportunidades voy a revisar otros detalles de la aplicación: cómo agregar publicaciones, cómo aplicar nuevos temas y otras opciones que van a mejorar nuestro sitio estático.
De la misma forma que siempre, te pido que me avises si encontrás algún error en el texto. Cualquier comentario enviado por correo electrónico me ayuda a mejorar en lo que hago.
La seguimos una vez más… en el próximo apunte impensado.
hugovsky
Muy bueno! Es un excelente pantallazo inicial para aprender a usar Pelican! Ojalá puedas hacer más sobre este tema, es muy interesante! Saludos