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)
-
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
-
- 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
Source