commit b8e2aa62031eaa55c399779495e6bafb8e5ac146
parent f63dfd3ba0f72e24a16929790771abd439683bb3
Author: fjbalon <fbalon@templier.es>
Date: Sat, 6 Jun 2026 01:42:41 +0200
Añadidas entradas automatizadas de blog y estilos css para artículos
Diffstat:
| A | article.css | | | 164 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | automate.sh | | | 79 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| D | blog/index.html | | | 1 | - |
| M | index.html | | | 64 | ++++++++++++++++++++++++++++++++++++++-------------------------- |
4 files changed, 281 insertions(+), 27 deletions(-)
diff --git a/article.css b/article.css
@@ -0,0 +1,163 @@
+body {
+ background-color: rgb(255, 255, 255);
+ color: rgb(28, 28, 28);
+ /* font-family: 'Times New Roman', Times, serif; */
+ /* font-weight: 300; */
+ /* line-height: 1.5; */
+ /* text-align: justify; */
+ max-width: 130ex;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 2em;
+ /* letter-spacing: 1px; */
+ /* overflow-wrap: break-word; */
+}
+
+header {
+ text-align: center;
+}
+
+.title {
+ font-size: 28px;
+ line-height: 1em;
+ margin-bottom: 20px;
+}
+
+.date {
+ font-size: 14px;
+ color: grey;
+ font-style: italic;
+}
+
+h1, h2, h3 {
+ padding-top: 1em;
+ font-weight: normal;
+ line-height: 1em;
+ margin-bottom: 20px;
+}
+
+a {
+ text-decoration: none;
+ border-bottom: 1px dotted;
+ cursor: pointer;
+ transition: color .2s ease-out;
+}
+
+a:hover {
+ color: #005577;
+}
+
+img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ width: 80%;
+}
+
+cita {
+ display: block;
+ color: #333;
+ margin: 1em 0;
+ padding: 1em;
+ border-left: 1px solid #ddd;
+ font-style: italic;
+}
+
+cita p:last-of-type {
+ margin-bottom: 0;
+ text-align: right;
+ font-style: normal;
+}
+
+code {
+ font-family: monospace;
+ font-size: inherit;
+ color: #ffffff;
+ background-color: #333;
+ display: block;
+ padding-right: 1%;
+ padding-left: 1%;
+ padding-top: 1%;
+ padding-bottom: 1%;
+ word-wrap: normal;
+ overflow-x: auto;
+}
+
+emb {
+ font-family: monospace;
+ background-color: #f0f0f0;
+ border-radius: 3px;
+ padding: 2px 4px;
+ font-size: 0.9em;
+ color: #333;
+}
+
+kbd {
+ font-family: monospace;
+ background-color: #f0f0f0;
+ border-radius: 3px;
+ padding: 2px 4px;
+ font-size: 0.9em;
+ color: #333;
+ white-space: nowrap;
+ border: 1px solid #ccc;
+ box-shadow: inset 0 -1px 0 #fff;
+}
+
+math {
+ font-family: monospace;
+ display: block;
+ margin: 10px;
+ word-wrap: normal;
+ overflow-x: auto;
+}
+
+@media screen and (max-width: 768px) {
+ body {
+ /* padding: 2em; */
+ /* font-size: 85%; */
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ color: antiquewhite;
+ /* background-color: rgb(28, 28, 28); */
+ background-color: black;
+ }
+
+ a {
+ color: #349dc6;
+ }
+
+ a:hover {
+ color: antiquewhite;
+ }
+
+ .color-invertible {
+ /* filter: invert(92.94%); */
+ filter: invert(100%);
+ }
+
+ cita {
+ color: lightcyan;
+ border-left: 1px solid lightcyan;
+ }
+
+ code {
+ color: lightcyan;
+ }
+
+ emb {
+ background-color: #343434;
+ color: antiquewhite;
+ }
+
+ kbd {
+ background-color: #343434;
+ color: #ffffff;
+ border: 1px solid #211e1e;
+ box-shadow: inset 0 -1px 0 #000000;
+ }
+
+}
+\ No newline at end of file
diff --git a/automate.sh b/automate.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+TMP=$(mktemp)
+
+for file in */index.html; do
+ [ -f "$file" ] || continue
+
+ dir=$(dirname "$file")
+
+ title=$(grep -oP '(?<=<p class="title">).*?(?=</p>)' "$file" | head -n1)
+
+ date=$(grep -oP '(?<=<p class="date">).*?(?= • )' "$file" | head -n1)
+
+ author=$(grep -oP '(?<= • ).*?(?=</p>)' "$file" | head -n1)
+
+ excerpt=$(
+ awk '
+ /<\/header>/ {inside=1; next}
+ inside && /<p>/ {
+ gsub(/<[^>]+>/,"")
+ print
+ exit
+ }
+ ' "$file" | cut -c1-200
+ )
+
+ order_date=$(
+ python3 - <<EOF
+from datetime import datetime
+
+months = {
+ "enero":1,
+ "febrero":2,
+ "marzo":3,
+ "abril":4,
+ "mayo":5,
+ "junio":6,
+ "julio":7,
+ "agosto":8,
+ "septiembre":9,
+ "octubre":10,
+ "noviembre":11,
+ "diciembre":12
+}
+
+s = "$date".lower()
+
+try:
+ day, _, month, _, year = s.split()
+ print(f"{year}{months[month]:02d}{int(day):02d}")
+except:
+ print("00000000")
+EOF
+ )
+
+ printf "%s\t%s\t%s\t%s\t%s\n" \
+ "$order_date" "$dir" "$title" "$date" "$author|$excerpt" \
+ >> "$TMP"
+
+done
+
+sort -r "$TMP" | while IFS=$'\t' read -r _ dir title date rest
+do
+ author=${rest%%|*}
+ excerpt=${rest#*|}
+
+ cat <<EOF
+<a href="./$dir/" class="article">
+ <p class="title">$title</p>
+ <p class="info">$date · $author</p>
+ <p>$excerpt...</p>
+</a>
+
+EOF
+
+done
+
+rm "$TMP"
+\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
@@ -1 +0,0 @@
-<p>Primer commit</p>
diff --git a/index.html b/index.html
@@ -5,43 +5,55 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Bernardo de Borgoña</title>
<link rel="icon" type="image/png" href="favicon.png" />
-<link rel="stylesheet" type="text/css" href="style.css" />
-</head>
+<link rel="stylesheet" type="text/css" href="style.css" /></head>
<body>
<header>
<img class="logo" src="logo.png" alt="Bernardo de Borgoña">
<h1 class="title">Bernardo de Borgoña</h1>
<p class="subtitle">Caballero. Cristiano Viejo. Unixismo.</p>
<nav class="menu">
- <a href="./git">git</a>
+<a href="./git">git</a>
</nav>
</header>
<section class="blog">
- <a href="./archlinux/" class="article">
- <p class="title">Entrada 1</p>
- <p class="info">20/12/2021 · Autor</p>
- <p>Lorem ipsum dolor sit amet...</p>
- </a>
-
- <a href="#" class="article">
- <p class="title">Entrada 2</p>
- <p class="info">20/12/2021 · Autor</p>
- <p>Lorem ipsum dolor sit amet...</p>
- </a>
-
- <a href="#" class="article">
- <p class="title">Entrada 3</p>
- <p class="info">20/12/2021 · Autor</p>
- <p>Lorem ipsum dolor sit amet...</p>
- </a>
-
- <a href="#" class="article">
- <p class="title">Entrada 4</p>
- <p class="info">20/12/2021 · Autor</p>
- <p>Lorem ipsum dolor sit amet...</p>
- </a>
+<a href="./anillos-poder/" class="article">
+ <p class="title">La perversión de los personajes de J.R.R. Tolkien</p>
+ <p class="info">27 de septiembre de 2023 · fjbalon • fjbalon</p>
+ <p>Sinceramente, no comprendo el afán de protección ante las malas críticas hacia este producto de Amazon. ¿Tanto miedo hay a que se catalogue como un mal producto? ¿vamos a primar el marketing y la...</p>
+</a>
+
+<a href="./secretos-matrimonio/" class="article">
+ <p class="title">Secretos de un matrimonio (1973), de Ingmar Bergman</p>
+ <p class="info">2 de enero de 2023 · fjbalon</p>
+ <p>Formalmente, como todo lo que hace Bergman es refinado y pulcro. De los diálogos sobreviene una educación y una elegancia que lo separa de cualquier telenovela o serie, y que al dividirlo en capítu...</p>
+</a>
+
+<a href="./browser-sucks/" class="article">
+ <p class="title">Todos los navegadores web son basura</p>
+ <p class="info">2 de enero de 2023 · fjbalon</p>
+ <p>Me he inspirado en el artículo every web browser absolutely sucks, de Luke Smith, con el que -debo decir- estoy radicalmente de acuerdo, tanto que he querido hacer mi propio «browser sucks»....</p>
+</a>
+
+<a href="./dd/" class="article">
+ <p class="title">Sobre el tamaño de bloque en dd</p>
+ <p class="info">16 de marzo de 2021 · fjbalon</p>
+ <p>dd es una de las herramientas invaluables de cualquier arsenal Unix, y quizás una de las herramientas más potentes que existen en esta familia. Forma parte de las core utils y su objetivo principal ...</p>
+</a>
+
+<a href="./aquino/" class="article">
+ <p class="title">De las cinco vías de Tomás de Aquino</p>
+ <p class="info">29 de marzo de 2016 · fjbalon</p>
+ <p>Tiempo llevo analizando y contemplando, si ese verbo puede ser usado al respecto, la gigantesca obra de Tomás de Aquino. Y tiempo llevo comprobando, casi experimentalmente, que el vulgo no conoce rea...</p>
+</a>
+
+<a href="./archlinux/" class="article">
+ <p class="title">Guía de instalación de arch linux base</p>
+ <p class="info">22 de marzo de 2016 · fjbalon</p>
+ <p>Adentrándonos en el vasto universo de Unix y GNU/Linux, en especial en su distributismo característico; Arch Linux se presenta como una distro recomendada a usuarios avanzados y con cierto conocimie...</p>
+</a>
+
</section>
</body>
</html>