BSSG: Crea sitios estáticos en Bash de forma simple y rápida

BSSG es un generador de sitios estáticos escrito en Bash. Convierte artículos o páginas redactadas en Markdown en archivos HTML estáticos, con soporte para RSS, mapas del sitio, etiquetas, archivos y más de 50 temas CSS que se pueden cambiar fácilmente sin romper la estructura del sitio.

BSSG es extremadamente simple y fácil de usar, permitiéndote tener un blog en funcionamiento en cuestión de minutos.

Lo que hace especial a BSSG es la facilidad con la que puedes cambiar de tema sin complicaciones.

Este proyecto es el resultado de más de 10 años de trabajo de su creador, Stefano Marinelli, y genera sitios que alcanzan puntuaciones muy altas en accesibilidad y velocidad.

Características destacadas

  • Portabilidad: Utiliza herramientas nativas del sistema operativo (por ejemplo, md5sum en Linux o md5 en OpenBSD y NetBSD).

  • Temas simples: Los temas son únicamente archivos CSS, lo que mantiene inalterable la estructura del sitio y facilita la creación o cambio de temas. Hay más de 50 disponibles, que puedes ver aquí.

  • Funciones esenciales: Soporte para feeds RSS, sitemap.xml, etiquetas OpenGraph (para compartir en redes sociales), e internacionalización (el blog puede estar en otros idiomas, aunque no es multilingüe).

  • Script de copia de seguridad y restauración: Solo copia archivos esenciales como la configuración, publicaciones y páginas.

  • Dependencias mínimas.

  • Compatibilidad con Markdown: Admite CommonMark, Pandoc y markdown.pl.

  • Imágenes destacadas.

  • Integración opción al con GNU Parallel: Acelera la construcción de sitios con muchas publicaciones.

  • Alta accesibilidad y rendimiento: Sitios rápidos y accesibles de forma predeterminada.

  • Licencia BSD: Código abierto bajo una licencia muy permisiva.

Además, experimentalmente, BSSG cuenta con una interfaz de administración básica (basada en Node Express), que incluye un editor Markdown y permite programar publicaciones, generando archivos y ejecutando el generador en el momento adecuado.


Requisitos

Para utilizar BSSG necesitarás:

  • Bash

  • Un procesador de Markdown: cmark (por defecto y recomendado), pandoc o markdown.pl (configurable mediante MARKDOWN_PROCESSOR en config.sh.local)

  • Utilidades estándar de Unix (awk, sed, grep, find, date, entre otras)

  • (Opcional) GNU parallel para construcciones más rápidas


Instalación

El proceso de instalación es muy sencillo:

Clona el repositorio de BSSG

git clone https://brew.bsd.cafe/stefano/BSSG.git
cd BSSG

Inicializa el directorio de tu sitio

./bssg.sh init /ruta/hacia/tu/sitio/web

Este comando creará un nuevo directorio para tu sitio web con la estructura necesaria (src, pages, drafts, static) y el archivo de configuración config.sh.local. El script te preguntará si deseas configurar automáticamente los scripts para trabajar con tu nuevo sitio.

🗨️ Si optas por separar el sitio de los scripts principales (opción recomendada), toda la configuración se realizará en /ruta/hacia/tu/sitio/web/config.sh.local.


Crea tu primera publicación

Para crear una nueva entrada en tu blog:

./bssg.sh post

Salida de ejemplo:

[SUCCESS] Default configuration loaded from config.sh
[SUCCESS] Local configuration loaded from config.sh.local
[INFO] Loading locale: es from locales/es.sh
[INFO] Expanding tilde (~) in configuration paths...
Central configuration loaded vía config_loader.sh
Starting interactive post creation...
Enter post title:

Si no configuraste los scripts automáticamente en el paso anterior, debes indicar manualmente el archivo de configuración:

./bssg.sh post --config /ruta/hacia/tu/sitio/web/config.sh.local

También puedes crear manualmente un archivo .md en la carpeta /src utilizando tu editor de texto favorito.


Construye tu sitio

Una vez tengas tus publicaciones listas:

./bssg.sh build

Salida:

[SUCCESS] Default configuration loaded from config.sh
[SUCCESS] Local configuration loaded from config.sh.local
[INFO] Loading locale: es from locales/es.sh
[INFO] Expanding tilde (~) in configuration paths...
Central configuration loaded vía config_loader.sh
Parsing build-specific arguments...
Invoking build process (scripts/build/main.sh)...
BSSG Build Process - Starting...
Already in project root: /home/carlos/Descargas/bssg/BSSG
Using theme: terminal
Loaded utilities.
Checking dependencies...
GNU parallel found! Using parallel processing.

Recuerda que, si no configuraste los scripts automáticamente, debes indicar la ubicación de la configuración:

./bssg.sh build --config /ruta/hacia/tu/sitio/web/config.sh.local

Visualiza tu sitio localmente

Para ver tu sitio en tu navegador:

cd /ruta/hacia/tu/sitio/web/
python3 -m http.server 8000

Accede a http://localhost:8000 desde tu navegador favorito.

Captura de pantalla de BSSG funcionando


Esto es solo una pequeña muestra de todo lo que BSSG puede ofrecerte. Cuenta con muchas más funcionalidades, como copias de seguridad automáticas y despliegue de sitios en servidores remotos. Puedes leer más en su documentación oficial.

Espero que te haya gustado, pasa un gran día 🐧