Contenido

Migrando a Nikola

Llevo un tiempo preparando la migración a Nikola. Me gustaría contaros mi experiencia, las razones para realizar la migración y cómo hacer ésta de una manera fácil y sencilla.

En estos momentos, migrar es más fácil que nunca…

Razones para migrar

Los que seguís el blog sabéis que he pasado ya por distintos sistemas:

Así que tenía que tener razones de peso para realizar una nueva migración. Pues bien, éstas son las razones para usar Nikola:

  • Es Python, lenguaje que conozco y domino, por lo que me resulta sencillo escribir parches o ayudar a la comunidad.
  • Velocidad: Es mucho más rápido que Jekyll. A continuación os mostraré un vídeo de demostración.
  • Multilenguaje: Permite traducciones sin tener que hacer parches.
  • Extensiones: Tiene plugins muy interesantes, como mostrar vídeos de youtube, crear esquemas, renderizar ipython notebook o crear gráficas.
  • Construcción incremental: No vuelve a construir todo el site ante una modificación. De hecho, no hace nada si no hay cambios.
  • Salida mucho más verbosa: No imagináis los dolores de cabeza para encontrar un error.

Si bien es cierto que Jekyll/Octopress también tenían sus ventajas:

  • Directamente renderizable desde GitHub.
  • Editable desde GitHub.
  • Probablemente sean los más utilizados.
  • Muchos temas y más chulos.

En mi caso, el tema de la velocidad, de renderizar iPython Notebook y poder crear fácilmente gráficas y esquemas han sido cruciales. Os dejo un vídeo un poco aburrido con una comparativa de velocidades. Basta ver los primeros 15 segundos y luego podéis esperar hasta que os aburráis. Es lo que tarda en construir mi site, con el mismo número de posts:

Creo que habla por sí solo.

La migración

La migración ha resultado muy dura, pero he allanado el camino para el que venga detrás.

No existía ningún sistema oficial de migración, aunque sí varios scripts que no terminaban de funcionar. Así que tuve que escribir mi propio script de migración, que ha terminado convirtiéndose en el script oficial de migración, tras no pocos cambios.

Además, no me gustaban los temas para Nikola. Por eso decidí portar el tema clásico de Octopress, que también he liberado.

En total, ha sido casi un mes de trabajo que espero merezca la pena.

Cómo migrar

El resultado es que hoy día es muy sencillo realizar la migración de Jekyll u Octopress a Nikola:

  1. Instalar Nikola. Yo prefiero hacerlo dentro de un VirtualEnv:
1
2
3
$ virtualenv venv
$ . venv/bin/activate
(venv)$ pip install nikola[extras]
  1. Instalar el plugin de importación:
1
(venv)$ nikola plugins --install=import_jekyll
  1. Importar el site:
1
(venv)$ nikola import_jekyll <DIRECTORIO>

Usar el tema Octopress

Si, además, queréis utilizar el estilo de Octopress, basta con:

  1. Crear el directorio themes:
1
2
(venv)$ cd new_site
(venv)$ mkdir themes
  1. Clonar el repositorio nikola-theme-octopress:
1
2
(venv)$ cd themes
(venv) themes$ git clone nikola-theme-octopress octopress
  1. Editar el archivo conf.py y añadir la línea:
1
THEME = 'octopress'

Hay algunas opciones de configuración adicionales para la sidebar que podéis consultar en la documentación del tema Octopress para Nikola

No os negaré que el tema aún no está completo, pero de momento es bastante parecido.

Final

Para terminar, os dejo con algunos posts que cuentan más sobre la migración a Nikola o cómo usarlo:

Resulta curioso que, soportando multi idioma (cosa que Jekyll no hace), no haya encontrado posts en castellano sobre la migración, aunque sí numerosos blogs.