Zola en Android

Zola en Android

Esta web es un puñado de ficheros de HTML estático generado a partir de MarkDown usando Zola, un generador sencillo pero razonablemente completo.

Zola es un ejecutable binario sin más dependencias. Se distribuye compilado para Linux, Windows y OSX. También ofrece su código fuente por si queremos compilarlo nosotros mismos. Un día decidí que sería agradable poder disponer de Zola en una tablet con Android que, por motivos irrelevantes, tenía en casa. Agradable porque así podría fácilmente llevarlo a cualquier sitio, cargando únicamente con una tablet y un pequeño teclado y podría escribir y publicar cualquier cosa desde cualquier sitio.

De vez en cuando

Termux

El primer paso es instalar Termux. Esto es fácil. Se instala desde F-Droid y ya está.

Rust y algunas otras cosas

Hay un paquete de Termux listo para instalar con un sencillo pkg install rust. Al hacer esto ya instala sus dependencias, como por ejemplo LLVM y clang. Pero aún así, nos van a faltar un par de cosas más para poder compilar Zola. Son simplemente un par de paquetes más, básicamente make y binutils.

Compilando Zola

Con todo esto ya podemos bajar el código de Zola, descomprimirlo en una carpeta y compilar... o casi.

Hay un par de dificultades (pequeñas) a tener en cuenta. La primera es el consumo de memoria. Si hacemos el típico cargo build --release, cargo por defecto lanzará la compilación utilizando múltiples procesos. Esto está muy bien porque así todo va más rápido, claro. Pero dado que estamos en una tablet -y en una más bien justita- seguramente al cabo del rato el proceso entero de Termux terminará muriendo con un bonito crash. La solución es relativamente fácil; añadimos cargo build --release -j 1 para que cargo sólo use un proceso. Podemos probar a poner 2, quizá 3, si tenemos bastante memoria, pero... seguramente no tengamos suficiente. Para dar una idea aproximada rápida. Con 2Gb de memoria y 1 único proceso, la compilación seguía quedándose sin memoria. Compilando en una tablet con 3Gb y con 1 proceso, el resultado fue un éxito.

Eso sí, usar -j 1 nos lleva a la segunda cosa a tener en cuenta: el tiempo. Compilar con varios procesos es bueno porque reduce mucho el tiempo. Con uno solo, en esta tablet, la compilación completa lleva fácilmente más de dos horas y media largas. Solo la compilación del último paquete final (el propio binario de Zola) lleva algo más de 1 hora.

Hala, a robar peras

Bueno, no del todo, claro. Para que sea algo usable necesitaremos algunas cosas más. Por ejemplo un editor. Hay un paquete de Vim en Termux, así que para mi estupendo. También hay otros editores, claro.

También es bueno tener un modo de subir la web generada a un servidor público. Hay aplicaciones de FTP para Android, por supuesto, pero lo más fácil -si tenemos acceso por SSH- es hacer pkg install rsync y subir desde el propio Termux.