feat(ui): rediseño de homepage con estructura grid, rss, webroll y badges
All checks were successful
Zola / build-and-deploy (push) Successful in 8s

This commit is contained in:
Alejandro Guerrero 2025-12-14 20:54:16 +01:00
parent 4fb49961b4
commit 872927e7ef
Signed by: alejandrogs73
GPG key ID: 1CFF10953BEE333C
21 changed files with 441 additions and 59 deletions

View file

@ -8,6 +8,10 @@ description = "Ingeniería, Soberanía y Software Libre."
default_language = "es"
minify_html = true
generate_feeds = true
feed_filenames = ["atom.xml"]
build_search_index = true
[search]

4
content/notas/1.md Normal file
View file

@ -0,0 +1,4 @@
+++
date = 2025-12-14
+++
Testeando un poquillo la cosa.

5
content/notas/_index.md Normal file
View file

@ -0,0 +1,5 @@
+++
title = "Notas de Campo"
sort_by = "date"
template = "section.html"
+++

5
content/webroll.md Normal file
View file

@ -0,0 +1,5 @@
+++
title = "Webroll"
description = "Webroll"
render = false
+++

14
public/404.html Normal file
View file

@ -0,0 +1,14 @@
<!doctype html><html class="dark light" lang=en><head><meta charset=UTF-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1.0" name=viewport><meta content=https://alejandrogs.es name=base><meta content=@alejandrogs73@fosstodon.org name=fediverse:creator><title>
~/alejandrogs.es
</title><meta content="
~/alejandrogs.es
" property=og:title><meta content="Ingeniería, Soberanía y Software Libre." property=og:description><meta content="Ingeniería, Soberanía y Software Libre." name=description><link href=https://alejandrogs.es/fonts.css rel=stylesheet><script defer src=https://alejandrogs.es/js/codeblock.js></script><script>MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
}
};</script><script async id=MathJax-script src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script><link title="
~/alejandrogs.es
" href=https://alejandrogs.es/atom.xml rel=alternate type=application/atom+xml><link href=https://alejandrogs.es/theme/light.css rel=stylesheet><link href=https://alejandrogs.es/theme/dark.css id=darkModeStyle rel=stylesheet><script src=https://alejandrogs.es/js/themetoggle.js></script><script>setTheme(getSavedTheme());</script><link href=https://alejandrogs.es/main.css media=screen rel=stylesheet><script src="https://alejandrogs.es/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e" defer></script><body><div class=left-content></div><div class=content><nav><div class=left-nav><a href=https://alejandrogs.es>~/alejandrogs.es</a><div class=socials><a class=social href=https://twitter.com/alejandro_gs73 rel=me> <img alt=twitter src=https://alejandrogs.es/icons/social/twitter.svg> </a><a class=social href=https://github.com/alejandrogs73/ rel=me> <img alt=github src=https://alejandrogs.es/icons/social/github.svg> </a><a class=social href=https://fosstodon.org/@alejandrogs73/ rel=me> <img alt=mastodon src=https://alejandrogs.es/icons/social/mastodon.svg> </a><a class=social href=mailto:mail@alejandrogs.es rel=me> <img alt=email src=https://alejandrogs.es/icons/social/email.svg> </a></div></div><div class=right-nav><a href=https://alejandrogs.es/posts style=margin-right:.5em>/posts</a><a href=https://alejandrogs.es/about style=margin-right:.5em>/about</a><a href=https://alejandrogs.es/contact style=margin-right:.5em>/contact</a><button title="$SHORTCUT to open search" class=search-button id=search-button><img alt=Search class=search-icon src=https://alejandrogs.es/icons/search.svg></button><div class="search-modal js" aria-labelledby=modalTitle id=searchModal role=dialog><div id=modal-content><h1 class=page-header id=modalTitle>Search</h1><div id=searchBar><input aria-controls=results-container aria-expanded=false autocomplete=off id=searchInput placeholder=Search... role=combobox spellcheck=false><button title="Clear search" class=clear-button id=clear-search><svg viewbox="0 -960 960 960" xmlns=http://www.w3.org/2000/svg><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button></div><div id=results-container><div id=results-info><span id=zero_results style=display:none>No results</span><span id=one_result style=display:none>1 result</span><span id=many_results style=display:none>$NUMBER results</span></div><div id=results role=listbox></div></div></div></div><a onclick="toggleTheme(); event.preventDefault();" href=# id=dark-mode-toggle> <img alt=Light id=sun-icon src=https://alejandrogs.es/icons/sun.svg> <img alt=Dark id=moon-icon src=https://alejandrogs.es/icons/moon.svg style=filter:invert()> <img alt=Auto id=auto-icon src=https://alejandrogs.es/icons/auto.svg style=filter:invert()> </a><script>updateItemToggleTheme()</script></div></nav><main class=not-found-header><div class=page-header>404</div><span>Page not found :(</span></main></div><div class=right-content></div>

