Un mini blog estático basado en ficheros Markdown. Cada URL limpia como /mi-post carga y renderiza files/mi-post.md. No requiere build ni backend: basta con servir estos archivos estáticos en cualquier servidor web.
- Sin dependencias de build: HTML + CSS + JS plano.
- Render de Markdown con
markedvía CDN. - Modo claro/oscuro con persistencia en
localStoragey respeto al tema del sistema. - Branding configurable (título y texto del pie) mediante
config.json. - Página 404 personalizada (
files/404.md). - Rutas limpias:
/→files/index.md,/algo→files/algo.md.
index.html: plantilla principal (carga el parser y app.js).app.js: lógica del enrutado y render de Markdown.styles.css: estilos (incluye variables para tema claro/oscuro).config.base.json: base de configuración. Cópiala aconfig.jsonpara personalizar.files/: aquí van tus páginas en Markdown.index.md: portada.404.md: mostrado cuando no se encuentra la página.
- La ruta actual se convierte en un “slug”.
/→index→ se cargafiles/index.md./alto→ se cargafiles/algo.md.
- Si el fichero no existe, se intenta mostrar
files/404.md. - El título del documento se actualiza con el primer
# Títulodel Markdown y el título base del sitio.
- Copia
config.base.jsoncomoconfig.jsonen la raíz del proyecto. - Ajusta los campos disponibles:
title: Título del sitio. También actualiza el “brand” del header.footerSpan: Texto que aparece antes de “Generado con …” en el pie.
Ejemplo config.json:
{
"title": "Mi Blog",
"footerSpan": "Mi Blog · "
}Notas:
config.jsonse carga en tiempo de ejecución. Si no existe, se usan valores por defecto.- El pie añade automáticamente un espacio si falta al final de
footerSpan.
- Crea un archivo Markdown dentro de
files/con el nombre de tu slug. - Visita la URL correspondiente en el navegador.
Ejemplos:
files/index.md→/o/indexfiles/mi-primer-post.md→/mi-primer-post
Sugerencia: empieza el archivo con # Mi título para que el title del documento se componga como “Mi título · <Título del sitio>”.
Para evitar problemas con fetch() al abrir archivos con file://, sirve el directorio con un servidor HTTP simple.
Opciones:
- Apache/Nginx/IIS (cualquier hosting clásico).
- Node (opcional):
npx serveonpx http-serveren la carpeta del proyecto. - Laragon/XAMPP/MAMP: coloca la carpeta dentro del directorio del servidor y navega a la URL local.
Es una SPA mínima: todas las rutas deberían resolver a index.html para que el JS decida qué Markdown cargar. Configura una regla de rewrite o fallback en tu hosting para que las rutas no existentes se sirvan con index.html.
Ejemplo (Apache, .htaccess):
FallbackResource /index.html
O reglas equivalentes en Nginx/Netlify/Vercel/etc.
- Modifica colores y tipografías en
styles.css(variables CSS al inicio). - El botón “🌓” alterna el tema y guarda la preferencia en
localStorage. - Edita la navegación en
index.htmlsi necesitas más enlaces.
- Veo 404 del navegador al navegar a
/mi-posten producción:- Falta una regla de fallback a
index.htmlen el servidor.
- Falta una regla de fallback a
- La portada carga pero no se actualiza el brand o el pie:
- Revisa que
config.jsonexista, sea JSON válido y esté en la raíz.
- Revisa que
- El Markdown no se renderiza y veo el texto en
<pre>:- La librería
markeddel CDN no cargó; revisa la conexión o la etiqueta<script>enindex.html.
- La librería
MIT