Review de generadores de sitios html estáticos

Llevo un tiempo dándole vueltas a  esto de WordPress. Actualmente escribo los post en Word (sí en Word) ya que hay veces que no dispongo de conexión a Internet y porque conozco algunos de los atajos rápidos de teclado. El problema es el formato, al pasarlo a WordPress no queda como me gustaría y además a veces Word es un poco “caprichoso” con el estilo.

Así que me he puesto a buscar soluciones alternativas y una de ellas es utilizar Markdown. Para quien no lo conozca es un lenguaje de marcado ligero con el que añadir formato fácilmente a textos web, para utilizarlo en WordPress solamente es necesario un plugin

.

Aunque me ha picado el gusanillo de utilizar alguna herramienta que genere páginas estáticas, como Jekyll(http://jekyllrb.com/ ), Hyde(https://github.com/hyde/hyde ), pelican (https://github.com/getpelican/pelican/), Nikola (http://getnikola.com/), secondcrack(https://github.com/marcoarment/secondcrack), Spress (https://github.com/yosymfony/Spress). Como podemos ver hay muchísimas, por ello vamos  a probar unas cuantas y comentar sus impresiones.

Jekyll

Es de los generadores estáticos más utilizados, está escrito en Ruby y por ello es necesario tenerlo instalado en Windows. Podemos utilizar Markdown y tiene muchos plugins. Aquí podemos encontrar una lista de personas que utilizan Jekyll https://github.com/jekyll/jekyll/wiki/Sites

Su instalación es sencilla, solo tenemos que instalar una “gema” de Ruby. Utilizando la consola de comandos de Windows navegamos hacia la carpeta donde queramos instalarlo y escribimos

gem install jekyll
jekyll new jekyllPage
cd jekyllPage
jekyll serve

Ahora solo hay que entrar el http://localhost:4000 y este es el resultado.

La verdad es que he tenido algunos problemas con la última versión (1.4.3) y he tenido que instalar la anterior (1.4.2). Para desinstalar la gema de Jekyll e instalar la anterior.

 gem uninstall Jekyll
 gem install jekyll --version "=1.4.2"

La ventaja de este generador es que tiene multitud de plugins http://jekyllrb.com/docs/plugins/ entre ellos “Jekyll Picture Tag” para redimensionar las imágenes. Para instalar un plugins podemos instalar una gema o copiarlos en la carpeta “_plugins”.

La estructura de carpetas es bien sencilla, en css están los estilos css de nuestro sitio. En el directorio “_layout” tenemos definidos el diseño de las páginas. La carpeta más importante es “_post” donde estarán todos los post que vayamos creando, para escribirlos lo más cómodo es utilizar algún editor de texto Markdown.

Octopress

Octopress es un framework para Jekyll, desarrollado en Ruby, el cual nos permite generar de manera automática los archivos HTML, CSS y Javascript necesarios para poder tener un blog completamente funcional. Los post se redactan directamente en archivos de texto plano formateados en Markdown que posteriormente Jekyll se encargara de convertir en HTML, los comentarios pueden ser gestionados por Disqus y las estadísticas del sitio pueden ser administradas vía Google Analytics.

Para instalar Octopress solo tenemos que clonar su repositorio de Git y seguir unas instrucciones.  Debemos tener instalado ruby 1.9.3.

git clone git://github.com/imathis/octopress.git octopress
cd octopress
gem install bundler
bundle install
rake install

Y listo. Para crear un post solo tenemos que escribir

rake new_post["Hello Octopress"]

y se creará un nuevo archivo Markdown. Para ver los cambios en local

rake preview

Hyde

Es una de las alternativas a Jekyll, está escrito en Python. Tiene muy buena pinta pero me he llevado más de 40 minutos intentar instalarlo con pip, tiene muchas dependencias con librerías Python así que he decidido solo comentarlo.

Pelican

También tenemos Pelican una solución en Python. Para instalar este generador de sitios estáticos debemos tener instalados en nuestro PC Python y pip (si no tienes pip instalado échale un vistazo a esto: https://sites.google.com/site/pydatalog/python/pip-for-windows)

Para instalar Pelican solo tenemos que hacer (antes debemos tener instalado pip en windows https://sites.google.com/site/pydatalog/python/pip-for-windows) :

 pip install pelican
 mkdir pelican
 cd pelican
 pelican-quickstart

Respondemos a una serie de preguntas y listo, ya tenemos nuestro bog en pelican con esta estructura:

pelican/
├── content
│   └── (pages)
├── output
├── develop_server.sh
├── fabfile.py
├── Makefile
├── pelicanconf.py       # Main settings file
└── publishconf.py       # Settings to use when ready to publish

Para publicar aquí tenemos la documentación oficial:

http://docs.getpelican.com/en/3.3.0/getting_started.html#installing-pelican

PieCrust

Aquí tenemos otro generador de sitios estáticos esta vez escrito en php PieCrust http://bolt80.com/piecrust/  Para instalarlo en Windows solo tenemos que abrir una consola y escribir

php -r "eval('?>'.file_get_contents('http://backend.bolt80.com/piecrust/install'));"
cd piecrust
chef init jesuslcblog

Una vez hecho esto ya podemos tenemos nuestro sitio “jesuslcblog” creado con piecrust, ahora escribimos:

cd jesuslcblog
 ..\chef.cmd serve

y listo.

Spress

Este generador estático esta hecho en PHP con Silex, es muy fácil configurar de extender utilizando composer. Para instalarlo, lo primero es bajarnos su repositorio de git y después con un par de comandos podemos generar un sitio.

git clone https://github.com/yosymfony/Spress.git
 cd spress 
 composer update

Ya tenemos todo instalado ahora podemos crear un sitio, para ello vamos a la carpeta bin y escribimos lo siguiente:

php spress site:new c:\jesuslcblog

Con esto se crea la estructura de carpetas y con el comando

php spress site:build -s c.\jesuslcblog

Construimos el sitio.

Spress no viene con un servidor embebido como puede ser octopress, así que debemos crear el blog por ejemplo en el directorio htdocs

https://github.com/yosymfony/Spress

JBake

Es una alternativa hecha en Java, después de llevarme bastante tiempo intentando instalar otros generadores como sculpin o cyrax he dado con este generador en Java llamado Jbake (http://jbake.org/) sencillísimo de utilizar y con servidor embebido.

Descargamos un zip http://hash.to/2R y lo descomprimimos. Escribimos en una consola:

Jbake –i 
 jbake –s

Y ya tenemos listo nuestro sitio en http://localhost:8820/

Conclusiones

He probado un buen puñado de generadores y tengo que destacar lo fácil que me ha sido instalar y comenzar con Octopress o Jekyll. En un principio tenía reticencias con Ruby, siempre que lo he utilizado he tenido problemas con las versiones, pero en este caso he acabado sorprendido.

Sobre los generadores en Python me han decepcionado un poco esperaba que fuesen más fáciles de instalar, he tenido algunos problemas con las dependencias al instalar hyde y me ha faltado un poco de documentación de cyrax. Menos mal que encontré pelican y solucionó todo esto de las dependencias demás problemas haciendo que todo fuese sobre ruedas

Sobre los de Sculpin y spress la verdad es que son proyectos muy bien montados, utilizando Twig y con composer, he tenido que pelearme un poco con composer y curl, pero me he encontrado con piecrust y ha sido todo coser y cantar.

Un hallazgo de última hora ha sido jBake, este generador de sitios estáticos me ha resultado  cómodo de instalar y “toquetear”.

Ahora viene lo difícil migrar. Todavía no tengo claro si migrar completamente el blog o continuaré ambos, pero seguro que instalo alguno para tener página en github y aprender un poco sobre algún generador en concreto.

¿Y tú? Con que generador te quedas,  ¿has migrado? ¿has tenido algún problema al migrar?

Anuncios

3 comentarios en “Review de generadores de sitios html estáticos

  1. Hola!

    Muy buen post.

    En el análisis echo en falta a Nikola, que es un generador de lo mejorcito, en mi opinión. Al menos, bastante mejor que Hide.

    Respondiendo a tus preguntas: Mi blog comenzó en Drupal, pero el mantenimiento me llevaba mucho tiempo. Lo pasé a Blogger, hasta que sentí que perdía el control. Finalmente, lo migré a Jekyll con comentarios en disqus… y ahí sigue. Estoy bastante contento, pero tiene dos problemas:
    – Da igual el cambio que realice: la compilación dura 16 segundos. Personalmente, me parece demasiado.
    – necesito ruby para hacer cualquier cosa avanzada. Generar RSS, índices, etc., y Ruby es un lenguaje que no me entusiasma.

    Por lo demás, me parece bastante interesante, sobre todo porque github puede hostearlo gratuitamente.

    Problemas al migrar? Todos. Al salir de la BBDD de drupal perdí parte del formato y todos los comentarios. Al salir de Blogger, volví a perder los comentarios.

    Y respecto a con qué generador me quedo… la respuesta es ninguno. Estoy haciéndome el mío propio, mucho más simple que ninguno de los que comentas. Sin embargo, cuento con distintos problemas que aún no sé cómo solucionar, entre ellos, conservar los comentarios XD

    Me gusta

    1. Muchas gráficas por comentar, al final creo que voy a quedarme con wordpress (hosteado en wordpress) porque el mantenimiento es mínimo, no tengo que preocuparme de casi nada y con markdown he encontrado un tesoro 🙂
      Tampoco me gusta el hecho de perder los comentarios, visitas, pagerank… Así qué mantendré esto.
      Como generador el que más me ha gustado ha sido pelican, tiene muchísimos plugins y themes distintos.

      Me gusta

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s