14
public/about/index.html Normal file

File diff suppressed because one or more lines are too long

30
public/atom.xml Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
<title>~&#x2F;alejandrogs.es</title>
<subtitle>Ingeniería, Soberanía y Software Libre.</subtitle>
<link rel="self" type="application/atom+xml" href="https://alejandrogs.es/atom.xml"/>
<link rel="alternate" type="text/html" href="https://alejandrogs.es"/>
<generator uri="https://www.getzola.org/">Zola</generator>
<updated>2025-12-14T00:00:00+00:00</updated>
<id>https://alejandrogs.es/atom.xml</id>
<entry xml:lang="es">
<title></title>
<published>2025-12-14T00:00:00+00:00</published>
<updated>2025-12-14T00:00:00+00:00</updated>
<author>
<name>
Unknown
</name>
</author>
<link rel="alternate" type="text/html" href="https://alejandrogs.es/notas/1/"/>
<id>https://alejandrogs.es/notas/1/</id>
<content type="html" xml:base="https://alejandrogs.es/notas/1/">&lt;p&gt;Testeando un poquillo la cosa.&lt;&#x2F;p&gt;
</content>
</entry>
</feed>

31
public/contact/index.html Normal file
View file

@ -0,0 +1,31 @@
<!doctype html><html class="dark light" lang=en><head><meta charset=UTF-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1.0" name=viewport><meta content=https://alejandrogs.es name=base><meta content=@alejandrogs73@fosstodon.org name=fediverse:creator><title>
Contacto
</title><meta content=Contacto property=og:title><meta content="Frecuencias abiertas y cifradas." property=og:description><meta content="Frecuencias abiertas y cifradas." name=description><link href=https://alejandrogs.es/fonts.css rel=stylesheet><script defer src=https://alejandrogs.es/js/codeblock.js></script><script>MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
}
};</script><script async id=MathJax-script src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script><link title="
~/alejandrogs.es
" href=https://alejandrogs.es/atom.xml rel=alternate type=application/atom+xml><link href=https://alejandrogs.es/theme/light.css rel=stylesheet><link href=https://alejandrogs.es/theme/dark.css id=darkModeStyle rel=stylesheet><script src=https://alejandrogs.es/js/themetoggle.js></script><script>setTheme(getSavedTheme());</script><link href=https://alejandrogs.es/main.css media=screen rel=stylesheet><script src="https://alejandrogs.es/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e" defer></script><body><div class=left-content></div><div class=content><nav><div class=left-nav><a href=https://alejandrogs.es>~/alejandrogs.es</a><div class=socials><a class=social href=https://twitter.com/alejandro_gs73 rel=me> <img alt=twitter src=https://alejandrogs.es/icons/social/twitter.svg> </a><a class=social href=https://github.com/alejandrogs73/ rel=me> <img alt=github src=https://alejandrogs.es/icons/social/github.svg> </a><a class=social href=https://fosstodon.org/@alejandrogs73/ rel=me> <img alt=mastodon src=https://alejandrogs.es/icons/social/mastodon.svg> </a><a class=social href=mailto:mail@alejandrogs.es rel=me> <img alt=email src=https://alejandrogs.es/icons/social/email.svg> </a></div></div><div class=right-nav><a href=https://alejandrogs.es/posts style=margin-right:.5em>/posts</a><a href=https://alejandrogs.es/about style=margin-right:.5em>/about</a><a href=https://alejandrogs.es/contact style=margin-right:.5em>/contact</a><button title="$SHORTCUT to open search" class=search-button id=search-button><img alt=Search class=search-icon src=https://alejandrogs.es/icons/search.svg></button><div class="search-modal js" aria-labelledby=modalTitle id=searchModal role=dialog><div id=modal-content><h1 class=page-header id=modalTitle>Search</h1><div id=searchBar><input aria-controls=results-container aria-expanded=false autocomplete=off id=searchInput placeholder=Search... role=combobox spellcheck=false><button title="Clear search" class=clear-button id=clear-search><svg viewbox="0 -960 960 960" xmlns=http://www.w3.org/2000/svg><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button></div><div id=results-container><div id=results-info><span id=zero_results style=display:none>No results</span><span id=one_result style=display:none>1 result</span><span id=many_results style=display:none>$NUMBER results</span></div><div id=results role=listbox></div></div></div></div><a onclick="toggleTheme(); event.preventDefault();" href=# id=dark-mode-toggle> <img alt=Light id=sun-icon src=https://alejandrogs.es/icons/sun.svg> <img alt=Dark id=moon-icon src=https://alejandrogs.es/icons/moon.svg style=filter:invert()> <img alt=Auto id=auto-icon src=https://alejandrogs.es/icons/auto.svg style=filter:invert()> </a><script>updateItemToggleTheme()</script></div></nav><div data-selector="main article p" class=visible-element-observer-root><main><article><div class=title><div class=page-header>Contacto</div><div class=meta></div></div><section class=body><h1 id=protocolo-de-comunicacion>Protocolo de Comunicación</h1><p>No estoy siempre disponible, pero siempre estoy escuchando. Si buscas discutir sobre código, soberanía tecnológica o hispanidad, este es el lugar.<table><thead><tr><th style=text-align:left><th style=text-align:left><tbody><tr><td style=text-align:left>📧 <strong>Correo</strong><td style=text-align:left><a href=mailto:mail@alejandrogs.es>mail@alejandrogs.es</a><tr><td style=text-align:left>🛡️ <strong>Forgejo</strong><td style=text-align:left><a href=https://git.alejandrogs.es>git.alejandrogs.es</a><tr><td style=text-align:left>🐙 <strong>GitHub</strong><td style=text-align:left><a href=https://github.com/alejandrogs73>@alejandrogs73</a><tr><td style=text-align:left>🐦 <strong>Twitter</strong><td style=text-align:left><a href=https://x.com/alejandro_gs73>@Alejandro_GS73</a><tr><td style=text-align:left>🐘 <strong>Mastodon</strong><td style=text-align:left><a href=https://fosstodon.org/@alejandrogs73>@alejandrogs73@fosstodon.org</a></table><h2 id=criptografia>Criptografía</h2><p>Si necesitas enviarme información sensible o verificar que realmente soy yo, utiliza mi clave PGP pública.<pre><code>-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaTxqyRYJKwYBBAHaRw8BAQdA75MJ1zTOFiIjjlYtrt4+JsEk9rUjMA1z5IdG
3UBjRDe0KEFsZWphbmRybyBHdWVycmVybyA8bWFpbEBhbGVqYW5kcm9ncy5lcz6I
lAQTFgoAPBYhBDwl3lsnXKUllg59/Rz/EJU77jM8BQJpPGrJAhsDBQkDwmcABAsJ
CAcEFQoJCAUWAgMBAAIeBQIXgAAKCRAc/xCVO+4zPG8AAQCcU747N9zMIfcgVTur
5ZBZ0CaPLngnNd5yGlb7o4MhiwEA1LVHTleDgQN8Py2S389TErPnybeKvEzbC72M
e2hoyA24OARpPGrJEgorBgEEAZdVAQUBAQdAWUbQmpKTMfNRp7GIyfmaRiBHoGHW
Lxwd01g5xJDBOnUDAQgHiH4EGBYKACYWIQQ8Jd5bJ1ylJZYOff0c/xCVO+4zPAUC
aTxqyQIbDAUJA8JnAAAKCRAc/xCVO+4zPLZPAPwOCUrZoOZbB0p7M1vfHqAyJRwt
BAndmxi5rwhefMpqSwEAlhpjQG+A6UQDJBD2SU/f+8aBvwEWW/vdOl9iLCpjvwm4
MwRpPGsIFgkrBgEEAdpHDwEBB0ApFnRaIZM+wAi444ZmLhaS5Gz+rD0zZ0j2MgqC
26rWGYh+BBgWCgAmFiEEPCXeWydcpSWWDn39HP8QlTvuMzwFAmk8awgCGyAFCQPC
ZwAACgkQHP8QlTvuMzxYMgD/eBv5P+yWCSTR2isytL1GPqLy2ie7vPlQ38V1oQkQ
p8UBAIj/fY8q5jMfvHEby3aU9M+0q9BEP3VIK72H+7amjeEC
=OKMQ
-----END PGP PUBLIC KEY BLOCK--------
</code></pre><hr><blockquote><p><em>"La privacidad no es ocultar lo que haces, es decidir quién puede verlo."</em></blockquote></section></article></main></div></div><div class=right-content></div>

