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

2019-01-19

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 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>&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

Ingrese la dirección de su instancia


Más publicaciones como esta

Emacs: Traduce desde Google Translate sin ningún tipo de seguimiento.

2023-02-20 | #emacs

Si necesitas hacer uso de un traductor online, te recomiendo utilizar lingva-translate, es un front-end alternativo para Google Translate, sirve como traductor gratuito y de código abierto con más de cien idiomas disponibles. Lingva escrapea a través de Google Translate y recupera la traducción sin acceder directamente a ningún servicio relacionado con Google, lo que evita que te realicen un seguimiento. El paquete lingva.el nos va a permitir hacer uso de lingva-translate para realizar traducciones desde Emacs, y como he dicho, sin ser rastreados por Google.

Continuar leyendo 


"Sobrealimenta" tu agenda con org-super-agenda

2022-04-04 | #org-mode

Ya os he hablado anteriormente de como personalizar la vista de la agenda de emacs, en concreto en esta entrada . En ese artículo utilizaba tags-todo para conseguir unas vistas para la agenda conforme a mis gustos. Hace tiempo que conocía de org-super-agenda para filtrar las vistas de agenda, pero por falta de tiempo no me había puesto a jugar con este paquete. Este paquete te permite “sobrealimentar” la agenda diaria o semanal.

Continuar leyendo 