diff --git a/_pages/about.md b/_pages/about.md
index aa9ef11e..8231a95d 100644
--- a/_pages/about.md
+++ b/_pages/about.md
@@ -12,10 +12,10 @@ profile:
selected_papers: false # includes a list of papers marked as "selected={true}"
-social: false # includes social icons at the bottom of the page
+social: true # includes social icons at the bottom of the page
latest_posts:
- enabled: true
+ enabled: false
scrollable: true # adds a vertical scroll bar if there are more than 3 new posts items
limit: 5 # leave blank to include all the blog posts
@@ -40,3 +40,146 @@ Mein ganzer Name ist Alexander Maximilian Stridde. Du kannst mich einfach Max ne
Ich studiere Mathematik an der [Universität Bonn](https://www.uni-bonn.de). Im Sommersemester 2026 verbringe ich ein halbes Jahr mit Erasmus an der [Università degli Studi di Milano](https://www.unimi.it/en) in Italien. Auf diesem Blog berichte ich unter anderem, wie meine [ersten Tage in Italien](/blog/2026/Hallo-Mailand/) vergangen sind.
---
+
+
diff --git a/_pages/blog.md b/_pages/blog.md
index 86cba00d..368f8773 100644
--- a/_pages/blog.md
+++ b/_pages/blog.md
@@ -14,7 +14,7 @@ pagination:
trail:
before: 1 # The number of links before the current page
after: 3 # The number of links after the current page
-social: true # includes social icons at the bottom of the page
+social: false # includes social icons at the bottom of the page
---
diff --git a/_pages/books.md b/_pages/books.md
index 0bb112ac..1e3cab0f 100644
--- a/_pages/books.md
+++ b/_pages/books.md
@@ -5,6 +5,7 @@ social: true
permalink: /books/
nav: false
collection: books
+covers: /assets/img/books/
---
> Bücher sind ein Tor zur Welt.
diff --git "a/_posts/2026-06-14-Mobilit\303\244t-in-Mailand.md" "b/_posts/2026-06-14-Mobilit\303\244t-in-Mailand.md"
index c5c8f3a0..b2011382 100644
--- "a/_posts/2026-06-14-Mobilit\303\244t-in-Mailand.md"
+++ "b/_posts/2026-06-14-Mobilit\303\244t-in-Mailand.md"
@@ -5,8 +5,6 @@ date: 2026-06-14 18:00:00
description: Ein Überblick über die verschiedenen Verkehrsmittel und Fortbewegungsmöglichkeiten in Mailand.
tags: italien mailand
categories: blogging
-toc:
- sidebar: left
thumbnail: assets/img/erste-tage/unterwegs.jpeg
featured: false
social: true
diff --git a/_posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts.md b/_posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts copy.md
similarity index 95%
rename from _posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts.md
rename to _posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts copy.md
index 7eb16bb4..2f71971b 100644
--- a/_posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts.md
+++ b/_posts/2026-06-26-Das-ABC-der-Keyboard-Shortcuts copy.md
@@ -6,8 +6,6 @@ description: Wer Tastaturkürzel kennt, spart täglich ein paar Minuten. Hier si
tags: technik laptop
categories: blogging
tabs: false
-toc:
- sidebar: false
featured: false
social: true
thumbnail: assets/img/misc/keyboard.jpg
diff --git a/_posts/2026-07-21-Was-macht-Mailand-so-lebenswert.md b/_posts/2026-07-21-Was-macht-Mailand-so-lebenswert.md
new file mode 100644
index 00000000..5032b118
--- /dev/null
+++ b/_posts/2026-07-21-Was-macht-Mailand-so-lebenswert.md
@@ -0,0 +1,78 @@
+---
+layout: post
+title: Warum Mailand solch eine Lebenswerte Stadt ist
+date: 2026-07-19 12:00:00
+description: Gute Stadtplanung ist keine Raketenwissenschaft. Es gelten nur die selben Anforderungen wie für Siedlungen auf dem Mars.
+tags: mailand italien stadt
+categories: blogging
+tabs: false
+featured: false
+social: true
+thumbnail: assets/img/stadtplanung/eingang.jpg
+og_image: /assets/img/og-preview/mailand-lebenswert.jpg
+latest_posts:
+ enabled: false
+ scrollable: false
+ limit: 5
+---
+
+## Stadtplanung
+
+Gute Stadtplanung ist keine Raketenwissenschaft. Es reicht, sich zu fragen, was dem Menschen auf dem Mars fehlen würde, um die Grundsäulen der lebenswerten Stadt zu verstehen. Denn der Mars ist ziemlich menschenunfreundlich. Um dort zu überleben, brauchen wir Menschen frische Luft, Trinkwasser und genügend Freiraum, damit wir uns in den Wohnkapseln nicht zu beengt fühlen.
+
+Weil diese Lebensanforderungen unabhängig vom Planeten sind, können wir diese Prinzipien auch auf irdische Städte anwenden. Das Schöne an Italien ist, dass diese Grundvoraussetzungen des menschlichen Lebens in Städten wie Mailand erfüllt sind.
+
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/Martinitt_gespiegelt.jpg" title="Mein Wohncampus Martinitt" alt="Innenhof mit Bäumen in Mailand, gespiegelt an Fensterscheibe" caption="Mein Wohnheim, Campus Martinitt" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+
+## Frischluft
+
+Die Luftaufbereitungsanlagen unserer Stadt heißen Bäume. Sie tragen unfassbar viel zur Qualität einer Stadt bei. Mailand macht in diesem Punkt vieles richtig. Große Verkehrsadern sind von Bäumen umsäumt. Die Parkzone über der neu gebauten, selbstfahrenden U-Bahn ist schön und dicht begrünt. Bäume sorgen für Schatten und angenehmere Temperaturen, sie sind Luftfilter, speichern CO₂ und sind Heimat für so manche Tierart. Nicht ohne Grund werden Bäume auch als Lunge der Stadt bezeichnet.
+
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/piazza_leonardo.jpg" title="Eingang zur Uni Politecnico" alt="Begrünte Piazza Leonardo Davinci in Mailand" caption="Piazza Leonardo Davinci" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+
+## Trinkwasser
+
+Es ist wirklich klasse. Fast egal, wo man in Mailand ist, findet man im nahen Umkreis eine öffentliche Trinkwassersäule. Vor meinem Wohnheim wurde so eine neu gebaut. Seitdem kommen dort regelmäßig Anwohner vorbei und füllen sich literweise Flaschen ab. Es gibt Wasserschlachten, Hunde trinken aus dem Auffangbecken unter dem Auslass, und bei jeder Stadtexkursion kann man seine Flasche kostenlos wieder auffüllen. Die Wasserspender bekämpfen nicht nur Plastikflaschen, sie sorgen für eine gesündere Stadt. Ich wünschte, mehr Städte würden sich daran ein Vorbild nehmen.
+
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/fontanella_1.jpg" title="Trinkbrunnen normal" alt="Öffentliche Trinkwassersäule in Mailand" caption="Pro Jahr fließen hier 1.576.800 Liter" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/fontanella_2.jpg" title="Trinkbrunnen spezial" alt="Öffentliche Trinkwassersäule in Mailand" caption="Mit einem Finger drunter spart man sich das Bücken" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+
+## Wohlfühloasen
+
+Was macht eine Stadt lebenswert? Ganz sicher nicht eine endlose Vielzahl von Einkaufsstraßen, die nur Freude machen, wenn man Geld in die Hand nimmt. In einer lebendigen Stadt spielt sich das Leben auf den Straßen ab. Dafür braucht es Stätten der Zusammenkunft: von Stadtparks über kleine Bänke unter einem Baum, Hinterhöfe, offene Kirchen und Fußgängerpassagen bis hin zu kleinen Cafés, die solche Orte bereichern. Von all dem hat Mailand reichlich. Es ist schön zu sehen, wie sich Gruppen von Rentnern an ihrer Parkbank treffen, Studenten an den Bars ihren Aperol Spritz trinken, Familien in Restaurants zusammenkommen und Jugendliche im Park abhängen. Mailand lädt zum Verweilen ein und ist durch seine Gelassenheit etwas ganz Besonderes. Der Unterschied zu anderen Städten ist, dass Mailand nicht nur eine Touristenstadt ist. Gerade durch viele kostenfreie Angebote ist Mailand auch für die Bewohner sehr lebenswert.
+
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/wohlfuehloase.jpg" title="Wohlfühloase" alt="Sonnenuntergang in Mailand" caption="Sonnenuntergänge zu betrachten hat etwas magisches" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+
+## Sportraum
+
+Wie bleiben Astronauten auf dem Mars fit? Indem sie Sport machen. Wie bleiben Menschen auf der Erde fit? Indem sie Sport machen. Genau darum sind städtische, frei zugängliche Sportanlagen eine gute Investition, denn alle profitieren davon. Bewegung tut gut, und die Sportplätze dienen als Spiel- und Turnplatz für kleine Kinder, als Muckibude für alle Größeren und als sozialer Treffpunkt für sportbegeisterte Menschen. Im Verbund mit Tischtennisplatten, Basketball- und Fußballfeldern, Boule-Plätzen (Boccia), dedizierten Spielplätzen, Parkbänken sowie schönen begrünten Strecken für Läufer entstehen attraktive Orte für eine Vielzahl von Sportarten und Aktivitäten. Hier kommen Menschen aller Altersklassen zusammen. Abends wuselt es an diesen Orten in Mailand nur so vor Aktivität. Mailand hat erkannt, dass solche Anlagen die Lebensqualität steigern und die Attraktivität eines Viertels erhöhen. Davon sollten sich viele Städte eine Scheibe abschneiden.
+
+
+
+ {% include figure.liquid loading="eager" path="assets/img/stadtplanung/sportplatz_bei_sonnenuntergang.jpg" title="Sportplatz bei Sonnenuntergang" alt="Städtische Sportanlage bei Sonnenuntergang in Mailand" caption="Beim Basketballplatz ist immer etwas los" class="img-fluid rounded z-depth-1" zoomable=true %}
+
+
+
+---
+
+Auch wenn Mailand selber keine spektakuläre Stadt ist, wie vielleicht Florenz, Venedig, Pisa oder Rom, herrscht hier ein besonderer Flair. Es lässt sich in Mailand sehr gut leben, und darum bin ich super glücklich, hier mein Erasmus verbracht zu haben.
+
+
diff --git a/_projects/Das-ABC-der-Keyboard-Shortcuts.md b/_projects/Das-ABC-der-Keyboard-Shortcuts.md
index 1bc0b6dc..f7c64a23 100644
--- a/_projects/Das-ABC-der-Keyboard-Shortcuts.md
+++ b/_projects/Das-ABC-der-Keyboard-Shortcuts.md
@@ -13,8 +13,6 @@ latest_posts:
scrollable: false
limit: 5
tabs: true
-toc:
- sidebar: left
---
---
diff --git a/_sass/_blog.scss b/_sass/_blog.scss
index ca522982..82766f8e 100644
--- a/_sass/_blog.scss
+++ b/_sass/_blog.scss
@@ -48,7 +48,7 @@
border-bottom: 1px solid var(--global-divider-color);
list-style: none;
padding-top: 2rem;
- padding-bottom: 2rem;
+ padding-bottom: 0;
.post-meta {
color: var(--global-text-color-light);
diff --git a/_tools/og-preview/README.md b/_tools/og-preview/README.md
new file mode 100644
index 00000000..02c09ee0
--- /dev/null
+++ b/_tools/og-preview/README.md
@@ -0,0 +1,24 @@
+# OG-Preview-Skripte
+
+Skripte zum Erzeugen der 1200×630 Social-Preview-/Open-Graph-Bilder für Blogposts.
+
+- **Quelle:** https://github.com/maxstridde/social_preview
+- `og-advanced.sh` ist von dort übernommen und für dieses Blog angepasst
+ (deutsche Texte, warme Italien-Palette). Der CONFIG-Block oben im Skript ist
+ die einzige Stelle, die man normalerweise editiert.
+
+## Voraussetzungen
+
+- ImageMagick 7 (`magick`)
+- Poppins-Fonts unter `~/Library/Fonts/` (siehe `FONT_*` im Skript)
+
+## Verwendung
+
+```bash
+./og-advanced.sh eingabe.jpg ausgabe.jpg
+```
+
+Fertige Bilder landen unter `assets/img/og-preview/` und werden im Post per
+`og_image:` (absolute URL) im Front Matter verlinkt.
+
+> `_tools/` beginnt mit `_` und wird von Jekyll nicht mit ausgeliefert.
diff --git a/_tools/og-preview/og-advanced.sh b/_tools/og-preview/og-advanced.sh
new file mode 100755
index 00000000..106ffff3
--- /dev/null
+++ b/_tools/og-preview/og-advanced.sh
@@ -0,0 +1,124 @@
+#!/usr/bin/env bash
+# og-advanced.sh — 1200x630 social preview with a framed photo, soft shadow,
+# decorative shapes, a title/subtitle block and a pill button.
+#
+# Works for both portrait and landscape inputs:
+# * EXIF orientation is normalized
+# * the photo's longer side is cropped to a box that matches its orientation
+# * the text block is anchored to the box's right edge, so tall & wide both fit
+#
+# Usage: ./og-advanced.sh input.jpg output.jpg
+#
+# Requires ImageMagick 7 (`magick`).
+
+set -euo pipefail
+
+# ------------------------------------------------------------------ config
+SUBTITLE="Stadtplanung · Blog"
+TITLE="Warum Mailand
+lebenswert ist"
+BTN_TEXT="Jetzt lesen"
+
+# Fonts — point these at .ttf files you actually have.
+FONT_TITLE="${HOME}/Library/Fonts/Poppins-ExtraBold.ttf"
+FONT_SUB="${HOME}/Library/Fonts/Poppins-SemiBold.ttf"
+FONT_BTN="${HOME}/Library/Fonts/Poppins-SemiBold.ttf"
+
+# Background gradient (top → bottom) — warm Italian cream/sand
+BG_TOP='#f7f4ec'
+BG_BOT='#e8e2d2'
+
+# Accent shapes behind the photo
+S1='#4a7c59' # forest green — rounded rect, top-left (city trees)
+S2='#e07a5f' # terracotta — rounded rect, bottom-right (Italian roofs)
+S3='#f2cc8f' # warm sun — circle, top-right
+
+# Text & button colors
+TITLE_COL='#2b2b26'
+SUB_COL='#7a756a'
+BTN_COL='#4a7c59'
+BTN_TEXT_COL='white'
+# ------------------------------------------------------------------------
+
+INPUT="${1:-input.jpg}"
+OUTPUT="${2:-output.jpg}"
+
+if [[ ! -f "$INPUT" ]]; then
+ echo "Input not found: $INPUT" >&2
+ exit 1
+fi
+for f in "$FONT_TITLE" "$FONT_SUB" "$FONT_BTN"; do
+ if [[ ! -f "$f" ]]; then
+ echo "Font not found: $f" >&2
+ echo "Edit FONT_* at the top of this script to point at .ttf files you have installed." >&2
+ exit 1
+ fi
+done
+
+TMP="$(mktemp -d)"; trap 'rm -rf "$TMP"' EXIT
+
+# 1) normalize orientation, pick a photo box matching the source's aspect
+magick "$INPUT" -auto-orient "$TMP/src.png"
+read W H <<<"$(magick identify -format "%w %h" "$TMP/src.png")"
+if [ "$W" -ge "$H" ]; then
+ BOX_W=540; BOX_H=384 # landscape box
+else
+ BOX_W=384; BOX_H=520 # portrait box
+fi
+FRAME_W=$((BOX_W+24)); FRAME_H=$((BOX_H+24))
+BX=70; BY=$(( (630-FRAME_H)/2 ))
+
+# 2) crop photo + rounded corners
+magick "$TMP/src.png" -resize ${BOX_W}x${BOX_H}^ -gravity center -extent ${BOX_W}x${BOX_H} \
+ \( -size ${BOX_W}x${BOX_H} xc:black -fill white \
+ -draw "roundrectangle 0,0,$((BOX_W-1)),$((BOX_H-1)),30,30" \) \
+ -alpha off -compose CopyOpacity -composite "$TMP/photo_rounded.png"
+
+# 3) white frame around the photo
+magick -size ${FRAME_W}x${FRAME_H} xc:none -fill white \
+ -draw "roundrectangle 0,0,$((FRAME_W-1)),$((FRAME_H-1)),36,36" \
+ "$TMP/photo_rounded.png" -gravity center -composite "$TMP/framed.png"
+
+# 4) soft shadow under the frame
+magick -size $((FRAME_W+80))x$((FRAME_H+80)) xc:none -fill 'rgba(0,0,0,0.16)' \
+ -draw "roundrectangle 40,40,$((FRAME_W+39)),$((FRAME_H+39)),36,36" -blur 0x26 "$TMP/shadow.png"
+
+# 4b) thin top accent line — the three accent colors blended across the width
+magick \( -size 8x600 gradient:"$S2"-"$S1" -rotate 90 \) \
+ \( -size 8x600 gradient:"$S3"-"$S2" -rotate 90 \) \
+ +append -resize 1200x8\! "$TMP/topline.png"
+
+# 5) decorative shapes
+magick -size 300x380 xc:none -fill "$S1" -draw 'roundrectangle 0,0,299,379,46,46' -background none -rotate -10 "$TMP/s1.png"
+magick -size 300x300 xc:none -fill "$S2" -draw 'roundrectangle 0,0,299,299,46,46' -background none -rotate 9 "$TMP/s2.png"
+magick -size 150x150 xc:none -fill "$S3" -draw 'circle 75,75 75,5' "$TMP/s3.png"
+
+# 6) pill button
+magick -size 300x84 xc:none -fill "$BTN_COL" -draw 'roundrectangle 0,0,299,83,42,42' \
+ -font "$FONT_BTN" -fill "$BTN_TEXT_COL" -gravity center -pointsize 34 -annotate +0+0 "$BTN_TEXT" "$TMP/button.png"
+
+# 7) background
+magick -size 1200x630 gradient:"$BG_TOP"-"$BG_BOT" "$TMP/bg.png"
+
+# offsets derived from the box, so they track both orientations
+S1X=$((BX-20)); S1Y=$((BY-34))
+S3X=$((BX+FRAME_W-95)); S3Y=$((BY-38))
+S2X=$((BX+FRAME_W-170)); S2Y=$((BY+FRAME_H-180))
+SHX=$((BX-40)); SHY=$((BY-22))
+TX=$((BX+FRAME_W+55))
+TITLE_PT=60
+
+# 8) compose
+magick "$TMP/bg.png" \
+ "$TMP/s1.png" -geometry +${S1X}+${S1Y} -compose over -composite \
+ "$TMP/s3.png" -geometry +${S3X}+${S3Y} -compose over -composite \
+ "$TMP/s2.png" -geometry +${S2X}+${S2Y} -compose over -composite \
+ "$TMP/shadow.png" -geometry +${SHX}+${SHY} -compose over -composite \
+ "$TMP/framed.png" -geometry +${BX}+${BY} -compose over -composite \
+ -font "$FONT_SUB" -fill "$SUB_COL" -gravity northwest -pointsize 40 -annotate +$((TX+4))+205 "$SUBTITLE" \
+ -font "$FONT_TITLE" -fill "$TITLE_COL" -pointsize ${TITLE_PT} -interline-spacing -12 -annotate +${TX}+250 "$TITLE" \
+ "$TMP/button.png" -gravity northwest -geometry +${TX}+395 -compose over -composite \
+ "$TMP/topline.png" -gravity north -geometry +0+0 -compose over -composite \
+ "$OUTPUT"
+
+echo "Wrote $OUTPUT"
diff --git a/assets/img/books/25_letzte_sommer.jpeg b/assets/img/books/25_letzte_sommer.jpeg
new file mode 100644
index 00000000..2f74ca22
Binary files /dev/null and b/assets/img/books/25_letzte_sommer.jpeg differ
diff --git a/assets/img/books/der_kelch_der_goetter.jpg b/assets/img/books/der_kelch_der_goetter.jpg
new file mode 100644
index 00000000..33c36c88
Binary files /dev/null and b/assets/img/books/der_kelch_der_goetter.jpg differ
diff --git a/assets/img/books/die_vermessung_der_welt.jpg b/assets/img/books/die_vermessung_der_welt.jpg
new file mode 100644
index 00000000..90a2fcc8
Binary files /dev/null and b/assets/img/books/die_vermessung_der_welt.jpg differ
diff --git a/assets/img/books/il_piccolo_principe.jpg b/assets/img/books/il_piccolo_principe.jpg
new file mode 100644
index 00000000..7a9723bf
Binary files /dev/null and b/assets/img/books/il_piccolo_principe.jpg differ
diff --git a/assets/img/books/lichtungen.webp b/assets/img/books/lichtungen.webp
new file mode 100644
index 00000000..0fdaf7aa
Binary files /dev/null and b/assets/img/books/lichtungen.webp differ
diff --git a/assets/img/books/ueber_die_heiterkeit.jpeg b/assets/img/books/ueber_die_heiterkeit.jpeg
new file mode 100644
index 00000000..d66d6aaf
Binary files /dev/null and b/assets/img/books/ueber_die_heiterkeit.jpeg differ
diff --git a/assets/img/og-preview/mailand-lebenswert.jpg b/assets/img/og-preview/mailand-lebenswert.jpg
new file mode 100644
index 00000000..9aee3d16
Binary files /dev/null and b/assets/img/og-preview/mailand-lebenswert.jpg differ
diff --git a/assets/img/stadtplanung/Martinitt_gespiegelt.jpg b/assets/img/stadtplanung/Martinitt_gespiegelt.jpg
new file mode 100644
index 00000000..1f2e3d94
Binary files /dev/null and b/assets/img/stadtplanung/Martinitt_gespiegelt.jpg differ
diff --git a/assets/img/stadtplanung/eingang.jpg b/assets/img/stadtplanung/eingang.jpg
new file mode 100644
index 00000000..972580ad
Binary files /dev/null and b/assets/img/stadtplanung/eingang.jpg differ
diff --git a/assets/img/stadtplanung/fontanella_1.jpg b/assets/img/stadtplanung/fontanella_1.jpg
new file mode 100644
index 00000000..7ca97284
Binary files /dev/null and b/assets/img/stadtplanung/fontanella_1.jpg differ
diff --git a/assets/img/stadtplanung/fontanella_2.jpg b/assets/img/stadtplanung/fontanella_2.jpg
new file mode 100644
index 00000000..b8cad098
Binary files /dev/null and b/assets/img/stadtplanung/fontanella_2.jpg differ
diff --git a/assets/img/stadtplanung/piazza_leonardo.jpg b/assets/img/stadtplanung/piazza_leonardo.jpg
new file mode 100644
index 00000000..f2599146
Binary files /dev/null and b/assets/img/stadtplanung/piazza_leonardo.jpg differ
diff --git a/assets/img/stadtplanung/sportplatz_bei_sonnenuntergang.jpg b/assets/img/stadtplanung/sportplatz_bei_sonnenuntergang.jpg
new file mode 100644
index 00000000..ca342a91
Binary files /dev/null and b/assets/img/stadtplanung/sportplatz_bei_sonnenuntergang.jpg differ
diff --git a/assets/img/stadtplanung/wohlfuehloase.jpg b/assets/img/stadtplanung/wohlfuehloase.jpg
new file mode 100644
index 00000000..d4b7298d
Binary files /dev/null and b/assets/img/stadtplanung/wohlfuehloase.jpg differ