23
public/index.html Normal file

File diff suppressed because one or more lines are too long

14
public/notas/1/index.html Normal file
View file

@ -0,0 +1,14 @@
<!doctype html><html class="dark light" lang=en><head><meta charset=UTF-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1.0" name=viewport><meta content=https://alejandrogs.es name=base><meta content=@alejandrogs73@fosstodon.org name=fediverse:creator><title>
~/alejandrogs.es
</title><meta content=~/alejandrogs.es property=og:title><meta content="Ingeniería, Soberanía y Software Libre." property=og:description><meta content="Ingeniería, Soberanía y Software Libre." name=description><link href=https://alejandrogs.es/fonts.css rel=stylesheet><script defer src=https://alejandrogs.es/js/codeblock.js></script><script>MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
}
};</script><script async id=MathJax-script src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script><link title="
~/alejandrogs.es
" href=https://alejandrogs.es/atom.xml rel=alternate type=application/atom+xml><link href=https://alejandrogs.es/theme/light.css rel=stylesheet><link href=https://alejandrogs.es/theme/dark.css id=darkModeStyle rel=stylesheet><script src=https://alejandrogs.es/js/themetoggle.js></script><script>setTheme(getSavedTheme());</script><link href=https://alejandrogs.es/main.css media=screen rel=stylesheet><script src="https://alejandrogs.es/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e" defer></script><body><div class=left-content></div><div class=content><nav><div class=left-nav><a href=https://alejandrogs.es>~/alejandrogs.es</a><div class=socials><a class=social href=https://twitter.com/alejandro_gs73 rel=me> <img alt=twitter src=https://alejandrogs.es/icons/social/twitter.svg> </a><a class=social href=https://github.com/alejandrogs73/ rel=me> <img alt=github src=https://alejandrogs.es/icons/social/github.svg> </a><a class=social href=https://fosstodon.org/@alejandrogs73/ rel=me> <img alt=mastodon src=https://alejandrogs.es/icons/social/mastodon.svg> </a><a class=social href=mailto:mail@alejandrogs.es rel=me> <img alt=email src=https://alejandrogs.es/icons/social/email.svg> </a></div></div><div class=right-nav><a href=https://alejandrogs.es/posts style=margin-right:.5em>/posts</a><a href=https://alejandrogs.es/about style=margin-right:.5em>/about</a><a href=https://alejandrogs.es/contact style=margin-right:.5em>/contact</a><button title="$SHORTCUT to open search" class=search-button id=search-button><img alt=Search class=search-icon src=https://alejandrogs.es/icons/search.svg></button><div class="search-modal js" aria-labelledby=modalTitle id=searchModal role=dialog><div id=modal-content><h1 class=page-header id=modalTitle>Search</h1><div id=searchBar><input aria-controls=results-container aria-expanded=false autocomplete=off id=searchInput placeholder=Search... role=combobox spellcheck=false><button title="Clear search" class=clear-button id=clear-search><svg viewbox="0 -960 960 960" xmlns=http://www.w3.org/2000/svg><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button></div><div id=results-container><div id=results-info><span id=zero_results style=display:none>No results</span><span id=one_result style=display:none>1 result</span><span id=many_results style=display:none>$NUMBER results</span></div><div id=results role=listbox></div></div></div></div><a onclick="toggleTheme(); event.preventDefault();" href=# id=dark-mode-toggle> <img alt=Light id=sun-icon src=https://alejandrogs.es/icons/sun.svg> <img alt=Dark id=moon-icon src=https://alejandrogs.es/icons/moon.svg style=filter:invert()> <img alt=Auto id=auto-icon src=https://alejandrogs.es/icons/auto.svg style=filter:invert()> </a><script>updateItemToggleTheme()</script></div></nav><div data-selector="main article p" class=visible-element-observer-root><main><article><div class=title><div class=meta>Posted on <time>2025-12-14</time></div></div><section class=body><p>Testeando un poquillo la cosa.</section></article></main></div></div><div class=right-content></div>

