¿Qué hace Blog — Jekyll + GitHub Pages?
Repositorio: ~/repos/github.com/<tu>/<tu>.github.io
Motor: Jekyll + GitHub Pages, tema: minima
Rama: master → se despliega automáticamente al hacer push
Índice: mantén un archivo de notas del índice del blog (por ejemplo, ~/notes/blog.md) — actualízalo después de cada publicación
Nota — No es necesario compilar Jekyll localmente. GitHub compila en el servidor.
⚠️ Regla estricta: sin información del empleador
NUNCA incluyas en ninguna publicación:
- Herramientas internas, sistemas, nombres en clave o infraestructura de tu empleador
- Nombres de proyectos internos, nombres de equipos, estructura organizativa o detalles de hojas de ruta
- Nombres de clientes, socios o detalles de contratos
- Tickets internos, páginas wiki o contenido de reuniones
- Salario, número de empleados, presupuesto o métricas empresariales
Escribe sobre técnicas, herramientas y patrones — no sobre dónde trabajas ni qué envía tu empleador. Ante la duda, pregunta al usuario antes de publicar.
Flujo de trabajo
1. Escribe la publicación
_posts/AAAA-MM-DD-slug-aqui.md
Frontmatter:
---
layout: post
title: "Tu título aquí"
date: AAAA-MM-DD
categories: ai agentes productividad # separados por espacios
series: "Productividad con agentes de IA" # omitir si no es parte de una serie
---
2. Estilo
- Empieza con el problema, no con la solución
- Una oración de apertura concreta — nada de "En este post voy a..."
- Bloques de código para todo lo que se pueda ejecutar
- Tablas para comparaciones
- Termina con una sección
## Fuentesenlazando repositorios/referencias - Sin relleno de LLM — escribe como un README
- Escapa
@palabracomo\@palabrapara evitar errores de citación en Typst si alguna vez se necesita PDF
Elige una publicación bien valorada del blog y úsala como referencia de tono y densidad.
3. Verifica cada enlace ANTES de publicar (no lo omitas)
Citar URLs de memoria produce errores 404. Verifica primero el estado HTTP de cada enlace:
for u in "https://example.com/a" "https://example.com/b"; do
echo "$(curl -sS -L -o /dev/null -w '%{http_code}' "$u") $u"
done
Cada enlace DEBE devolver 200 (o 301/302 hacia un destino válido) antes de hacer commit. Esto es más barato que publicar un enlace roto y arreglarlo después de que el usuario lo detecte.
4. Haz commit y push
cd ~/repos/github.com/<tu>/<tu>.github.io
git add _posts/AAAA-MM-DD-slug.md
git commit -m "post: <título>"
git push # GitHub Pages despliega automáticamente en ~60s
5. Actualiza el índice
Agrega una fila a la tabla ## Posts en el archivo de notas del índice del blog (más reciente primero), y añade la publicación a la fila ## Active series si pertenece a una serie:
| AAAA-MM-DD | Título | `categoría/ruta/AAAA/MM/DD/slug.html` |
La URL sigue el patrón permalink de Jekyll derivado de categories + date + slug.
6. Verifica que realmente se publicó (no lo omitas)
Una compilación exitosa de Pages NO significa que la publicación esté activa — Jekyll descarta silenciosamente las publicaciones con fecha futura. CURL a la URL real después de que la compilación termine:
base="https://<tu>.github.io"; slug="/CATEGORIA/RUTA/AAAA/MM/DD/slug.html"
curl -sS -L -o /dev/null -w "%{http_code}\n" "$base$slug" # debe ser 200
curl -sS -L "$base/" | grep -o 'slug[^"]*html' | head -1 # debe aparecer en la página de inicio
Si devuelve 404 pero la compilación fue exitosa, es casi seguro la trampa de fecha futura que se describe a continuación.
Salvaguardas al actualizar publicaciones ya publicadas
- Conserva la narrativa original y añade una actualización claramente etiquetada, a menos que el usuario solicite explícitamente una reescritura.
- Verifica HTTP solo para URLs nuevas o modificadas; no verifiques repetidamente enlaces de publicaciones ya publicadas a menos que se solicite una auditoría de enlaces.
- Después de hacer push, verifica que la URL real publicada devuelva HTTP 200.
Consejos
- Mantén una sección
## TODOen el archivo de notas del índice del blog para ideas de borradores; revísala antes de empezar desde cero - Si la publicación continúa o contradice una publicación anterior, enlázala con
{% post_url AAAA-MM-DD-slug %} - Publicación antes del amanecer + trampa de fecha futura: Jekyll interpreta un
date: AAAA-MM-DDsin hora como medianoche en la zona horaria del sitio y descarta silenciosamente las publicaciones con fecha futura. Antes de que_config.ymltuviera una líneatimezone:explícita, una publicación escrita a las 04:00 hora local se leía como medianoche UTC = ~1h en el futuro → descartada hasta que UTC la alcanzara. Configuratimezone:en_config.ymly NO la elimines. Si una publicación escrita antes del amanecer aún devuelve 404 después de una compilación exitosa, agrega una hora explícita al frontmatter (date: AAAA-MM-DD 04:00:00 +0530).