ricardogj08/blog

feat: Agrega publicación de BashBlog

Commit 56da1af · Ricardo García Jiménez · 2026-06-14T13:28:56-06:00

Changeset
56da1af7b0cec60a539d08370dadcdb584f7bf67
Parents
54151bbb20d3699e095a45e3d364a8ff198b8726

View source at this commit

feat: Agrega publicación de BashBlog

Signed-off-by: Ricardo García Jiménez <[email protected]>

Comments

No comments yet.

Log in to comment

Diff

diff --git a/README.md b/README.md
index 21d7d3f..47bbe45 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
 # Blog
 
 Mi blog personal sobre Linux, servidores y programación.
+
+<https://ricardogj08.gitman.io/blog/>
diff --git a/docs/.backup.tar.gz b/docs/.backup.tar.gz
index 9d56e2b..9c82042 100644
Binary files a/docs/.backup.tar.gz and b/docs/.backup.tar.gz differ
diff --git a/docs/.yesterday.tar.gz b/docs/.yesterday.tar.gz
index 9d56e2b..e492fb5 100644
Binary files a/docs/.yesterday.tar.gz and b/docs/.yesterday.tar.gz differ
diff --git a/docs/bashblog-un-script-en-bash-para-crear-blogs.html b/docs/bashblog-un-script-en-bash-para-crear-blogs.html
new file mode 100644
index 0000000..8e5c93b
--- /dev/null
+++ b/docs/bashblog-un-script-en-bash-para-crear-blogs.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<link rel="stylesheet" href="main.css" type="text/css" />
+<link rel="stylesheet" href="blog.css" type="text/css" />
+<link rel="alternate" type="application/rss+xml" title="Suscribirse a esta página..." href="feed.rss" />
+<title>BashBlog: Un script en Bash para crear blogs</title>
+</head><body>
+<div id="divbodyholder">
+<div class="headerholder"><div class="header">
+<div id="title">
+<h1 class="nomargin"><a class="ablack" href="https://ricardogj08.gitman.io/blog/index.html">🐇 La Madriguera del Conejito</a></h1>
+<div id="description">Servidores y Linux desde la madriguera 🐧</div>
+</div></div></div>
+<div id="divbody"><div class="content">
+<!-- entry begin -->
+<h3><a class="ablack" href="bashblog-un-script-en-bash-para-crear-blogs.html">
+BashBlog: Un script en Bash para crear blogs
+</a></h3>
+<!-- bashblog_timestamp: #202606141229.52# -->
+<div class="subtitle">junio 14, 2026 &mdash; 
+Ricardo García Jiménez
+</div>
+<!-- text begin -->
+<p>En 2020 leí un artículo de <a href="https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/">Victorhck</a> donde mostraba el uso de una herramienta para crear blogs utilizando un script en Bash, y desde ese entonces siempre me pareció interesante. Durante ese tiempo me daba vueltas en mi mente la idea de abrir un blog personal donde pudiera escribir y guardar simplemente mis notas o bitácoras de herramientas que voy descubriendo y aprendiendo a utilizar en Linux. Hasta este año, por fin me animé a dar el paso y crear este blog para que de alguna manera, ir organizando en este espacio todas esas lluvias de notas que he ido escribiendo, y se me ocurrió comenzar publicando mis notas sobre esta misma herramienta que me permitió abrir mi blog. </p>
+<hr />
+<h2>Instalación</h2>
+<p>Clona el repositorio:</p>
+<pre><code class="language-bash">git clone https://github.com/cfenollosa/bashblog.git
+cd bashblog
+</code></pre>
+<p>Otorga permisos de ejecución y cópialo para tenerlo disponible en todo el sistema:</p>
+<pre><code class="language-bash">chmod 755 bb.sh
+sudo cp bb.sh /usr/local/bin
+</code></pre>
+<blockquote><p>Si tienes en mente escribir todas tus publicaciones en Markdown, debes instalar un programa que convierta Markdown a HTML (por ejemplo: <code>Markdown.pl</code>, <code>markdown</code>, <code>smu</code>).</p>
+</blockquote>
+<h2>Configuración</h2>
+<p>Puedes modificar directamente las variables de configuración dentro de la función <code>global_variables()</code> en el script, o crear un archivo <code>.config</code> en el directorio donde vivirán todas las publicaciones de tu blog.</p>
+<p>Aquí se listan y explican las variables que puedes configurar:</p>
+<table>
+<tr><th>Variable </th><th>Descripción </th></tr>
+<tr><td><code>global_title</code> </td><td>Título del blog. </td></tr>
+<tr><td><code>global_description</code> </td><td>Descripción o subtítulo del blog. </td></tr>
+<tr><td><code>global_url</code> </td><td>URL pública del blog (sin barra al final). </td></tr>
+<tr><td><code>global_author</code> </td><td>Nombre del autor principal del blog. </td></tr>
+<tr><td><code>global_author_url</code> </td><td>URL del perfil, repositorio o sitio web del autor. </td></tr>
+<tr><td><code>global_email</code> </td><td>Correo electrónico del autor. </td></tr>
+<tr><td><code>global_license</code> </td><td>Licencia del contenido del blog. </td></tr>
+<tr><td><code>global_analytics</code> </td><td>ID de Google Analytics (ej. <code>UA-XXXXX</code>). </td></tr>
+<tr><td><code>global_analytics_file</code> </td><td>Archivo con código personalizado para otros sistemas de analíticas o para el código Universal de Google Analytics. </td></tr>
+<tr><td><code>global_feedburner</code> </td><td>URL de Feedburner para redirigir el feed RSS. Déjalo vacío para usar el feed local. </td></tr>
+<tr><td><code>global_twitter_username</code> </td><td>Nombre de usuario de Twitter (sin la <code>@</code>) para el enlace de compartir y las menciones. </td></tr>
+<tr><td><code>global_twitter_card_image</code> </td><td>URL absoluta de la imagen por defecto para las vistas previas (Twitter Cards) de los enlaces del blog. </td></tr>
+<tr><td><code>global_twitter_cookieless</code> </td><td>Si es <code>true</code>, muestra un enlace simple para compartir (sin cookies ni scripts). Si es <code>false</code>, carga el widget oficial de Twitter con el contador de tweets. </td></tr>
+<tr><td><code>global_disqus_username</code> </td><td>Nombre de usuario de tu cuenta de Disqus para habilitar los comentarios. </td></tr>
+<tr><td><code>index_file</code> </td><td>Nombre del archivo de la página principal. </td></tr>
+<tr><td><code>number_of_index_articles</code> </td><td>Número de posts que se mostrarán en la página principal. </td></tr>
+<tr><td><code>archive_index</code> </td><td>Nombre del archivo que lista todos los posts. </td></tr>
+<tr><td><code>tags_index</code> </td><td>Nombre del archivo que lista todas las etiquetas (tags). </td></tr>
+<tr><td><code>non_blogpost_files</code> </td><td>Array de archivos HTML que BashBlog ignorará al generar la página principal y los feeds. Orientado a páginas estáticas que no son posts (ej. (<code>about.html</code> <code>contact.html</code>)). </td></tr>
+<tr><td><code>blog_feed</code> </td><td>Nombre del archivo del feed RSS. </td></tr>
+<tr><td><code>number_of_feed_articles</code> </td><td>Número de posts que se incluirán en el feed RSS. </td></tr>
+<tr><td><code>cut_do</code> </td><td>Si es <code>cut</code>, se mostrará el contenido del post solo hasta la primera línea horizontal en la página principal y en el feed RSS. Si se deja vacío (<code>&quot;&quot;</code>), se muestra el post completo. </td></tr>
+<tr><td><code>cut_tags</code> </td><td>Si es <code>yes</code> y la opción anterior es <code>cut</code>, oculta las etiquetas del post en la página principal. Si es <code>no</code>, las etiquetas seguirán visibles aunque el texto esté cortado. </td></tr>
+<tr><td><code>cut_line</code> </td><td>Expresión regular que indica la línea HTML donde se debe cortar el post. </td></tr>
+<tr><td><code>save_markdown</code> </td><td>Si es <code>yes</code>, guarda el archivo Markdown (<code>.md</code>) original junto al archivo HTML (<code>.html</code>) generado. Si se deja vacío (<code>&quot;&quot;</code>), se descarta el <code>.md</code> y solo se conserva el <code>.html</code>. </td></tr>
+<tr><td><code>prefix_tags</code> </td><td>Prefijo de los archivos HTML generados para cada etiqueta (tag). </td></tr>
+<tr><td><code>header_file</code> </td><td>Ruta a un archivo HTML con una cabecera <code>&lt;head&gt;</code> personalizada. Déjalo vacío para que BashBlog la genere automáticamente. </td></tr>
+<tr><td><code>footer_file</code> </td><td>Ruta a un archivo HTML con un pie de página (footer) personalizado. Déjalo vacío para que BashBlog lo genere automáticamente. </td></tr>
+<tr><td><code>body_begin_file</code> </td><td>Archivo HTML cuyo contenido se incrustará justo después de abrir la etiqueta <code>&lt;body&gt;</code>. </td></tr>
+<tr><td><code>body_end_file</code> </td><td>Archivo HTML cuyo contenido se incrustará justo antes de cerrar la etiqueta <code>&lt;/body&gt;</code>. </td></tr>
+<tr><td><code>body_begin_file_index</code> </td><td>Similar a <code>body_begin_file</code>, pero su contenido solo se incrusta en la página principal (<code>index.html</code>). </td></tr>
+<tr><td><code>css_include</code> </td><td>Array de archivos CSS que se enlazarán en todas las páginas (ej. (<code>main.css</code> <code>blog.css</code>)). Si se deja vacío, BashBlog generará uno por defecto. </td></tr>
+<tr><td><code>html_exclude</code> </td><td>Array de archivos HTML que se excluirán de la página principal, del feed RSS y de los conteos de etiquetas. Útil para posts antiguos u obsoletos que no quieres que aparezcan en la portada. </td></tr>
+<tr><td><code>template_comments</code> </td><td>Texto que aparece junto al enlace de Twitter (ej. <code>¿Comentarios?</code>). </td></tr>
+<tr><td><code>template_read_more</code> </td><td>Texto del enlace <code>Leer más...</code> que aparece cuando un post se corta en la página principal o en las páginas de etiquetas. </td></tr>
+<tr><td><code>template_archive</code> </td><td>Texto del enlace para ir a la página de todos los posts al final de la página principal. </td></tr>
+<tr><td><code>template_archive_title</code> </td><td>Título de la página que lista todos los posts. </td></tr>
+<tr><td><code>template_tags_title</code> </td><td>Título de la página que lista todas las etiquetas. </td></tr>
+<tr><td><code>template_tags_posts</code> </td><td>Palabra en plural para referirse a los posts (ej. <code>artículos</code> o <code>posts</code>). </td></tr>
+<tr><td><code>template_tags_posts_2_4</code> </td><td>Palabra en plural especial para lenguas eslavas (usada cuando hay entre 2 y 4 posts). </td></tr>
+<tr><td><code>template_tags_posts_singular</code> </td><td>Palabra en singular para referirse a los posts (ej. <code>artículo</code> o <code>post</code>). </td></tr>
+<tr><td><code>template_tag_title</code> </td><td>Texto para el <code>&lt;title&gt;</code> de las páginas de una etiqueta específica (ej. <code>Artículos etiquetados con</code>). </td></tr>
+<tr><td><code>template_tags_line_header</code> </td><td>Texto que precede a la lista de etiquetas en un post (ej. <code>Etiquetas:</code>). </td></tr>
+<tr><td><code>template_archive_index_page</code> </td><td>Texto del enlace para volver a la página principal desde las páginas de todos los posts y etiquetas. </td></tr>
+<tr><td><code>template_subscribe</code> </td><td>Texto del enlace visible para suscribirse al feed RSS al final de la página principal. </td></tr>
+<tr><td><code>template_subscribe_browser_button</code> </td><td>Texto interno (atributo <code>title</code>) que utilizan los navegadores o lectores de RSS para identificar el feed al detectarlo automáticamente. </td></tr>
+<tr><td><code>template_twitter_button</code> </td><td>Texto visible del enlace para compartir el post en Twitter. </td></tr>
+<tr><td><code>template_twitter_comment</code> </td><td>Texto predeterminado que aparece al compartir un post en Twitter. </td></tr>
+<tr><td><code>date_format</code> </td><td>Formato para mostrar la fecha de publicación de los posts en las páginas. </td></tr>
+<tr><td><code>date_locale</code> </td><td>Configuración regional (locale) para traducir los nombres de meses y días en las fechas (ej. <code>es_MX.UTF-8</code>). </td></tr>
+<tr><td><code>preview_url</code> </td><td>URL para previsualizar el post mientras se edita. Por defecto utiliza el valor de <code>global_url</code>. Útil si escribes posts en local antes de subirlos al servidor. </td></tr>
+<tr><td><code>markdown_bin</code> </td><td>Ruta al ejecutable del programa que convierte Markdown a HTML (ej. <code>markdown</code> o <code>Markdown.pl</code>). Déjalo vacío para que el script lo detecte automáticamente. </td></tr>
+</table>
+<h2>Uso</h2>
+<p>Mostrar un mensaje de ayuda con los comandos disponibles:</p>
+<pre><code class="language-bash">bb.sh
+</code></pre>
+<p>Comenzar a crear una publicación en Markdown (por defecto) o en HTML si no se encuentra un convertidor:</p>
+<pre><code class="language-bash">bb.sh post
+</code></pre>
+<p>Comenzar a crear una publicación en HTML:</p>
+<pre><code class="language-bash">bb.sh post -html
+</code></pre>
+<blockquote><p>Al comenzar la creación de una publicación, se abrirá el editor de textos configurado en la variable de entorno <code>$EDITOR</code>, que será el espacio donde comenzarás a escribir.</p>
+<p>El primer párrafo de una publicación se tomará como título (también se utilizará como nombre del archivo separado por guiones), y el último párrafo se utilizará para definir las etiquetas o categorías a las que pertenecerá (separadas por comas).</p>
+<p>Al guardar y salir del editor de textos, se te preguntará qué acción realizar, ya sea publicar, editar o guardar como borrador:
+<code>[P]ost this entry, [E]dit again, [D]raft for later? (p/E/d)</code></p>
+<p>Cada vez que se realiza una publicación, el script genera un respaldo del blog en un archivo <code>.backup.tar.gz</code> y un respaldo diario llamado <code>.yesterday.tar.gz</code>.</p>
+</blockquote>
+<p>Editar una publicación que se guardó como borrador (opción <code>[D]raft</code>):</p>
+<pre><code class="language-bash">bb.sh post drafts/archivo.md
+</code></pre>
+<p>Editar una publicación ya publicada (mantiene el mismo nombre de archivo):</p>
+<pre><code class="language-bash">bb.sh edit archivo.md
+</code></pre>
+<p>Editar una publicación ya publicada y cambiar el nombre del archivo si se modifica el título:</p>
+<pre><code class="language-bash">bb.sh edit -n archivo.md
+</code></pre>
+<p>Editar el HTML completo de una publicación ya publicada (mantiene el mismo nombre de archivo):</p>
+<pre><code class="language-bash">bb.sh edit -f archivo.md
+</code></pre>
+<blockquote><p>Los archivos de las publicaciones NUNCA se deben editar directamente.</p>
+</blockquote>
+<p>Eliminar una publicación y reconstruir el blog:</p>
+<pre><code class="language-bash">bb.sh delete archivo.md
+</code></pre>
+<p>Reconstruir todas las páginas y publicaciones del blog manteniendo su contenido:</p>
+<pre><code class="language-bash">bb.sh rebuild
+</code></pre>
+<blockquote><p>La acción de reconstruir es útil cuando modificas la configuración o los estilos CSS de tu blog.</p>
+</blockquote>
+<p>Eliminar todos los archivos asociados al blog:</p>
+<pre><code class="language-bash">bb.sh reset
+</code></pre>
+<blockquote><p>Para confirmar la acción, debes escribir <code>Yes, I am!</code>. Y antes de eliminar todo, el script genera un respaldo del blog.</p>
+</blockquote>
+<p>Listar todas las publicaciones:</p>
+<pre><code class="language-bash">bb.sh list
+</code></pre>
+<p>Listar todas las etiquetas en orden alfabético:</p>
+<pre><code class="language-bash">bb.sh tags
+</code></pre>
+<p>Listar todas las etiquetas ordenadas por número de publicaciones:</p>
+<pre><code class="language-bash">bb.sh tags -n
+</code></pre>
+<h2>Conclusión</h2>
+<p>Si eres un fanático de la terminal, BashBlog es una herramienta simple y rápida para comenzar a crear tu blog. Aunque carece de un sistema de organización por carpetas para las publicaciones, te permite adjuntar recursos estáticos como imágenes, videos o archivos en tus publicaciones, organizándolos como los necesitas.</p>
+<h2>Referencias</h2>
+<ul>
+<li><a href="https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/">https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/</a></li>
+<li><a href="https://github.com/cfenollosa/bashblog">https://github.com/cfenollosa/bashblog</a></li>
+</ul>
+<p>Etiquetas: <a href='etiqueta_herramientas.html'>herramientas</a></p>
+<!-- text end -->
+<!-- entry end -->
+</div>
+<div id="footer">CC by-sa 4.0 <a href="https://gitman.io/ricardogj08">Ricardo García Jiménez</a> &mdash; <a href="mailto:ricardogj08&#64;tutamail&#46;com">ricardogj08&#64;tutamail&#46;com</a><br/>
+Generated with <a href="https://github.com/cfenollosa/bashblog">bashblog</a>, a single bash script to easily create blogs like this one</div>
+</div></div>
+</body></html>
diff --git a/docs/bashblog-un-script-en-bash-para-crear-blogs.md b/docs/bashblog-un-script-en-bash-para-crear-blogs.md
new file mode 100644
index 0000000..a2c8ed1
--- /dev/null
+++ b/docs/bashblog-un-script-en-bash-para-crear-blogs.md
@@ -0,0 +1,190 @@
+BashBlog: Un script en Bash para crear blogs
+
+En 2020 leí un artículo de [Victorhck](https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/) donde mostraba el uso de una herramienta para crear blogs utilizando un script en Bash, y desde ese entonces siempre me pareció interesante. Durante ese tiempo me daba vueltas en mi mente la idea de abrir un blog personal donde pudiera escribir y guardar simplemente mis notas o bitácoras de herramientas que voy descubriendo y aprendiendo a utilizar en Linux. Hasta este año, por fin me animé a dar el paso y crear este blog para que de alguna manera, ir organizando en este espacio todas esas lluvias de notas que he ido escribiendo, y se me ocurrió comenzar publicando mis notas sobre esta misma herramienta que me permitió abrir mi blog. 
+
+---
+
+## Instalación
+
+Clona el repositorio:
+
+```bash
+git clone https://github.com/cfenollosa/bashblog.git
+cd bashblog
+```
+
+Otorga permisos de ejecución y cópialo para tenerlo disponible en todo el sistema:
+
+```bash
+chmod 755 bb.sh
+sudo cp bb.sh /usr/local/bin
+```
+
+> Si tienes en mente escribir todas tus publicaciones en Markdown, debes instalar un programa que convierta Markdown a HTML (por ejemplo: `Markdown.pl`, `markdown`, `smu`).
+
+## Configuración
+
+Puedes modificar directamente las variables de configuración dentro de la función `global_variables()` en el script, o crear un archivo `.config` en el directorio donde vivirán todas las publicaciones de tu blog.
+
+Aquí se listan y explican las variables que puedes configurar:
+
+| Variable | Descripción |
+| -------- | ----------- |
+| `global_title` | Título del blog. |
+| `global_description` | Descripción o subtítulo del blog. |
+| `global_url` | URL pública del blog (sin barra al final). |
+| `global_author` | Nombre del autor principal del blog. |
+| `global_author_url` | URL del perfil, repositorio o sitio web del autor. |
+| `global_email` | Correo electrónico del autor. |
+| `global_license` | Licencia del contenido del blog. |
+| `global_analytics` | ID de Google Analytics (ej. `UA-XXXXX`). |
+| `global_analytics_file` | Archivo con código personalizado para otros sistemas de analíticas o para el código Universal de Google Analytics. |
+| `global_feedburner` | URL de Feedburner para redirigir el feed RSS. Déjalo vacío para usar el feed local. |
+| `global_twitter_username` | Nombre de usuario de Twitter (sin la `@`) para el enlace de compartir y las menciones. |
+| `global_twitter_card_image` | URL absoluta de la imagen por defecto para las vistas previas (Twitter Cards) de los enlaces del blog. |
+| `global_twitter_cookieless` | Si es `true`, muestra un enlace simple para compartir (sin cookies ni scripts). Si es `false`, carga el widget oficial de Twitter con el contador de tweets. |
+| `global_disqus_username` | Nombre de usuario de tu cuenta de Disqus para habilitar los comentarios. |
+| `index_file` | Nombre del archivo de la página principal. |
+| `number_of_index_articles` | Número de posts que se mostrarán en la página principal. |
+| `archive_index` | Nombre del archivo que lista todos los posts. |
+| `tags_index` | Nombre del archivo que lista todas las etiquetas (tags). |
+| `non_blogpost_files` | Array de archivos HTML que BashBlog ignorará al generar la página principal y los feeds. Orientado a páginas estáticas que no son posts (ej. (`about.html` `contact.html`)). |
+| `blog_feed` | Nombre del archivo del feed RSS. |
+| `number_of_feed_articles` | Número de posts que se incluirán en el feed RSS. |
+| `cut_do` | Si es `cut`, se mostrará el contenido del post solo hasta la primera línea horizontal en la página principal y en el feed RSS. Si se deja vacío (`""`), se muestra el post completo. |
+| `cut_tags` | Si es `yes` y la opción anterior es `cut`, oculta las etiquetas del post en la página principal. Si es `no`, las etiquetas seguirán visibles aunque el texto esté cortado. |
+| `cut_line` | Expresión regular que indica la línea HTML donde se debe cortar el post. |
+| `save_markdown` | Si es `yes`, guarda el archivo Markdown (`.md`) original junto al archivo HTML (`.html`) generado. Si se deja vacío (`""`), se descarta el `.md` y solo se conserva el `.html`. |
+| `prefix_tags` | Prefijo de los archivos HTML generados para cada etiqueta (tag). |
+| `header_file` | Ruta a un archivo HTML con una cabecera `<head>` personalizada. Déjalo vacío para que BashBlog la genere automáticamente. |
+| `footer_file` | Ruta a un archivo HTML con un pie de página (footer) personalizado. Déjalo vacío para que BashBlog lo genere automáticamente. |
+| `body_begin_file` | Archivo HTML cuyo contenido se incrustará justo después de abrir la etiqueta `<body>`. |
+| `body_end_file` | Archivo HTML cuyo contenido se incrustará justo antes de cerrar la etiqueta `</body>`. |
+| `body_begin_file_index` | Similar a `body_begin_file`, pero su contenido solo se incrusta en la página principal (`index.html`). |
+| `css_include` | Array de archivos CSS que se enlazarán en todas las páginas (ej. (`main.css` `blog.css`)). Si se deja vacío, BashBlog generará uno por defecto. |
+| `html_exclude` | Array de archivos HTML que se excluirán de la página principal, del feed RSS y de los conteos de etiquetas. Útil para posts antiguos u obsoletos que no quieres que aparezcan en la portada. |
+| `template_comments` | Texto que aparece junto al enlace de Twitter (ej. `¿Comentarios?`). |
+| `template_read_more` | Texto del enlace `Leer más...` que aparece cuando un post se corta en la página principal o en las páginas de etiquetas. |
+| `template_archive` | Texto del enlace para ir a la página de todos los posts al final de la página principal. |
+| `template_archive_title` | Título de la página que lista todos los posts. |
+| `template_tags_title` | Título de la página que lista todas las etiquetas. |
+| `template_tags_posts` | Palabra en plural para referirse a los posts (ej. `artículos` o `posts`). |
+| `template_tags_posts_2_4` | Palabra en plural especial para lenguas eslavas (usada cuando hay entre 2 y 4 posts). |
+| `template_tags_posts_singular` | Palabra en singular para referirse a los posts (ej. `artículo` o `post`). |
+| `template_tag_title` | Texto para el `<title>` de las páginas de una etiqueta específica (ej. `Artículos etiquetados con`). |
+| `template_tags_line_header` | Texto que precede a la lista de etiquetas en un post (ej. `Etiquetas:`). |
+| `template_archive_index_page` | Texto del enlace para volver a la página principal desde las páginas de todos los posts y etiquetas. |
+| `template_subscribe` | Texto del enlace visible para suscribirse al feed RSS al final de la página principal. |
+| `template_subscribe_browser_button` | Texto interno (atributo `title`) que utilizan los navegadores o lectores de RSS para identificar el feed al detectarlo automáticamente. |
+| `template_twitter_button` | Texto visible del enlace para compartir el post en Twitter. |
+| `template_twitter_comment` | Texto predeterminado que aparece al compartir un post en Twitter. |
+| `date_format` | Formato para mostrar la fecha de publicación de los posts en las páginas. |
+| `date_locale` | Configuración regional (locale) para traducir los nombres de meses y días en las fechas (ej. `es_MX.UTF-8`). |
+| `preview_url` | URL para previsualizar el post mientras se edita. Por defecto utiliza el valor de `global_url`. Útil si escribes posts en local antes de subirlos al servidor. |
+| `markdown_bin` | Ruta al ejecutable del programa que convierte Markdown a HTML (ej. `markdown` o `Markdown.pl`). Déjalo vacío para que el script lo detecte automáticamente. |
+
+## Uso
+
+Mostrar un mensaje de ayuda con los comandos disponibles:
+
+```bash
+bb.sh
+```
+
+Comenzar a crear una publicación en Markdown (por defecto) o en HTML si no se encuentra un convertidor:
+
+```bash
+bb.sh post
+```
+
+Comenzar a crear una publicación en HTML:
+
+```bash
+bb.sh post -html
+```
+
+> Al comenzar la creación de una publicación, se abrirá el editor de textos configurado en la variable de entorno `$EDITOR`, que será el espacio donde comenzarás a escribir.
+>
+> El primer párrafo de una publicación se tomará como título (también se utilizará como nombre del archivo separado por guiones), y el último párrafo se utilizará para definir las etiquetas o categorías a las que pertenecerá (separadas por comas).
+>
+> Al guardar y salir del editor de textos, se te preguntará qué acción realizar, ya sea publicar, editar o guardar como borrador:
+> `[P]ost this entry, [E]dit again, [D]raft for later? (p/E/d)`
+>
+> Cada vez que se realiza una publicación, el script genera un respaldo del blog en un archivo `.backup.tar.gz` y un respaldo diario llamado `.yesterday.tar.gz`.
+
+Editar una publicación que se guardó como borrador (opción `[D]raft`):
+
+```bash
+bb.sh post drafts/archivo.md
+```
+
+Editar una publicación ya publicada (mantiene el mismo nombre de archivo):
+
+```bash
+bb.sh edit archivo.md
+```
+
+Editar una publicación ya publicada y cambiar el nombre del archivo si se modifica el título:
+
+```bash
+bb.sh edit -n archivo.md
+```
+
+Editar el HTML completo de una publicación ya publicada (mantiene el mismo nombre de archivo):
+
+```bash
+bb.sh edit -f archivo.md
+```
+
+> Los archivos de las publicaciones NUNCA se deben editar directamente.
+
+Eliminar una publicación y reconstruir el blog:
+
+```bash
+bb.sh delete archivo.md
+```
+
+Reconstruir todas las páginas y publicaciones del blog manteniendo su contenido:
+
+```bash
+bb.sh rebuild
+```
+
+> La acción de reconstruir es útil cuando modificas la configuración o los estilos CSS de tu blog.
+
+Eliminar todos los archivos asociados al blog:
+
+```bash
+bb.sh reset
+```
+
+> Para confirmar la acción, debes escribir `Yes, I am!`. Y antes de eliminar todo, el script genera un respaldo del blog.
+
+Listar todas las publicaciones:
+
+```bash
+bb.sh list
+```
+
+Listar todas las etiquetas en orden alfabético:
+
+```bash
+bb.sh tags
+```
+
+Listar todas las etiquetas ordenadas por número de publicaciones:
+
+```bash
+bb.sh tags -n
+```
+
+## Conclusión
+
+Si eres un fanático de la terminal, BashBlog es una herramienta simple y rápida para comenzar a crear tu blog. Aunque carece de un sistema de organización por carpetas para las publicaciones, te permite adjuntar recursos estáticos como imágenes, videos o archivos en tus publicaciones, organizándolos como los necesitas.
+
+## Referencias
+
+* <https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/>
+* <https://github.com/cfenollosa/bashblog>
+
+Etiquetas: herramientas
diff --git a/docs/etiqueta_herramientas.html b/docs/etiqueta_herramientas.html
new file mode 100644
index 0000000..0f9686c
--- /dev/null
+++ b/docs/etiqueta_herramientas.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<link rel="stylesheet" href="main.css" type="text/css" />
+<link rel="stylesheet" href="blog.css" type="text/css" />
+<link rel="alternate" type="application/rss+xml" title="Suscribirse a esta página..." href="feed.rss" />
+<title>🐇 La Madriguera del Conejito &mdash; Publicaciones etiquetadas con "herramientas"</title>
+</head><body>
+<div id="divbodyholder">
+<div class="headerholder"><div class="header">
+<div id="title">
+<h1 class="nomargin"><a class="ablack" href="https://ricardogj08.gitman.io/blog/index.html">🐇 La Madriguera del Conejito</a></h1>
+<div id="description">Servidores y Linux desde la madriguera 🐧</div>
+</div></div></div>
+<div id="divbody"><div class="content">
+<h3><a class="ablack" href="bashblog-un-script-en-bash-para-crear-blogs.html">
+BashBlog: Un script en Bash para crear blogs
+</a></h3>
+<!-- bashblog_timestamp: #202606141229.52# -->
+<div class="subtitle">junio 14, 2026 &mdash; 
+Ricardo García Jiménez
+</div>
+<!-- text begin -->
+<p>En 2020 leí un artículo de <a href="https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/">Victorhck</a> donde mostraba el uso de una herramienta para crear blogs utilizando un script en Bash, y desde ese entonces siempre me pareció interesante. Durante ese tiempo me daba vueltas en mi mente la idea de abrir un blog personal donde pudiera escribir y guardar simplemente mis notas o bitácoras de herramientas que voy descubriendo y aprendiendo a utilizar en Linux. Hasta este año, por fin me animé a dar el paso y crear este blog para que de alguna manera, ir organizando en este espacio todas esas lluvias de notas que he ido escribiendo, y se me ocurrió comenzar publicando mis notas sobre esta misma herramienta que me permitió abrir mi blog. </p>
+<p class="readmore"><a href="bashblog-un-script-en-bash-para-crear-blogs.html">Leer más...</a></p>
+</div>
+<div id="footer">CC by-sa 4.0 <a href="https://gitman.io/ricardogj08">Ricardo García Jiménez</a> &mdash; <a href="mailto:ricardogj08&#64;tutamail&#46;com">ricardogj08&#64;tutamail&#46;com</a><br/>
+Generated with <a href="https://github.com/cfenollosa/bashblog">bashblog</a>, a single bash script to easily create blogs like this one</div>
+</div></div>
+</body></html>
diff --git a/docs/etiquetas.html b/docs/etiquetas.html
index e23b149..81f6ca6 100644
--- a/docs/etiquetas.html
+++ b/docs/etiquetas.html
@@ -16,6 +16,7 @@
 <div id="divbody"><div class="content">
 <h3>Todas las etiquetas</h3>
 <ul>
