Blog personal donde guardo mis notas sobre tecnología

Org-bash-blog: Crea fácilmente tu blog en bash y org-mode

Carlos M.

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&aacute;
    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 nlog

    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>&nbsp;&nbsp;<a href="rss.xml"><img
    src="icon/rss.png" width="25" height="25"></a>&nbsp;&nbsp;<a ref="https://twitter.com/ugeekpodcast"><img src="icon/twitter.png" width="25" height="25"></a>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;<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.

Enlaces #