gemlogtxt - Sistema simple para gemlogs

¿QUÉ ES ESTO?

Un script bash que convierte un archivo de texto simple en un gemlog completo con índice automático, sistema de etiquetas y entradas programadas.

LA IDEA

Escribir tu gemlog debería ser tan fácil como escribir en un cuaderno. Sin bases de datos, sin interfaces web, solo texto plano.

CÓMO USARLO

1. Crea un archivo de entradas (ej: mi_gemlog.txt)

2. Ejecuta: ./gemlogtxt.sh mi_gemlog.txt

3. Tu gemlog estará en la carpeta 'gemlog/'

FORMATO DEL ARCHIVO

' Comentarios con comilla simple
2024-01-15
nombre_entrada
Título de la entrada
#gemini #tutorial #linux
Contenido de la entrada
puede tener múltiples líneas
y hasta formato gemtext
=> enlaces.gmi Enlaces útiles

<END>

ESTRUCTURA

- Fecha (AAAA-MM-DD) - ¡OBLIGATORIO Y DEBE SER VÁLIDA!

- Nombre del archivo (sin .gmi)

- Título de la entrada

- Línea de etiquetas (opcional, empieza con #)

- Contenido (multilínea)

- (separador)

CARACTERÍSTICAS DESTACADAS

✓ Preserva formato ASCII art y espacios en blanco

✓ Sistema de etiquetas automático y navegable

✓ Entradas programadas para fechas futuras

✓ Validación robusta de fechas

✓ Índice ordenado por fecha (más reciente primero)

✓ Tags ordenados por popularidad

✓ Generación automática de navegación

✓ Compatible con cualquier servidor Gemini

SISTEMA DE ETIQUETAS AVANZADO

- Cada etiqueta genera un archivo individual en `tags/`

- Las etiquetas se ordenan por uso (de más a menos popular)

- Navegación completa entre etiquetas y entradas

- Conteo automático de entradas por etiqueta

- Las etiquetas de entradas programadas se activan automáticamente

ARCHIVOS GENERADOS

gemlog/
├── index.gmi           (Índice principal por fecha)
├── tags.gmi            (Índice de etiquetas ordenadas)
├── entrada1.gmi        (Tus entradas individuales)
├── entrada2.gmi
└── tags/               (Directorio de etiquetas)
    ├── gemini.gmi      (Página de etiqueta #gemini)
    ├── linux.gmi       (Página de etiqueta #linux)
    └── ...

VALIDACIÓN DE FECHAS

El script valida que:

✓ La fecha tenga formato AAAA-MM-DD

✓ La fecha exista en el calendario

✓ No se aceptan fechas como 2024-02-30 o 2024-13-01

Si una fecha es inválida:

❌ La entrada NO se procesa

❌ Se muestra un error específico

❌ El script termina con código de error 1

ENTRADAS PROGRAMADAS

Si pones una fecha futura:

- Se crea el archivo .gmi inmediatamente

- No aparece en el índice hasta esa fecha

- Los tags NO se procesan hasta la fecha de publicación

- El día indicado, aparecerá automáticamente

- Perfecto para escribir contenido con anticipación

AUTOMATIZACIÓN CON CRON

Para regenerar automáticamente tu gemlog diariamente:

1. Edita tu crontab: crontab -e

2. Añade esta línea (ajusta la ruta):

0 6 * * * /ruta/completa/gemlogtxt.sh /ruta/completa/mi_gemlog.txt

Esto ejecutará el script cada día a las 6:00 AM, haciendo que:

- Las entradas programadas para hoy aparezcan automáticamente

- Los índices se actualicen con nuevas entradas

- Los tags se regeneren incluyendo nuevas publicaciones

FLUJO DE TRABAJO RECOMENDADO

1. Escribe nuevas entradas al final de tu archivo

2. Programa para fechas futuras si es necesario

3. El cron diario se encarga de publicarlas

4. ¡Sigue escribiendo sin preocupaciones!

SYNTAX HIGHLIGHT PARA NANO

Incluye el archivo `nanorc-gemlogTXT` con reglas de colores para nano:

1. Copiar el contenido a `~/.nanorc`

2. O crear: `~/.nano/gemlog.nanorc` y añadir: `include "~/.nano/gemlog.nanorc"`

3. Los archivos .gemlog se verán con colores automáticamente

Colores:

- Comentarios: Verde

- Fechas: Amarillo

- Etiquetas: Magenta

- : Rojo

- Nombres archivo: Cian

EJEMPLOS DE FECHAS VÁLIDAS/INVÁLIDAS

VÁLIDAS:

2024-01-15

2024-12-31

2025-02-28

INVÁLIDAS:

2024-02-30 (febrero no tiene 30 días)

2024-13-01 (mes 13 no existe)

2024-1-1 (formato incorrecto)

hola-mundo (no es una fecha)

EJEMPLO DE ARCHIVO COMPLETO

' Mi primer gemlog
2024-01-15
bienvenida
Bienvenido a mi gemlog
#presentacion #gemini
Hola, este es mi primer gemlog.
Espero que disfrutes el contenido.

=> gemini://ejemplo.com Visita este sitio
<END>

' Entrada programada
2024-01-20
futuro
Esta entrada es del futuro
#programado #sorpresa
Esta entrada no aparecerá hasta el 20 de enero.
<END>

PERSONALIZACIÓN

Edita las variables al inicio del script:

- Títulos

- Textos de bienvenida

- Mensajes del footer

- Nombres de directorios

FILOSOFÍA

Menos es más. Escribe, ejecuta, publica. Tu contenido importa, no la tecnología.

CONSEJOS ÚTILES

✓ Usa nombres de archivo descriptivos

✓ Las etiquetas con múltiples palabras usan guiones: #mi-etiqueta

✓ Programa entradas para mantener consistencia

✓ El cron diario es tu mejor amigo para automatizar

✓ Los ASCII art conservan su formato perfectamente

Descargar GemlogTXT


Source