Esto es un desastre
Empezamos con decepción
Esto es un desastre. Mi blog se ha ido por el sumidero... bueno eso es una exageración, pero casi.
Tuve un problema con el ordenador. Casualidades de la vida, a la batería le dio por fallar en medio de una actualización del sistema y todo se quedó negro. Pude llegar a abrir una consola y ver qué podía haber pasado. La conclusión después de darle varias vueltas fue que la instalación quedó a medias y seguramente habría que reiniciarla.
Mi primera intención fue hacer una actualización total:
sudo zypper dup --no-allow-vendor-change
Lo más seguro es que todo hubiera funcionado de nuevo sin más problema que tener un portátil sin batería y estar obligado a tenerlo enchufado siempre. Sin embargo, yo que soy muy listo, decidí hacer otra cosa: Instalar de cero OpenSuse Tumbreweed, ajustando algunos parámetros de la anterior instalación --hecha sobre una previa de no me acuerdo qué distro-- que no terminaban de gustarme, como la estructura de las particiones en disco.
Me puse a ello, sabiendo que tenía copia de seguridad de todos mis datos y no pasaba nada, porque lo demás son aplicaciones que funcionan sobre los datos.
El error que me daba pelican era que había ficheros en las fuentes
que no era correcto y no generaba los html
como debería. Revisé
todos los ficheros y todos estaban en correcto markdown. Es más,
hasta el día anterior los había estado procesando sin
problema. Después de muchas pruebas y desesperación, instalando la
versión para python 2.x, volviendo a la versión para python 3.x,
volviendo a probar, repasar los ficheros, quitando las carpetas
estáticas, volviéndolas a poner, repasando una y otra vez el fichero
de configuración pelicanconf.py
... Al final desistí. Después de
haber intentado todo, incluso generar un blog nuevo y copiar los
archivos (para seguir recibiendo el mismo error), desistí y busqué
alternativas.
Las alternativas que encontré en los repositorios de OpenSuse, a parte de pelican, eran jekyll y nikola. Probé los dos. No sé si fue por falta de paciencia a esas alturas; por falta de documentación, o quizá mi torpeza habitual, el caso es que fui incapaz de iniciar ningún proyecto de los dos.
Emacs al rescate: probando org-page
Poco después recordé haber mirado por encima alguna vez la posibilidad de hacer el blog única y exclusivamente con emacs y tropecé con el paquete org-page. Por probar no perdía nada.
Y bueno, de momento parece funcionar correctamente. O al menos hace lo que se espera de él mientras escribo esta primera entrada. Pero vamos por partes a ver si me puedo explicar todo lo que me gustaría.
Instalación de org-page
Esa es la parte más fácil: Primero accedí a M-x list-packages
y
busqué por toda la lista paquetes de blog. Primero vi que había un
paquete prometedor que se llama hexo-mode
, así que intenté a ver si
tenía suerte y podía instalar «hexo» un creador de sitios estáticos
hecho con javascript, pero tuve la misma suerte con el agravante de
que no está en los repositorios de OpenSuse y seguro que algo de
basurilla me ha quedado por el disco... pero bueno, hay que probarlo
todo (o casi todo).
Decía que una vez instalado el paquete había que configurarlo, así que
siguiendo las instrucciones del sitio de org-page
añadí a mi fichero
.emacs
las siguientes lineas.
(require 'org-page) (setq op/repository-directory "~/proyectos/blog-org-page/") (setq op/site-domain "https://notxor.nueva-actitud.org") (setq op/site-main-title "Notxor tiene un blog") (setq op/site-sub-title "Defenestrando la vida")
Además, se puede cambiar la apariencia con distintos themes
que
proporcionan los css
correspondientes... de momento no he hecho
modificaciones a la apariencia más allá elegir uno de ellos. Para
cambiar de tema para la visualización se utiliza la variable
op/theme
. De momento estoy utilizando el tema que elige por defecto
cuando no le dices ninguno (mdo
). Las opciones para elegir son:
emacs_love
, kactus
, kd_mdo
, mdo
, phaer
y wy
De todas formas, después de haberlas visto todas, me ha quedado claro que ningún diseñador gráfico le ha echado un ojo a este paquete.
Primeros problemas, apareció git
La gestión de todo el blog lo lleva org-page
acoplándose sobre
git
... y git
es una de mis bestias negras. Tengo una tendencia,
casi enfermiza diría yo, a cagarla con git
, meter la pata y
cargarme los repositorios. Aquel de vosotros que lea esto que haya
trabajado conmigo en algún proyecto utilizando git
daréis fe de mi
torpeza con esa herramienta. Espero que el uso extensivo de esta
herramienta para el blog consiga que por fin me aclare con esta
maravilla y comience a entenderla poco a poco.
org-page
utiliza dos ramas, los ficheros .org
las guarda por
defecto en la rama source
y los html generados en la
master
. Pero otra vez vamos por partes. Primero hay que crear un
repositorio y mi costumbre de crearlo en la nube tiene sus
peculiaridades:
Crear repositorio en Nextcloud
Tengo una nube particular que la uso para mis cosas y para tener, básicamente, sincronizadas todas las cosas con las que trabajo de forma normal, en varios ordenadores, en varios aparatos (teléfono móvil, tablet). Así que el origen del blog lo he creado en él.
cd nube mkdir blog-org-page.git cd blog-org-page.git git init --bare
Por lo que sé, la opción bare
genera un repositorio que contiene
toda la información pero no los ficheros para modificarla, es decir,
actuará de «repositorio remoto» del que descargar información y al que
subir cambios. Después hay que crear el «repositorio local»
cd ~/proyectos git clone ~/nube/blog-org-page.git
Con esto nos crea, después de avisarnos de que hemos «clonado» un
repositorio vacío, un directorio que se llama «blog-org-page». Éste es
el directorio que debemos establecer en la variable
op/repository-directory
como vimos antes.
Ahora necesitamos una rama que se llame source
... aunque bueno, la
podemos llamar como queramos y luego se puede configurar en las
opciones. Sin embargo, para no liarme he llamado a esa rama como dice
la documentación.
git branch source
Creando el esqueleto del blog y comenzando a escribir
Una vez tenemos creado el repositorio hay que crear el esqueleto del blog. Algo tan sencillo como hacer los siguientes pasos:
Asegurarnos de que estamos en la rama
source
, fuera de emacs podemos llamar al comando:git checkout source
Si tenemos instalado en emacs
magit
también podemos hacer sin salirnos de nuestro editorM-x magit-checkout
y seleccionar la ramasource
.- Generar el esqueleto con el comando correspondiente de
org-page
:M-x op/new-repository
.
Si vamos al directorio del proyecto, veremos que nos ha creado un
directorio llamado blog
y los ficheros README
, about.org
e
index.org
... Y ya lo tenemos todo listo para comenzar.
Esta primera entrada la he creado en el dentro del directorio blog
con el nombre de fichero inicio-nuevo-blog.org
... Bueno, en realidad
no lo he creado a mano. En realidad lo que hice fue abrir emacs y
lanzar M-x op/new-post
y contestar a las preguntas que hace. Eso ya
genera la cabecera que tiene la siguiente pinta:
#+TITLE: Esto es un desastre #+AUTHOR: Notxor #+EMAIL: notxor «en» nueva-actitud «punto» org #+DATE: 2017-10-30 lun #+URI: /blog/%y/%m/%d/esto-es-un-desastre #+KEYWORDS: varios #+TAGS: varios, blog #+LANGUAGE: es #+OPTIONS: H:3 num:nil toc:nil \n:nil ::t |:t ^:nil -:nil f:t *:t <:t #+DESCRIPTION: Artículo inicial del nuevo blog
Publicando lo hecho
Una vez de haber escrito todo este chorizo (bueno, en realidad lo hice
de varias veces y probando que funcionaba todo), guardas tus cambios y
tienes que generar el blog. He ido haciendo cambios y subiéndolos poco
a poco. ¿Cómo? poco a poco y empezando con git
:
Por ejemplo, para subir los cambios en el los ficheros que crea por
defecto about.org
e index.org
. Los he modificado y subido de la
siguiente manera:
git add about.org index.org git commit -m "Establecer los estados iniciales del blog." git push
Por separado subiré el primer post de este blog con comandos similares
a lo anterior, por lo que no voy repetir ese proceso. Pero además,
teniendo todos los cambios guardados y seguros en el repositorio, el
siguiente paso es publicar lo hecho. Lo que se hace es M-x
op/do-publication
o si se quiere tener una visión previa de cómo está
quedando lo que vamos escribiendo se puede utilizar el comando
M-x op/do-publication-and-preview-site
, que guarda los ficheros
generados en el directorio ~/.op-tmp/
.
Conclusión
Y poco más puedo contar después de dos días de trastear con el
«chismático» éste. Sólo que de momento me permite volver a tener el
blog y aunque me lío con bastante frecuencia con el tema de git
,
espero que esto me sirva para arrancar con ello.
Por otro lado un punto a favor es que utiliza directamente org-mode
,
no necesito convertir ni romper nada, ni insertar código html
«a
pelo» como había que hacer con el Markdown.
Veremos si esto me hace escribir un poco más en mi blog.