Org-bash-blog: Crea fácilmente tu blog en bash y org-mode
Tabla de contenido
Hace poco cambie la forma de publicar en el blog, acababa de migrar mi flujo de trabajo a org-mode, y decidí utilizar org-page para la creación y publicación del blog, al principio me costo entender su funcionamiento, y despues de algunos pequeños errores, termine por acostumbrarme pese a que no me terminaba de gustar, no comprendía el trasfondo del proceso, no soy desarrollador y mis conocimiento sobre lips son nulos, así que era como estar realizando el blog a ciegas y confiando en el funcionamiento de org-page.
Hablando con Ángel de Ugeek podcast, me comentó que estaba trabajando en un script en bash, org-bash-blog, para la creación de un blog de paginas estáticas basándose en el estado de las tareas de org-mode, por lo que me ofrecí de “betatester”.
Antes de seguir, dejar claro que Ángel no es programador, ni desarrollador ni nada que se le parezca, solo a base de echarle muchas horas, por no decir días, ha creado este script, es posible que puedas encontrar algun bug y que se pueda mejorar, evidentemente, eres libre de hacerlo, su licencia lo permite, pero quódate con su funcionamiento simple y claro para crear un blog con org-mode
Porquó utilizar org-bash-blog #
Por su simplicidad, no es necesario que tengas unos grandes conocimientos en bash para entender el proceso de creación del blog por lo que te permite personalizarlo fácilmente
Con org-bash-blog tienes todos tus artículos en un solo archivo org, te podrá gustar o no, pero a mi personalmente es lo que ha hecho que vuelva a cambiar, veremos si según va creciendo en número de publicaciones se crea algún lag o no
Controlas que artículos se publican y cuales no, basta con añadir una
tarea TODO y asignarle su :PROPERTIES:
No necesitas de otra plataforma como Jekyll, Hugo o parecidos, simplemente ejecutas el script y listo
Una eficiente organización de las tags del blog, org-page es un desastre en este sentido, para muestra un botón

Ahora pulsa en el enlace de etiquetas y verás la diferencia
Como personalizar org-bash-blog #
Dentro de las 20 primeras lineas encontramos
En el script org-bash-blog.sh #
- Texto de bienvenida a mostrar debajo de la barra de navegación
INDEX=$(echo "Bienvenidos al Blog de Lázaro")
- Contenido del pie de página
PIE_WEB=$(echo '<p style="text-align: center;"><a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" rel="license"><img style="border-width: 0px; display: block;
margin-left: auto; margin-right: auto;" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" alt="Licencia de Creative Commons" /></a><br />Este obra está
bajo una <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" rel="license">licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional</a>.</p><br><br><br>')
- Logo para el feed del blog
LOGO_FEED
- ID Google Analitycs
#+HTML_HEAD: <script async src=\"https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXXX-X\"></script>
#+HTML_HEAD: gtag('config', 'UA-999999999-1');
- Si no utilizas podcast y no quieres el apartado último Podcast, borra las siguientes lineas
# MAIN CONTENT NEXT. INDEX PAGE
INDEX_NEXT=$(echo "
*último Podcast
#+HTML:<script async src="https://telegram.org/js/telegram-widget.js?5" data-telegram-post="uGeek/3" data-width="100%"></script></div>
")
- URL del blog
GUID="http://ugeek.gitlab.io"
En el fichero .org #
- Titulo del blog
TITLE:
- URL o dominio del blog
LINK:
- Pequeña descripción del blog
DESCRIPTION:
- Palabras claves sobre el blog
KEYWORDS:
- Autoría del Blog
AUTHOR:
- Fichero con el logo del sitio
HTML_HEAD: <div id="logo"><a href="index.html"><img src="https://TU.DOMINIO/" border="0" width="90" height="90" alt="El Blog de
Lázaro"></a></div>
- Ubicación del fichero feed del blog
HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/stylesheet.css" /><link rel="alternate" type="application/rss+xml" href="https://TU.DOMINIO/feed.xml"
title="Titulo del Blog">
- Enlace derecho encabezado del Blog
html: <div id="name"><a href="index.html"><tt>Mis Blog de Tecnología</tt></div></a>
- Enlaces a tus redes sociales
html: <div id="icon"><a href="https://ugeek.github.io/podcast.xml" title="rss"><img src="icon/podcast.png" width="25" height="25"></a> <a href="rss.xml"><img
src="icon/rss.png" width="25" height="25"></a> <a ref="https://twitter.com/ugeekpodcast"><img src="icon/twitter.png" width="25" height="25"></a> <a href="https://t.me/uGeek"><img src="icon/telegram.png" width="25" height="25" alt="uGeek"></a></div>
- Barra de navegación
html: <div id="menu"><a href="list.html"><tt>Artículos</tt></a> <a href="tag.html"><tt>Tags</tt></div>
- Encabezado del Blog
html: <div id="ugeek"><a href="index.html" title="TITULO DEL BLOG"><tt>El Blog de Lázaro</tt></a></div>
A tener en cuenta #
- No debe de haber espacios en blanco entre el estado TODO y
:PROPERTIES
-
Podemos trabajar en un articulo nuevo, mientras no pingásemos las PROPIETIES no aparecerá en el índice
-
Despues del
end
se ha de empezar por con un texto, nada de plantillas tipo#+begin_src #+end_quote
etc. -
El articulo/s a publicar tiene que tener un estado TODO y estar al final del fichero org, esto es importante
-
En el titulo del estado TODO no utilizar el carácter |
Creando un articulo #
Creas una tarea con un estado TODO
y en la caja PROPERTIES
:PROPERTIES
:TITLE Titulo del artículo
:EXPORT_FILE_NAME nombre del fichero html
:DESCRIPTION Pequeña descripción del artículo
:EXPORT_DATE Fecha, que servira como emcabezado para el fichero html
:CATEGORY categoria con la que vas a agrupar los articulos
:TAG etiquetas del articulo
:END
A continuación crearemos el contenido del articulo y cuando hayamos terminado, guardamos y ejecutamos el script
./org-bash-blog.sh
>>> org-bash-blog va a publicar el Post <<<
Hay 102 Artículos y 17284 líneas en Blog.org
Publicando Artículo Nº 1
Conclusión #
Ángel nos ha proporcionado una base sobre la que empezar a trabajar, tu decides si quieres ir mas allá bien personalizando el css, que por cierto se adapta a las mil maravillas con los dispositivos móviles, o bien añadiendo nuevas funciones al script.
Espero que te haya gustado, que pases un buen día. 🐧
Disculpas #
Debido a la nueva estructura de publicación de Org-bash-blog respecto a Org-page, ha habido una reestructuración de todos los articulo anteriores así como del feed del blog, te pido disculpas por ello.