Sobre cómo utilizo org-page para hacer este blog
Este artículo va de cómo estoy utilizando org-page
para hacer éste
blog. Lo haré con pelos y señales, porque me lo ha pedido así Ángel,
del blog y podcast uGeek que se está planteando emplear el sistema
para sus proyectos. Sobre cómo ponerlo en marcha ya hablé en otra
ocasión y no voy a reincidir, aunque haré alguna puntualización.
Hay algunos cambios en la configuración desde que lo inicié. Copio
aquí la configuración que tengo en el init.el
.
;;; Para el blog en org-mode (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") (setq op/theme-root-directory "/home/notxor/proyectos/themes-org-page") ;; Temas propios (setq op/theme (quote notxor)) ;; Ajustes personales del tema (setq op/tag-rss t) ;; Hacer que se creen los feed por etiquetas. (setq op/hashover-comments t) (setq op/personal-github-link "") (setq op/site-preview-directory "~/public_html")
Quiero recordar nada más que todo el blog está en un repositorio git. Es un repositorio particular y privado sobre un servidor propio. No utilizo ni gitlab ni tampoco github ni ningún otro repositorio externo.
El repositorio del blog tiene dos ramas: master
y source
. Los
html que se publican se guardan en la rama master
y los ficheros
org
que son los que escribo están en la rama source
.
Flujo de trabajo
Escribir un artículo y publicarlo tiene un proceso muy sencillo. El sistema lo describo a continuación.
Escribir el artículo
Antes de comenzar a escribir me aseguro de que el repositorio git
está en la rama source
que es la destinada a recoger los textos que
escribes en formato org
. Si no estamos en la rama adecuada, hay que
hacer en una consola situada en el repositorio:
git chekout source
En un primer momento creé también una rama drafts
para guardar los
borradores de los artículos según se me iban ocurriendo. Esa rama al
final la abandoné. Los borradores son los artículos que aún no he
guardado en el repositorio git
. Pero para iniciar la escritura de un
artículo es muy sencillo, utilizo el siguiente comando de emacs
M-x op/new-post
Ese comando inicia una serie de preguntas, como la categoría del
artículo, en mi caso están la mayoría en la categoría blog aunque
tengo otros en la categoría esperanto. Pregunta también un nombre de
archivo, unas etiquetas y palabras clave, un título y una URL
. Estos
datos componen la cabecera del fichero org
. Relleno todos los campos
lo mejor que sé, tampoco me preocupo mucho, pues esos datos se pueden
modificar más tarde. Lo que suelo tener en cuenta es que en la URL
no haya caracteres especiales con tildes o eñes.
Subirlo al repositorio
Para manejar el repositorio utilizo magit
desde el mismo emacs,
pero empecé utilizando directamente git y la línea de comandos. En
ambos casos hacía básicamente lo mismo y puedes utilizar para manejar
el repositorio la herramienta con la que mejor te entiendas:
- Comprobar el estado del repositorio con
status
. - Añadir los cambios con
add
o constage
. - Meterlos en el repositorio local con
commit
. - Sincronizar el repositorio remoto con
push
.
Bien, ya tenemos la información subida al repositorio local. Esto es importante porque el sistema sólo genera las páginas de lo que esté subido e ignora los demás ficheros.
Publicar en local los cambios realizados
Antes de subirlo donde lo pueda ver la gente, primero lo publico en local. Es decir, en mi ordenador monto un equivalente al sitio web para comprobar que está todos bien, que funcionan todo, que las imágenes, o vídeos o sonido, enlazan correctamente.
Para hacer la publicación se utiliza el comando
M-x op/do-publication
Nos preguntará si publica todos los archivos org
y si lo hace en un
directorio local. Yo lo hago sobre el ~/public_html
. Allí, en el
directorio que indiquemos, colocará todos los archivos como se verán
en la web. Si queremos consultarla como si lo hiciéramos en una
remota, hay que montar un servidor. Podemos utilizar el de emacs o
cualquier otro. Yo utilizo el que proporciona Python, por tanto
utilizo los siguientes comandos desde una consola:
cd ~/public_html python3 -m http.server 8080
Para comprobar que todo funciona abro los navegadores; normalmente lo
compruebo con tanto con firefox como con iridium. Iridium es un
navegador basado en chromium que no se chiva de nuestras cosas a
Google. Una vez que creo que todo está correcto, llega el momento
de subir las páginas al sitio de Internet y actualizar la rama
master
del repositorio.
Guardar las páginas generadas
Si todo está correcto, primero meto los cambios en el repositorio. Pero hay que recordar cambiar la rama sobre la que trabajamos:
git checkout master
y copio los ficheros desde ~/public_html
al directorio de trabajo
~/proyectos/blog-org-page
. Se puede utilizar la herramienta rsync
pero últimamente me he acostumbrado a utilizar el gestor de archivos
mc
, porque es la herramienta que utilizo también para subir los
ficheros al sitio de Internet.
Una vez tengo los ficheros en el directorio del repositorio local,
toca actualizar el repositorio git con los mismos pasos que hemos
visto al trabajar con la rama source
. El único cambio es que lo
haremos sobre la rama master
.
Subir los cambios a Internet
Igual que he hecho para guardar el sitio generado por el sistema en
mi repositorio, paso los ficheros que lo componen por ftp
al sitio
en Internet.
Conclusiones
Contado así, con tanto detalle puede parecer un poco farragoso el sistema. En realidad es bastante sencillo. Tienes los ficheros generados como html estático. Yo además lo tengo de manera que el javascript no llame ni se comunique con sitios externos, ni siquiera para regalarle los datos de visitas a Google. Así no puedo saber quién entra, ni cuántos son, pero es que en realidad me da igual. No pienso poner publicidad ni ganar dinero con ello, así pues ¿para qué regalarle a una gran corporación americana los datos que generan los que aquí vienen a leerme?
Respuestas a algunas dudas planteadas
La mayoría de las dudas son sobre el funcionamiento de git. No soy un experto en git, lo único que puedo hacer es recomendar un buen manual sobre esa herramienta.
La otra duda que me han preguntado es cómo parar el servidor http
de emacs. No suelo utilizarlo, pero hay un comando M-x httpd-stop
que supongo que lo detendrá.
La parte de utilizar otro editor para escribir los artículos no
termino de pillar el porqué. Concretamente org-mode
es potente por
todo el elisp
que lo mueve sin que lo veamos. A ver, es texto plano,
lo puedes escribir con cualquier editor. El hacerlo con emacs es más
rápido, me parece a mí:
- Escribes o modificas el artículo.
- Metes los cambios en el repositorio local. (Si no quieres mezclar herramientas y que se abran un montón de buffers usas git desde una consola.)
- Generas el sitio con
M-x op/do-publication
.
Ya te puedes olvidar de emacs si quieres y usar las herramientas que quieras para guardar el sitio generado en el repositorio y subirlo a Internet.