14
public/notas/index.html Normal file
View file

@ -0,0 +1,14 @@
<!doctype html><html class="dark light" lang=en><head><meta charset=UTF-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1.0" name=viewport><meta content=https://alejandrogs.es name=base><meta content=@alejandrogs73@fosstodon.org name=fediverse:creator><title>
Notas de Campo
</title><meta content=~/alejandrogs.es property=og:title><meta content="Ingeniería, Soberanía y Software Libre." property=og:description><meta content="Ingeniería, Soberanía y Software Libre." name=description><link href=https://alejandrogs.es/fonts.css rel=stylesheet><script defer src=https://alejandrogs.es/js/codeblock.js></script><script>MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
}
};</script><script async id=MathJax-script src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script><link title="
~/alejandrogs.es
" href=https://alejandrogs.es/atom.xml rel=alternate type=application/atom+xml><link href=https://alejandrogs.es/theme/light.css rel=stylesheet><link href=https://alejandrogs.es/theme/dark.css id=darkModeStyle rel=stylesheet><script src=https://alejandrogs.es/js/themetoggle.js></script><script>setTheme(getSavedTheme());</script><link href=https://alejandrogs.es/main.css media=screen rel=stylesheet><script src="https://alejandrogs.es/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e" defer></script><body><div class=left-content></div><div class=content><nav><div class=left-nav><a href=https://alejandrogs.es>~/alejandrogs.es</a><div class=socials><a class=social href=https://twitter.com/alejandro_gs73 rel=me> <img alt=twitter src=https://alejandrogs.es/icons/social/twitter.svg> </a><a class=social href=https://github.com/alejandrogs73/ rel=me> <img alt=github src=https://alejandrogs.es/icons/social/github.svg> </a><a class=social href=https://fosstodon.org/@alejandrogs73/ rel=me> <img alt=mastodon src=https://alejandrogs.es/icons/social/mastodon.svg> </a><a class=social href=mailto:mail@alejandrogs.es rel=me> <img alt=email src=https://alejandrogs.es/icons/social/email.svg> </a></div></div><div class=right-nav><a href=https://alejandrogs.es/posts style=margin-right:.5em>/posts</a><a href=https://alejandrogs.es/about style=margin-right:.5em>/about</a><a href=https://alejandrogs.es/contact style=margin-right:.5em>/contact</a><button title="$SHORTCUT to open search" class=search-button id=search-button><img alt=Search class=search-icon src=https://alejandrogs.es/icons/search.svg></button><div class="search-modal js" aria-labelledby=modalTitle id=searchModal role=dialog><div id=modal-content><h1 class=page-header id=modalTitle>Search</h1><div id=searchBar><input aria-controls=results-container aria-expanded=false autocomplete=off id=searchInput placeholder=Search... role=combobox spellcheck=false><button title="Clear search" class=clear-button id=clear-search><svg viewbox="0 -960 960 960" xmlns=http://www.w3.org/2000/svg><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button></div><div id=results-container><div id=results-info><span id=zero_results style=display:none>No results</span><span id=one_result style=display:none>1 result</span><span id=many_results style=display:none>$NUMBER results</span></div><div id=results role=listbox></div></div></div></div><a onclick="toggleTheme(); event.preventDefault();" href=# id=dark-mode-toggle> <img alt=Light id=sun-icon src=https://alejandrogs.es/icons/sun.svg> <img alt=Dark id=moon-icon src=https://alejandrogs.es/icons/moon.svg style=filter:invert()> <img alt=Auto id=auto-icon src=https://alejandrogs.es/icons/auto.svg style=filter:invert()> </a><script>updateItemToggleTheme()</script></div></nav><div class=page-header>Notas de Campo</div><main class=post-list><ul><li class=list-item><section><div class=post-header><time>2025-12-14</time><div><h1 class=title><a href=https://alejandrogs.es/notas/1/></a></h1><div class=meta><div class=description></div></div></div></div></section></ul></main></div><div class=right-content></div>

