Creando un Blog con Pelican y Github pages
Compartir el conocimiento es algo muy importante, quien no alguna vez, encontró exáctamente lo que estaba necesitando con una simple consulta en google. Todo el avance tecnológico y científico de nuestra civilización se sustenta sobre la base de un conocimiento compartido, que va creciendo con el aporte de cada uno. Además en ultima instancia, todos, incluso el más callado de nosotros, siempre tiene algo para decir; y que mejor forma de decirlo que a través de un blog en internet; dónde podemos llegar con facilidad a miles de personas!.
En este artículo me propongo mostrasles lo fácil que es hoy en día crear un blog en internet; ni siquiera necesitamos contratar un servicio de hosting o tener nuestro propio dominio de internet; lo único que vamos a necesitar es una herramienta de generación de blogs estáticos como Pelican y un usuario en la plataforma de desarrollo colaborativo Github. Veremos que no nos llevará más que 5 minutos pasar de no tener nada a tener un hermoso blog adaptable y con soporte para latex con mathjax publicado en la web!
Instalando Pelican
En primer lugar, lo que debemos hacer es instalar 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 sititio 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:
1 |
sudo pip install pelican |
Creando un repositorio de Github Pages
Una vez que ya tenemos instalado Pelican, podemos pasar al siguiente paso, el cual consiste en crear un repositorio de Github pages. Para esto, lo que debemos hacer es ingresar a nuestra cuenta de Github y crear un nuevo repositorio con el nombre USUARIO.github.io, en dónde el termino USUARIO va a ser el nombre de usuario de nuestra cuenta de Github. En el caso de mi ejemplo, como mi usuario se llama blogen5minutos, mi repositorio se va llamar entonces blogen5minutos.github.io. Esta va a ser luego la dirección web para nuestro sitio.
Generando nuestro sitio
Ahora que ya tenemos también nuestro repositorio de Github pages, solo nos falta generar nuestro sitio web. Para realizar esto, en primer lugar vamos a clonar el repositorio USUARIO.github.io que acabamos de crear para tenerlo localmente en nuestro equipo, esto lo hacemos con el siguirnte comando:
1 |
git clone https://github.com/blogen5minutos/blogen5minutos.github.io.git |
Ahora ya tenemos la version local de nuestro sitio, pero antes de pasar a generarle el contenido; debemos primero clonar otro repositorio con el template de lo que será nuestro blog; esto lo hacemos ejecutando el siguiente comando:
1 |
git clone https://github.com/blogen5minutos/blog_template.git |
Ahora, si entramos en esta última carpeta que creamos, veremos que existen varios archivos, la carpeta “pelican-octopress-theme” es la que incluye el tema que vamos a utilizar para nuestro sitio; la carpeta “pelican-plugins” incluye los complementos de Pelican que vamos a utilizar para agregar funcionalidades a nuestro sitio (como por ejemplo la posibilidad de publicar utilizando un jupyter notebook). Luego tenemos la carpeta “content” que es dónde vamos a escribir nuestros artículos; y por último, tenemos varios archivos, de los cuales los más importantes son el que se llama “pelicanconf.py” que es dónde vamos a realizar las configuraciones de como Pelican debe generar nuestro sitio; y el archivo “publishconf.py”, donde le vamos a ingresar la URL de nuestro sitio, que no es ni más ni menos que la dirección de nuestro repositorio de Github pages.
Basicamente lo que deberían cambiar de la configuración por defecto que ya viene en el template son las variables SITENAME y SITESUBTITLE con el nombre que le quieran poner a su sitio y luego en el archivo “publishconf.py”, la variable SITEURL.
Una vez que ya tenemos todas estas configuraciones, podemos ingresar a la carpeta “content” y comenzar a escribir nuestros artículos; lo único que debemos hacer es generar un archivo Markdown y comenzar a escribir!
Ahora que ya tenemos contenido, es tiempo de publicar!, para hacer que Pelican genere nuestro sitio estático propiamente dicho, volvemos a la carpeta “blog_template” y ejecutamos el siguiente comando:
1 |
make publish |
Esto nos va a generar una nueva carpeta llama “output”, la cual va a contener todos los archivos de nuestro sitio. Ahora simplemente copiamos todo el contenido de esta carpeta en la carpeta de nuestro repositorio de Github pages (USUARIO.github.io).
Por último, hacemos el commit de los cambios y los enviamos a Github, con un push.
1 2 3 |
git add . git commit -m "adding blog" git push |
Listo!, ahora si ingresamos a la URL http://blogen5minutos.github.io , podemos ver nuestro blog en línea!
Dentro del template tambien van a poder encontra un ejemplo de como publicar un jupyter notebook, eso se los dejo para se entrengan revisandolo ustedes!.
Como podemos ver, generar un blog es muy simple y rápido. Este es el método que utilice para crear mi nuevo blog http://relopezbriega.github.io/, que los invito a visitar, sobre todo si les gusta las matemáticas, el analisis de datos y Python!.
Espero les haya sido util, y a animarse a compartir su conocimiento en internet! 😉
Saludos
Hola Raul!
Bueno, primero, nuevamente felicitarte por tu trabajo. Vi tu otro blog y me dieron ánimos de compartir mi trabajo con el mundo 🙂
Te cuento: primero, he tenido dos problemas, los cuales creo que se han disparado producto del tiempo que ha pasado entre esta entrada y la actual fecha:
En los scripts “pelicanconf.py” y “publishconf.py” hay que agregar las siguiente líneas:
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)
Ya que tiene problemas con la lectura de carácteres.
Además, para que aparezca la página, es necesario crear otra rama (bueno, creo. Eso es lo que he entendido entre ayer y hoy):
git branch gh-pages
git push origin gh-pages
Al final, siguiendo tu tutorial y haciendo estas modificaciones, he publicado la página, pero el theme se ve mal. Este es el link: https://nicomedinap.github.io/prueba.github.io/
Te podrás dar cuenta que tiene casi todo lo que tú pusiste en la prueba, pero no sigue el template. En realidad yo no sé mucho sobre html, pero pretendo aprender, así que si me dices por dónde podría estar el problema de este desorden. te lo agradecería 🙂
Saludos desde Chile!
Nicolás.
Hola Nicolas,
El error de utf8 es raro, ya que en los archivos tiene explicito en las primeras lineas cual es el encoding que tiene que utilizar; pero bueno, con la moficación que hiciste eso se arregla.
En realidad para que aparezca la pagina no necesitas otra rama, con un repositorio que se llame con tu usuario.github.io y subir los archivos del output de pelican allí alcanza.
Por último, la prueba que hiciste no te esta tomando el template, porque tenes mal la url en el link al template.
Tu url es en realidad https://nicomedinap.github.io/prueba.github.io/;
Esto se debe a que seguramente tengas mal la constante SITEURL en el archivo publishconf.py
Espero te haya podido servir de ayuda.
Saludos,
Raúl