Introducción

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

org-bash-blog-01.png.

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

    1
    
    INDEX=$(echo "Bienvenidos al Blog de Lázaro")
  • Contenido del pie de página

    1
    2
    3
    4
    
    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

    1
    
    LOGO_FEED
  • ID Google Analitycs

1
2
#+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

    1
    2
    3
    4
    5
    
    # 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

    1
    
    GUID="http://ugeek.gitlab.io"

En el fichero .org

  • Titulo del blog

    1
    
    TITLE:
  • URL o dominio del blog

    1
    
    LINK:
  • Pequeña descripción del blog

    1
    
    DESCRIPTION:
  • Palabras claves sobre el blog

    1
    
    KEYWORDS:
  • Autoría del Blog

    1
    
    AUTHOR:
  • Fichero con el logo del sitio

    1
    2
    
    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

    1
    2
    
    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

    1
    
    html: <div id="name"><a href="index.html"><tt>Mis Blog de Tecnología</tt></div></a>
  • Enlaces a tus redes sociales

    1
    2
    
    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

    1
    
    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

    1
    
    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_example #+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

1
2
3
4
5
6
7
8
: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

1
2
3
4
5
./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