14
public/posts/index.html Normal file
View file

@ -0,0 +1,14 @@
<!doctype html><html class="dark light" lang=en><head><meta charset=UTF-8><meta content="IE=edge" http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1.0" name=viewport><meta content=https://alejandrogs.es name=base><meta content=@alejandrogs73@fosstodon.org name=fediverse:creator><title>
Bitácora
</title><meta content=~/alejandrogs.es property=og:title><meta content="Ingeniería, Soberanía y Software Libre." property=og:description><meta content="Ingeniería, Soberanía y Software Libre." name=description><link href=https://alejandrogs.es/fonts.css rel=stylesheet><script defer src=https://alejandrogs.es/js/codeblock.js></script><script>MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
}
};</script><script async id=MathJax-script src=https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js></script><link title="
~/alejandrogs.es
" href=https://alejandrogs.es/atom.xml rel=alternate type=application/atom+xml><link href=https://alejandrogs.es/theme/light.css rel=stylesheet><link href=https://alejandrogs.es/theme/dark.css id=darkModeStyle rel=stylesheet><script src=https://alejandrogs.es/js/themetoggle.js></script><script>setTheme(getSavedTheme());</script><link href=https://alejandrogs.es/main.css media=screen rel=stylesheet><script src="https://alejandrogs.es/js/searchElasticlunr.min.js?h=3626c0ef99daa745b31e" defer></script><body><div class=left-content></div><div class=content><nav><div class=left-nav><a href=https://alejandrogs.es>~/alejandrogs.es</a><div class=socials><a class=social href=https://twitter.com/alejandro_gs73 rel=me> <img alt=twitter src=https://alejandrogs.es/icons/social/twitter.svg> </a><a class=social href=https://github.com/alejandrogs73/ rel=me> <img alt=github src=https://alejandrogs.es/icons/social/github.svg> </a><a class=social href=https://fosstodon.org/@alejandrogs73/ rel=me> <img alt=mastodon src=https://alejandrogs.es/icons/social/mastodon.svg> </a><a class=social href=mailto:mail@alejandrogs.es rel=me> <img alt=email src=https://alejandrogs.es/icons/social/email.svg> </a></div></div><div class=right-nav><a href=https://alejandrogs.es/posts style=margin-right:.5em>/posts</a><a href=https://alejandrogs.es/about style=margin-right:.5em>/about</a><a href=https://alejandrogs.es/contact style=margin-right:.5em>/contact</a><button title="$SHORTCUT to open search" class=search-button id=search-button><img alt=Search class=search-icon src=https://alejandrogs.es/icons/search.svg></button><div class="search-modal js" aria-labelledby=modalTitle id=searchModal role=dialog><div id=modal-content><h1 class=page-header id=modalTitle>Search</h1><div id=searchBar><input aria-controls=results-container aria-expanded=false autocomplete=off id=searchInput placeholder=Search... role=combobox spellcheck=false><button title="Clear search" class=clear-button id=clear-search><svg viewbox="0 -960 960 960" xmlns=http://www.w3.org/2000/svg><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg></button></div><div id=results-container><div id=results-info><span id=zero_results style=display:none>No results</span><span id=one_result style=display:none>1 result</span><span id=many_results style=display:none>$NUMBER results</span></div><div id=results role=listbox></div></div></div></div><a onclick="toggleTheme(); event.preventDefault();" href=# id=dark-mode-toggle> <img alt=Light id=sun-icon src=https://alejandrogs.es/icons/sun.svg> <img alt=Dark id=moon-icon src=https://alejandrogs.es/icons/moon.svg style=filter:invert()> <img alt=Auto id=auto-icon src=https://alejandrogs.es/icons/auto.svg style=filter:invert()> </a><script>updateItemToggleTheme()</script></div></nav><div class=page-header>Bitácora</div><main class=post-list><ul></ul></main><ul class=pagination></ul></div><div class=right-content></div>

