Esta página no existe. Vuelve a la portada o echa un vistazo a la bitácora.
+diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a69e1eb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+public/
+*~
+.*.un~
diff --git a/config.toml b/config.toml
index 1075322..0aacb94 100644
--- a/config.toml
+++ b/config.toml
@@ -22,17 +22,26 @@ include_content = true
index_format = "elasticlunr_json"
[extra]
+# SEO
+site_name = "Alejandro GS"
+author = "Alejandro GS"
+locale = "es_ES"
+twitter_handle = "@alejandro_gs73"
+og_image = "og-image.png"
+favicon = "favicon.png"
+stylesheets = ["css/seo.css"]
+
theme = "toggle"
fancy_code = true
fediverse = true
fediverse_creator = "@alejandrogs73@fosstodon.org"
-mathjax = true
+mathjax = false # activar por post con [extra] mathjax = true
mathjax_dollar_inline_enable = true
socials = [
- { name = "twitter", url = "https://twitter.com/alejandro_gs73", icon = "twitter" },
- { name = "github", url = "https://github.com/alejandrogs73/", icon = "github" },
- { name = "mastodon", url = "https://fosstodon.org/@alejandrogs73/", icon = "mastodon" },
+ { name = "twitter", url = "https://x.com/alejandro_gs73", icon = "twitter" },
+ { name = "github", url = "https://github.com/alejandrogs73", icon = "github" },
+ { name = "mastodon", url = "https://fosstodon.org/@alejandrogs73", icon = "mastodon" },
{ name = "email", url = "mailto:mail@alejandrogs.es", icon = "email" },
diff --git a/content/about.md b/content/about.md
index a9d844a..90047ce 100644
--- a/content/about.md
+++ b/content/about.md
@@ -7,7 +7,7 @@ path = "about"
> Sobre el autor, la soberanía, la trinchera y las estrellas.
-# Lo que hay detrás del teclado
+## Lo que hay detrás del teclado
No busques aquí un currículum ni una biografía corporativa. Soy programador, hispanista y, sobre todo, un disidente de la inercia moderna.
@@ -15,7 +15,7 @@ Mi relación con la tecnología nació de la curiosidad, no de la academia. Empe
Esa lección forjó mi carácter: no acepto cajas negras.
-## Soberanía o Nada
+### Soberanía o Nada
Hoy, mi guerra no es solo aprender lenguajes, sino conquistar la **soberanía tecnológica**.
@@ -23,13 +23,13 @@ Vivimos en un feudalismo digital donde alquilamos nuestra vida a grandes corpora
Odio la web moderna: lenta, obesa y llena de espías. Por eso este sitio es un retorno a la esencia. HTML crudo, CSS ligero y respeto por tu tiempo. Lo que ves es lo que hay.
-## Dios, Patria y Código
+### Dios, Patria y Código
La técnica sin espíritu es una jaula. Soy uno de los fundadores y **Coordinador General** del **[Partido Nacional Hispanista](https://partidonacionalhispanista.09072007.xyz)** porque entiendo que la batalla cultural es tan vital como la tecnológica.
Busco restaurar una visión del mundo que combine la tradición hispánica con la innovación necesaria, lejos del nihilismo que impera hoy. La política, para mí, no es un juego de escaños, sino la defensa de una cosmovisión.
-## Alcanzando las estrellas
+### Alcanzando las estrellas
Junto a unos camaradas nos propusimos lo imposible: tocar el cielo. Así nació el **Proyecto ONZA Φ**, un intento de cohete de propulsión sólida. De aquel sueño solo llegamos a construir el motor. La falta de recursos y la inexperiencia nos cortaron las alas, pero el golpe de gracia fue un fallo informático que eliminó casi todo el registro documental del proyecto. Solo quedó nuestra memoria.
@@ -45,10 +45,10 @@ Nuestro lema reza:
Una frase que combina la ambición poética con una advertencia muy literal sobre la seguridad en la propulsión sólida.
-### Nota al pie: Sobre el nombre ONZA
+#### Nota al pie: Sobre el nombre ONZA
Este nombre surge como homenaje al grupo de rock progresivo ***ONZA*** (ahora ONZAProg), cuya inspiración artística y docente motivó a los fundadores a unir ciencia, arte y espíritu.
-## Zona de Pruebas y Error
+### Zona de Pruebas y Error
Este blog no es un escaparate; es un taller con el suelo manchado de aceite. Es mi **zona cero**, mi **búnker** y mi **laboratorio**.
diff --git a/content/contact.md b/content/contact.md
index 5507f52..18deaaf 100644
--- a/content/contact.md
+++ b/content/contact.md
@@ -4,7 +4,7 @@ description = "Frecuencias abiertas y cifradas."
template = "page.html"
+++
-# Protocolo de Comunicación
+## Protocolo de Comunicación
No estoy siempre disponible, pero siempre estoy escuchando. Si buscas discutir sobre código, soberanía tecnológica o hispanidad, este es el lugar.
@@ -16,7 +16,7 @@ No estoy siempre disponible, pero siempre estoy escuchando. Si buscas discutir s
| 🐦 **Twitter** | [@Alejandro_GS73](https://x.com/alejandro_gs73) |
| 🐘 **Mastodon** | [@alejandrogs73@fosstodon.org](https://fosstodon.org/@alejandrogs73) |
-## Criptografía
+### Criptografía
Si necesitas enviarme información sensible o verificar que realmente soy yo, utiliza mi clave PGP pública.
diff --git a/content/notas/.3.md.un~ b/content/notas/.3.md.un~
deleted file mode 100644
index 0a7fe87..0000000
Binary files a/content/notas/.3.md.un~ and /dev/null differ
diff --git a/content/notas/.4.md.un~ b/content/notas/.4.md.un~
deleted file mode 100644
index 4e5f41b..0000000
Binary files a/content/notas/.4.md.un~ and /dev/null differ
diff --git a/content/notas/3.md~ b/content/notas/3.md~
deleted file mode 100644
index e69de29..0000000
diff --git a/content/notas/_index.md b/content/notas/_index.md
index 81b3b13..9e772bf 100644
--- a/content/notas/_index.md
+++ b/content/notas/_index.md
@@ -1,4 +1,7 @@
+++
+# Las notas se muestran en la portada. Sus páginas sueltas llevan noindex
+# y no salen en el sitemap (ver templates/).
+render = false
title = "Notas de Campo"
sort_by = "date"
template = "section.html"
diff --git a/content/posts/_index.md b/content/posts/_index.md
index 484591c..192f978 100644
--- a/content/posts/_index.md
+++ b/content/posts/_index.md
@@ -1,6 +1,7 @@
+++
paginate_by = 7
title = "Bitácora"
+description = "Artículos sobre software libre, soberanía tecnológica, NixOS, self-hosting e ingeniería."
sort_by = "date"
insert_anchor_links = "heading"
diff --git a/content/posts/hola_mundo.md b/content/posts/hola_mundo.md
index 7d9f970..720875f 100644
--- a/content/posts/hola_mundo.md
+++ b/content/posts/hola_mundo.md
@@ -3,6 +3,9 @@ title = "Hola Mundo"
date = 2025-12-17
description = "¿Un blog en 2025? Sí, y hace más falta que nunca"
draft = false
+
+[taxonomies]
+tags = ["blog", "software libre", "soberanía digital"]
+++
¿Un blog en 2025? Sí.
diff --git a/static/css/seo.css b/static/css/seo.css
new file mode 100644
index 0000000..0dcfe14
--- /dev/null
+++ b/static/css/seo.css
@@ -0,0 +1,17 @@
+/* Ajustes tras convertir los títulos del tema en encabezados semánticos */
+h1.page-header { font-weight: normal; }
+h1.page-header::before { content: none; }
+
+.post-list h2.title,
+.tag-list h2.title {
+ margin: 0;
+ font-weight: normal;
+ font-family: var(--header-font);
+}
+.post-list h2.title::before,
+.tag-list h2.title::before { content: none; }
+.post-list h2.title a,
+.tag-list h2.title a { border-bottom: none; }
+
+#modal-content h2#modalTitle { margin-top: 0; margin-bottom: 1rem; font-size: 1.2rem; }
+#modal-content h2#modalTitle::before { content: "# "; }
diff --git a/static/favicon.png b/static/favicon.png
new file mode 100644
index 0000000..815e129
Binary files /dev/null and b/static/favicon.png differ
diff --git a/static/og-image.png b/static/og-image.png
new file mode 100644
index 0000000..9731f40
Binary files /dev/null and b/static/og-image.png differ
diff --git a/templates/404.html b/templates/404.html
new file mode 100644
index 0000000..46bd35a
--- /dev/null
+++ b/templates/404.html
@@ -0,0 +1,8 @@
+{% extends "page.html" %}
+
+{% block main_content %}
+ Esta página no existe. Vuelve a la portada o echa un vistazo a la bitácora.