Pelican: Generador de contenidos estáticos

Autor: Armonth | El viernes 06 de abril del 2012 @ 15:00.

Como lo prometido es deuda. Paso a comentar el CMS que sustituirá a WordPress en este blog: Pelican.

Pelican es un generador de contenidos estáticos creado con Python por Alexis Métaireau y orientado a la creación de blogs. Como curiosidad, Pelican es el anagrama de "Calepin". Cuaderno de notas en fránces. Lo cual no es casual tal como relata su autor (también de origen fránces).

Funcionamiento

El funcionamiento es sencillo:

  1. Escribes, con tu editor preferido, una entrada directamente en Markdown (o Reestructured Text).
  2. Utilizas Pelican vía comandos y se regenera el blog.
  3. El blog regenerado es sacado a dónde tu digas.

O usando el esquema que hizo su autor en el 2011 (que lo deja mucho más claro):

Pelican Scheme

Como el blog es contenido estático (y por defecto utiliza URLs relativas aunque yo lo puse como absolutas) puedes alojarlo directamente donde quieras. Incluso puedes guardarlo en un pendrive y llevarte el blog contigo. Para un auténtico "cuaderno de notas" viene genial.

Características

Traduciendo y extendiendo la página del proyecto:

  • Soporta entradas y páginas simples (fuera del orden lógico de un blog)
  • Soporta por defecto comentarios (usando un servicio de terceros: DISQUS).
  • Soporta temas (usando jinja2).
  • Permite, opcionalmente, generar PDFs con las entradas y las páginas.
  • Feeds RSS/Atom.
  • Importado RSS de WordPress y DoctClear.
  • Integración con herramientas como Twitter y estadísticas como Google Analytics o Piwik.

Aparte de lo obvio que no dice: que las entradas se escriben en RST / Markdown, se pueden clasificiar los contenidos por categorías, por archivos o por etiquetas. Hacer paginación de artículos o traducciones, etcétera.

El futuro de Pelican

Pelican es un proyecto joven. Pero poco a poco, está cosechando éxitos debido a todo lo anterior y que genera el contenido muy rápido (mil y pico entradas con sus archivos, sus feeds y tal se generan en menos de medio minuto).

Uno de esos éxitos ha sido Calepin.co. Este sitio es un desarrollo aparte que, como si de un "WordPress.com" se tratase, encontró en Pelican + DropBox una forma muy sencilla de crear blogs sin requerir hosting. Básicamente lo que haces es asociar DropBox y Calepin.co, DropBox almacena los ficheros .md (ficheros de texto con formato Markdown) y se generan con Pelican/Calepin.

Dejando aparte Calepin, el desarrollo de Pelican estuvo un poco parado un par de meses reciéntemente. Esto es debido al nuevo trabajo de Métaireau (entró en Mozilla). Pero una breve ojeada a la lista de Commits con sus actualizaciones casi diarias y que hace poco sacaran la versión 2.8 de Pelican dejan claro que la cosa va viento en popa.

Además es software libre (GNU GPL Affero). Por lo que invito a todo aquel que tenga conocimientos de Python, tiempo y ganas a colaborar. Alexis suele ser muy receptivo a recibir "commits" vía GIT e incorporar las mejoras al proyecto principal.

Y, por cierto, también se puede alojar el contenido de Pelican en GitHub.

¿Ventajas?

Aparte de las ventajas obvias de un sitio estático, veamos otras ventajas de esta solución frente a otras más clásicas como WordPress:

  • Actualizas cuando quieres. Y no cuando salen problemas y corriendo que te pilla el toro. Puedes tener "el CMS desactualizado" (sea por vagancia o porque las nuevas versiones no te gusten). Incluso puedes borrarlo o usarlo offline y subir los cambios por FTP (aunque esto sea "muy años 90").

    Y es que hubo una época que había más actualizaciones de WordPress que entradas escribía (y eso que escribía más a menudo que ahora).

  • Más resilente. En un proyecto básico que use LAMP pueden fallar las cuatro cosas. Los ficheros son guardados en ficheros de texto normales, dentro de sus directorios. Por lo que te ahorras de golpe y para siempre todos los problemas de las bases de datos. También te ahorras todos los problemas con lenguajes de programación. Y los problemas de BD que puedan surgir relacionados a Disqus de todas formas no joden (ni pueden) el sitio.

    Así que muchos de los factores que pueden hacer fallar el sitio quedan anulados. Y de los que no quedan anulados son cosas que escapan a mi control (hosting, conectividad de la red, etcétera).

  • Menor gestión de usuarios y contraseñas. Utilizo una contraseña (+ usuario) distinta para cada cosa. En todos los sitios que visito. Incluso tengo mi propio algoritmo para generar las contraseñas a partir del nombre del sitio y un nivel de "importancia" (no es igual de prioritario el usuario de un foro al usuario de PayPal). Así que tener que lidiar con menos usuarios y contraseñas se agradece:

     :::text
     Antes                                      Después
     Usuario Gestión Dreamhost                  Usuario Gestión Dreamhost
     Usuario SSH/SFTP                           Usuario SSH/SFTP
     Usuario htpasswd (proteger /wp-admin)
     Usuario "Admin" de WordPress
     Usuario "Normal" de WordPress
     Usuario de la BBDD MySQL
    

¿Desventajas?

  1. No tiene todo lo que tiene WordPress aunque no es nada que eche en falta.

  2. Las desventajas de contenido estático vs dinámico (aunque, nuevamente, no echo en falta nada).

  3. Destacar el poder gestionar entre varios usuarios el sitio (en realidad nada lo impide, pero debes dar acceso vía SSH). De todas formas las pocas colaboraciones que he tenido en el pasado ( gracias chicos ;-) ) me lo enviaban en un TXT por email así que de todas formas las terminaba publicando yo. Con añadir al fichero un "author: Nick" ya está solucionado eso.

Instalación y utilización

Joe Di Castro (al que ya agradecí su ayuda en la entrada anterior) escribió una completa guía sobre instalación y utilización de Pelican. ¡Marchando enlaces!:

Comentarios