View file

@ -0,0 +1,3 @@
<!doctype html><meta charset=utf-8><title>Redirect</title><script>const target = "https://alejandrogs.es/posts/";
const hash = window.location.hash || "";
window.location.replace(target + hash);</script><noscript><meta content="0; url=https://alejandrogs.es/posts/" http-equiv=refresh></noscript><p><a href=https://alejandrogs.es/posts/>Click here</a> to be redirected.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 MiB

4
public/robots.txt Normal file
View file

@ -0,0 +1,4 @@
User-agent: *
Disallow:
Allow: /
Sitemap: https://alejandrogs.es/sitemap.xml

File diff suppressed because one or more lines are too long

25
public/sitemap.xml Normal file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://alejandrogs.es/</loc>
</url>
<url>
<loc>https://alejandrogs.es/about/</loc>
</url>
<url>
<loc>https://alejandrogs.es/contact/</loc>
</url>
<url>
<loc>https://alejandrogs.es/notas/</loc>
</url>
<url>
<loc>https://alejandrogs.es/notas/1/</loc>
<lastmod>2025-12-14</lastmod>
</url>
<url>
<loc>https://alejandrogs.es/posts/</loc>
</url>
<url>
<loc>https://alejandrogs.es/tags/</loc>
</url>
</urlset>

View file

