Como crear un blog en 5 minutos

Con Pelican y Github Pages

¿Qué es Pelican?

Pelican es un generador de sitios web estáticos, escrito en Python, que no requiere ninguna base de datos o servidor. Algunas de sus características incluyen:

  • Podemos escribir nuestros artículos utilizando reStructuredText, Markdown, o formatos AsciiDoc.
  • Genera un sitio completamente estático, por lo que es sumamente fácil de albergar en cualquier lugar.
  • Posee temas para que podamos personalizar nuestro sitio a través de plantillas de Jinja.
  • Nos permite publicar nuestro contenido en varios idiomas.
  • Tiene soporte para Atom / RSS feeds; por lo que nuestro blog puede ser facilmente seguido a través de gestores de RSS.
  • entre otras.

Instalar Pelican) es realmente muy fácil, simplemente debemos ejecutar el siguiente comando:

sudo pip install pelican

¿Qué es Github Pages?

Github Pages son sitios publicados en la web que se encuentran hosteados directamente en un repositorio de Github. Van a tener una URL del tipo usuarioGithub.github.io.

Creando el repositorio

Para Poder utilizar Github Pages, debermos ingresar a nuestra cuenta de Github y crear un repositorio nuevo con el nombre usuarioGithub.github.io (el mismo nombre que va a tener la dirección web del sitio).

Clonando los repositorios blog_template y Github Pages

Una vez que ya tenemos nuestro repositorio creado, lo clonamos para poder generarle el contenido.

git clone https://github.com/usuarioGithub/usuarioGithub.github.io.git

También clonamos el repositrio blog_template, que va a tener la plantilla para poder crear el contenido más facilmente con Pelican. Esto lo hacemos con el siguiente comando:

git clone https://github.com/blogen5minutos/blog_template.git

Si no queremos usar este template, podemos crearnos una nueva carpeta y iniciar el sitio Pelican con el siguiente comando:

pelican-quickstart

Editando los archivos pelicanconf.py y publishconf.py

Las principales configuraciones que le van a decir a Pelican como crear nuestro sitio estan contenidas en el archivo pelicanconf.py. Adicionalmente también debemos tener en cuenta al archivo publishconf.py que va a tener configuraciones adicionales para la publicación final del sitio.

Si utilizamos el blog_template; basicamente lo que deberíamos cambiar del archivo son las variables SITENAME y SITESUBTITLE del arvhivo pelicanconf.py y la variable SITEURL del archivo publishconf.py.

Generando el contenido con Markdown

Para generar los artículos, debemos crear archivos de Markdown o de reStructuredText según nuestras preferencias. Un ejemplo con Markdown sería el siguiente:

Title: Mi Blog

Date: 2015-10-13

Category: Python

Tags: python

Author: Raul E. Lopez Briega

Este es un artículo de prueba para demostrar que fácil es crear un blog con [github pages](https://pages.github.com/).

Para más información visitar la documentación de Pelican

Generando contenido con Jupyter notebooks

Otra buena alternativa que tenemos para generar los artículos es utilizar Jupyter notebooks. Para realizar esto debemos utilizar el plugin liquid_tags.

Una vez habilitado este plugin en el archivo de configuración pelicanconf.py; podemos guardar nuestras notebooks en una subcarpeta llamada notebooks dentro de la carpeta contenty luego en lugar de escribir todo el contenido con del artículo con Markdown, utilizamos la siguiente sitaxis:

{% notebook filename.ipynb [ cells[start:end] ]%}

Un ejemplo, sería el siguiente:

Title: Batman, ecuaciones y python

Date: 2015-10-13

Category: Python

Tags: python, matematica, programacion, batman

Author: Raul E. Lopez Briega

{% notebook Batman.ipynb cells[2:] %}

Creando el sitio estático

Una vez que ya tenemos el proyecto de Pelican configurado y los artículos creados; para generar un sitio de prueba debemos ejecutar el comando:

make html

Esto va a generar una nueva carpeta, llamada output donde va a estar todo el contenido estático de nuestro sitio web. Podemos ver como nos quedó con el comando:

make serve

Y consultando la dirección localhost:8000.

Si esta todo ok, podemos crear la version definitiva para publicar con el comando:

make publish

Publicando nuestro sitio

Para publicar nuestro sitio, copiamos el contenido de la carpeta output a la carpeta usuarioGithub.github.io y hacemos el push del repositorio.

git add --all

git commit -m "publicando blog"

git push -u origin master

y listo! ahora ya podemos consultar nuestro sitio en la web en la direeción http://usuarioGithub.github.io.