+<li><a href="etiqueta_herramientas.html">herramientas</a> &mdash; 1 publicación</li>
 <li><a href="etiqueta_personal.html">personal</a> &mdash; 1 publicación</li>
 </ul>
 <div id="all_posts"><a href="./index.html">Volver a la página principal</a></div>
diff --git a/docs/feed.rss b/docs/feed.rss
index f5743ea..738a986 100644
--- a/docs/feed.rss
+++ b/docs/feed.rss
@@ -2,10 +2,19 @@
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel><title>🐇 La Madriguera del Conejito</title><link>https://ricardogj08.gitman.io/blog/index.html</link>
 <description>Servidores y Linux desde la madriguera 🐧</description><language>en</language>
-<lastBuildDate>Fri, 12 Jun 2026 03:52:44 -0600</lastBuildDate>
-<pubDate>Fri, 12 Jun 2026 03:52:44 -0600</pubDate>
+<lastBuildDate>Sun, 14 Jun 2026 13:28:37 -0600</lastBuildDate>
+<pubDate>Sun, 14 Jun 2026 13:28:37 -0600</pubDate>
 <atom:link href="https://ricardogj08.gitman.io/blog/feed.rss" rel="self" type="application/rss+xml" />
 <item><title>
+BashBlog: Un script en Bash para crear blogs
+</title><description><![CDATA[
+<p>En 2020 leí un artículo de <a href="https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/">Victorhck</a> donde mostraba el uso de una herramienta para crear blogs utilizando un script en Bash, y desde ese entonces siempre me pareció interesante. Durante ese tiempo me daba vueltas en mi mente la idea de abrir un blog personal donde pudiera escribir y guardar simplemente mis notas o bitácoras de herramientas que voy descubriendo y aprendiendo a utilizar en Linux. Hasta este año, por fin me animé a dar el paso y crear este blog para que de alguna manera, ir organizando en este espacio todas esas lluvias de notas que he ido escribiendo, y se me ocurrió comenzar publicando mis notas sobre esta misma herramienta que me permitió abrir mi blog. </p>
+<hr />
+]]></description><link>https://ricardogj08.gitman.io/blog/bashblog-un-script-en-bash-para-crear-blogs.html</link>
+<guid>https://ricardogj08.gitman.io/blog/./bashblog-un-script-en-bash-para-crear-blogs.html</guid>
+<dc:creator>Ricardo García Jiménez</dc:creator>
+<pubDate>Sun, 14 Jun 2026 12:29:52 -0600</pubDate></item>
+<item><title>
 Bienvenido a mi blog
 </title><description><![CDATA[
 <p>Iré publicando contenido en lo posible. Estén atentos.</p>
diff --git a/docs/index.html b/docs/index.html
index 3b3191d..d798b24 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -14,6 +14,16 @@
 <div id="description">Servidores y Linux desde la madriguera 🐧</div>
 </div></div></div>
 <div id="divbody"><div class="content">
+<h3><a class="ablack" href="bashblog-un-script-en-bash-para-crear-blogs.html">
+BashBlog: Un script en Bash para crear blogs
+</a></h3>
+<!-- bashblog_timestamp: #202606141229.52# -->
+<div class="subtitle">junio 14, 2026 &mdash; 
+Ricardo García Jiménez
+</div>
+<!-- text begin -->
+<p>En 2020 leí un artículo de <a href="https://victorhckinthefreeworld.com/2020/03/20/crea-blog-web-script-bash/">Victorhck</a> donde mostraba el uso de una herramienta para crear blogs utilizando un script en Bash, y desde ese entonces siempre me pareció interesante. Durante ese tiempo me daba vueltas en mi mente la idea de abrir un blog personal donde pudiera escribir y guardar simplemente mis notas o bitácoras de herramientas que voy descubriendo y aprendiendo a utilizar en Linux. Hasta este año, por fin me animé a dar el paso y crear este blog para que de alguna manera, ir organizando en este espacio todas esas lluvias de notas que he ido escribiendo, y se me ocurrió comenzar publicando mis notas sobre esta misma herramienta que me permitió abrir mi blog. </p>
+<p class="readmore"><a href="./bashblog-un-script-en-bash-para-crear-blogs.html">Leer más...</a></p>
 <h3><a class="ablack" href="bienvenido-a-mi-blog.html">
 Bienvenido a mi blog
 </a></h3>
diff --git a/docs/publicaciones.html b/docs/publicaciones.html
index 00e653b..50ce90b 100644
--- a/docs/publicaciones.html
+++ b/docs/publicaciones.html
@@ -17,6 +17,7 @@
 <h3>Todas las publicaciones</h3>
 <h4 class='allposts_header'>junio 2026</h4>
 <ul>
+<li><a href="./bashblog-un-script-en-bash-para-crear-blogs.html">BashBlog: Un script en Bash para crear blogs</a> &mdash; junio 14, 2026</li>
 <li><a href="./bienvenido-a-mi-blog.html">Bienvenido a mi blog</a> &mdash; junio 12, 2026</li>
 </ul>
 <div id="all_posts"><a href="./index.html">Volver a la página principal</a></div>