@ -1,66 +1,244 @@
{% extends "base.html" %}
{% block main_content %}
<main>
<article>
<section class="body" style="margin-bottom: 4rem;">
{{ section.content | safe }}
</section>
<section class="recent-posts">
<div style="border-bottom: 1px solid var(--content-border-color, #333); margin-bottom: 2rem;"></div>
{# Inicio seccion "BITACORA" #}
<h1 style="font-size: 1.2rem; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 2rem; color: #888;">
Bitácora
</h1>
{% set posts = get_section(path="posts/_index.md") %}
<ul style="list-style: none; padding: 0; margin: 0;">
{% for page in posts.pages | sort(attribute="date") | reverse | slice(end=3) %}
<li style="margin-bottom: 2.5rem;">
<div style="font-family: monospace; font-size: 0.85rem; color: #666; margin-bottom: 0.25rem;">
> {{ page.date | date(format="%Y-%m-%d") }}
</div>
<h3 style="margin: 0 0 0.5rem 0; font-size: 1.5rem;">
<a href="{{ page.permalink }}" style="text-decoration: none; border-bottom: 1px dashed transparent; color: inherit;">
{{ page.title }}
</a>
</h3>
<p style="margin: 0; line-height: 1.6; color: var(--text-color, #ccc);">
{{ page.description | default(value="Sin descripción.") }}
</p>
</li>
{% endfor %}
</ul>
<div style="text-align: right; margin-top: 1rem;">
<a href="{{ posts.permalink }}" style="font-family: monospace; text-decoration: none; border: 1px solid #444; padding: 0.5rem 1rem; border-radius: 4px;">
Ver todos [{{ posts.pages | length }}] &rarr;
</a>
</div>
{# Fin seccion "BITACORA" #}
</section>
</article>
</main>
<style>
.recent-posts h3 a:hover {
color: #fe8019 !important; /* Naranja acento */
border-bottom-color: #fe8019 !important;
/* Layout: Proporciones 33% | 50% | 17% */
.command-center {
display: grid;
/* Usamos 'fr' (fracciones) para que Zola calcule los % restando el hueco (gap) automáticamente */
grid-template-columns: 33fr 50fr 17fr;
gap: 2rem;
width: 80vw;
max-width: 1800px;
position: relative;
left: 50%;
right: 50%;
margin-left: -40vw; /* Mitad de 80vw */
margin-right: -40vw;
margin-top: 4rem;
box-sizing: border-box;
}
.recent-posts a {
color: inherit;
transition: color 0.2s ease;
/* Responsive: Móvil/Tablet vertical */
@media (max-width: 1200px) {
.command-center {
grid-template-columns: 1fr;
width: 94%;
}
.sidebar-left { order: 1; }
.main-deck { order: 2; }
.sidebar-right { order: 3; }
}
/* === MÓDULOS GENÉRICOS === */
.module-box {
border: 1px solid var(--content-border-color, #333);
background: rgba(0, 0, 0, 0.3);
padding: 1.5rem;
margin-bottom: 2rem;
position: relative;
}
.module-header {
font-family: monospace;
text-transform: uppercase;
font-size: 0.75rem;
letter-spacing: 2px;
color: #888;
border-bottom: 1px solid #333;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
display: flex;
justify-content: space-between;
}
/* === NOTAS (Globos) === */
.speech-bubble {
position: relative;
background: #1a1a1a;
border: 1px solid #444;
border-radius: 6px;
padding: 0.8rem;
margin-bottom: 1.5rem;
font-size: 0.85rem;
box-shadow: 2px 2px 0px rgba(0,0,0,0.5);
}
.speech-bubble::after {
content: ''; position: absolute; left: -10px; top: 15px;
border-width: 10px 10px 10px 0; border-style: solid;
border-color: transparent #444 transparent transparent;
}
.note-date {
font-family: monospace; font-size: 0.7rem; color: #fe8019;
display: block; margin-bottom: 0.3rem; border-bottom: 1px dashed #333; padding-bottom: 2px;
}
.note-content p { margin: 0; line-height: 1.3; color: #ccc; }
/* === PROMETEO (ASCII FIX) === */
pre.ascii-mascot {
font-family: 'Courier New', 'Courier', monospace;
font-weight: bold;
font-size: 11px;
line-height: 11px;
color: #fe8019;
display: flex;
justify-content: center;
overflow-x: hidden;
margin: 0 0 1.5rem 0;
padding: 0;
background: transparent;
border: none;
}
/* === REDES SOCIALES === */
ul.rrss-list { list-style: none; padding: 0; margin: 0; }
ul.rrss-list li { margin-bottom: 0.5rem; display: flex; align-items: center; font-family: monospace; font-size: 0.9rem; }
ul.rrss-list li span { margin-right: 0.5rem; }
ul.rrss-list a { text-decoration: none; color: #ccc; transition: color 0.2s; }
ul.rrss-list a:hover { color: #fe8019; }
/* Estilos para el Markdown del Blogroll */
.webroll-content ul { list-style: none; padding: 0; margin: 0; }
.webroll-content li { margin-bottom: 0.5rem; font-family: monospace; font-size: 0.85rem; }
.webroll-content a { text-decoration: none; color: #ccc; transition: color 0.2s; }
.webroll-content a:hover { color: #fe8019; }
</style>
<div class="command-center">
<aside class="sidebar-left">
<div class="module-box" style="border-top: 2px solid #fe8019;">
<div class="module-header">
<span>:: PROMETEO ::</span> <span style="color: #0f0;">● ONLINE</span>
</div>
<pre class="ascii-mascot">
( ) ( ) )
) ( ) ( (
( ) ( ) )
_____________
&lt; PROMETEO &gt;
\___________/
| | |
_|_ |_ |_
</pre>
<div style="font-size: 0.95rem; line-height: 1.6; color: #ddd;">
{{ section.content | safe }}
</div>
</div>
<div class="module-box">
<div class="module-header">:: SISTEMAS ::</div>
<ul style="list-style: none; padding: 0; margin: 0; font-family: monospace;">
<li style="margin-bottom: 0.5rem;"><a href="/" style="text-decoration: none;">> /root</a></li>
<li style="margin-bottom: 0.5rem;"><a href="/posts" style="text-decoration: none;">> /bitacora</a></li>
<li style="margin-bottom: 0.5rem;"><a href="/about" style="text-decoration: none;">> /sobre_mi</a></li>
<li style="margin-bottom: 0.5rem;"><a href="/contact" style="text-decoration: none;">> /contacto</a></li>
</ul>
</div>
<div class="module-box">
<div class="module-header">:: CONEXIONES ::</div>
<ul class="rrss-list">
<li><span>📧</span> <a href="mailto:mail@alejandrogs.es">Correo</a></li>
<li><span>🛡️</span> <a href="https://git.alejandrogs.es" target="_blank">Forgejo</a></li>
<li><span>🐙</span> <a href="https://github.com/alejandrogs73" target="_blank">GitHub</a></li>
<li><span>🐦</span> <a href="https://x.com/alejandro_gs73" target="_blank">Twitter</a></li>
<li><span>🐘</span> <a href="https://fosstodon.org/@alejandrogs73" target="_blank">Mastodon</a></li>
</ul>
</div>
</aside>
<main class="main-deck">
{% set posts = get_section(path="posts/_index.md") %}
{% for page in posts.pages | sort(attribute="date") | reverse | slice(end=5) %}
<article class="module-box" style="border-left: 1px solid #fe8019;">
<header style="margin-bottom: 1rem;">
<div style="font-family: monospace; font-size: 0.8rem; color: #666; margin-bottom: 0.5rem;">
[{{ page.date | date(format="%Y-%m-%d") }}]
</div>
<h2 style="margin: 0; font-size: 1.8rem; letter-spacing: -1px;">
<a href="{{ page.permalink }}" style="text-decoration: none; color: inherit; border-bottom: none;">
{{ page.title }}
</a>
</h2>
</header>
<p style="margin: 0; line-height: 1.6; color: var(--text-color, #ccc); font-size: 1.05rem;">
{{ page.description | default(value="Sin descripción.") }}
</p>
<div style="margin-top: 1rem;">
<a href="{{ page.permalink }}" style="font-size: 0.85rem; text-decoration: underline; color: #fe8019;">Leer entrada &rarr;</a>
</div>
</article>
{% endfor %}
<div style="text-align: center; margin-top: 2rem;">
<a href="{{ posts.permalink }}" style="font-family: monospace; border: 1px solid #444; padding: 0.8rem 2rem; text-decoration: none;">
Ver archivo completo
</a>
</div>
</main>
<aside class="sidebar-right">
<a href="/atom.xml" style="display: block; width: 100%; box-sizing: border-box; background: #fe8019; color: #000; text-align: center; padding: 1rem; font-family: monospace; font-weight: bold; font-size: 1.1rem; text-decoration: none; border: 1px solid #fe8019; margin-bottom: 2rem; text-transform: uppercase;">
📡 RSS FEED
</a>
<div style="margin-bottom: 1rem; font-family: monospace; color: #888; text-transform: uppercase; font-size: 0.8rem;">
:: LOGS ::
</div>
{% set notas = get_section(path="notas/_index.md") %}
{% for note in notas.pages | sort(attribute="date") | reverse | slice(end=6) %}
<div class="speech-bubble">
<span class="note-date">@{{ note.date | date(format="%Y-%m-%d") }}</span>
<div class="note-content">
{{ note.content | safe }}
</div>
</div>
{% else %}
<div class="speech-bubble">
<p style="color: #666; font-size: 0.8rem;">Sin datos...</p>
</div>
{% endfor %}
<div class="module-box" style="margin-top: 3rem;">
<div class="module-header">:: WEBROLL ::</div>
{% set webroll = get_page(path="webroll.md") %}
<div class="webroll-content">
{{ webroll.content | safe }}
</div>
</div>
<div class="badge-rack">
<img src="https://yesterweb.org/no-to-web3/img/roly-saynotoweb3.gif" alt="NoWEB3"/>
<img src="https://88x31.kate.pet/madeon_linux.gif" height="31" />
<img src="https://88x31.kate.pet/mastodon-flat.png" height="31" />
<img src="https://88x31.kate.pet/visitmini.gif" height="31" />
<img src="https://88x31.kate.pet/firefox_now.png" height="31" />
<img src="https://88x31.kate.pet/gamecube.png" height="31" />
<img src="https://88x31.kate.pet/yoshihatchbutton.gif" height="31" />
<img src="https://diegologs.com/assets/images/banners/neovim.gif" height="31" />
</div>
<div class="module-box" style="text-align: center; font-size: 0.75rem; color: #666; margin-top: 3rem; padding: 1rem;">
<p style="margin: 0;">SYS: ONLINE</p>
<p style="margin: 0;">LOC: ES-CA</p>
</div>
</aside>
</div>
{% endblock main_content %}