6 Punkte von GN⁺ 2025-05-04 | 5 Kommentare | Auf WhatsApp teilen
  • Ein Beispiel für einen selbst gebauten Blog ohne Jekyll, Ghost oder WordPress
  • Zu den Grundanforderungen gehören die Nutzung einer eigenen Domain, statische Seitengenerierung, SEO-Konformität und das einfache Hinzufügen von Beiträgen
  • Der Kern besteht aus template.html und dem Skript render.py; allein mit dem Schreiben von Markdown-basierten Texten werden alle Seiten automatisch gerendert
  • Mit der Python-Bibliothek markdown2 werden die Umwandlung von Markdown → HTML und die Seitenerstellung automatisiert
  • Betont wird eine Struktur, die SEO und moderne Webstandards einhält und zugleich das unkomplizierte Hinzufügen von Inhalten ermöglicht

Anforderungen an den Blog

  • Die bereits eigene Domain verwenden
  • Moderne Webstandards und SEO-Freundlichkeit beibehalten
  • Das Hinzufügen von Beiträgen soll sehr einfach sein
  • Alle Seiten sollen statisch generiert werden

Zusammenfassung der Umsetzungsschritte

  • Datei template.html erstellen → Grundlayout in HTML aufbauen
  • Mit dem Befehl pip install markdown2 das Tool zum Rendern von Markdown installieren
  • O1 bitten, ein Python-Skript zum Rendern (render.py) zu erstellen
  • Im Ordner posts/ Beiträge im Format eng.md schreiben
  • render.py ausführen, um HTML zu erzeugen und den Ausgabeordner zu erstellen

Zentrales HTML-Template (template.html)

  • Die HTML-Struktur ist einfach und minimalistisch, und an der Stelle {{ content }} wird das gerenderte Markdown-Ergebnis eingefügt
  • Das CSS sorgt mit einer auf system-ui basierenden Schrift, adaptivem Padding und Einstellungen wie color-scheme für gute Lesbarkeit

Zentrales Python-Rendering-Skript (render.py)

  • Mit markdown2 wird jeder Markdown-Beitrag in HTML umgewandelt
  • Bei der Umwandlung werden <img>-Pfade automatisch durch /posts/{post_code}/ ersetzt
  • Der HTML-Titel wird aus dem Markdown-#-Header extrahiert
  • index.html besteht aus greetings.md + einer Titelliste aller Beiträge
  • Das Ergebnis wird als .html im Ordner ./blog/ gespeichert

5 Kommentare

 
ifmkl 2025-05-07

Ich betreibe meinen Blog derzeit auch genau so wie oben beschrieben. Ich habe ein SSG erstellt, das meine persönlichen Anforderungen erfüllt, und nutze es entsprechend. Um Thumbnail-Bilder, Kategorien und Tags verwenden zu können, habe ich jeweils eigene benutzerdefinierte Funktionen eingebaut. Die angehängten Bilder werden automatisch in WebP konvertiert und dann referenziert, wodurch ich mit der Rendering-Geschwindigkeit sehr zufrieden bin.

 
winterjung 2025-05-07

Oh, fügt ihr solche benutzerdefinierten Funktionen direkt hinzu, indem ihr den Code selbst schreibt? Ich versuche auch immer, alles als DIY zu machen, zögere dann aber wegen der Erweiterungen und Plugin-Funktionen, die die bisher von mir verwendeten SSG-Blog-Frameworks bieten.

 
ifmkl 2025-05-07

Wenn man den Ehrgeiz etwas zurücknimmt, ist der Rest gar nicht so schwierig. Auch ssg schreibt auf Anfrage an die AI den ganzen Code, und wenn man sie bittet, Funktionen hinzuzufügen, ergänzt sie die in Wirklichkeit auch alle, haha.

 
ndrgrd 2025-05-04

Wenn man einfach nur eine schöne Schrift auswählt, ist es schon ganz ansehnlich.

 
GN⁺ 2025-05-04
Hacker-News-Kommentare
  • Beim Starten eines Blogs wurde ein SSG verwendet, aber letztlich auf Wordpress umgestellt, was mehr Freiheit brachte

    • Es ist wichtig, Tools zu vermeiden, die beim Schreiben stören
    • Man sollte Aufschieben vermeiden, um sich auf das Schreiben konzentrieren zu können
  • Zwei Elemente sind nötig, damit etwas als Blog gelten kann

    • Beiträge müssen chronologisch sortiert sein und das Datum anzeigen
    • Ein RSS-Feed ist erforderlich
  • Zuneigung zu unabhängigen Websites

    • Eine Website, die vor 25 Jahren mit ASP begann, läuft heute auf Common Lisp
    • Mit einer Website mit minimalen Funktionen begonnen und nach und nach Features hinzugefügt
    • Neue Ideen sind immer verlockend, aber man achtet darauf, dass das Projekt nicht unkontrolliert wächst
  • Wunsch nach nativer Unterstützung für text/markdown und text/gemini im Browser

    • Unterstützung für andere Formate senkt die Hürde zum Veröffentlichen und gibt den Nutzern die Kontrolle zurück
  • Hinweis auf einen Bug, bei dem die Zeichenkette "Minimum viable blog" durch den Posttitel ersetzt wird

  • Ein Blog wurde mit einfachen HTML-Seiten betrieben, inzwischen wird Astro verwendet, um eine weiterentwickelte Website zu betreiben

    • Astro ist eine für inhaltsorientierte Websites optimierte Plattform
  • Experimente mit Bun JS und der Nutzung von HTML als JS-String

    • Die IntelliJ IDE erkennt HTML und unterstützt Formatierung sowie Hervorhebung
  • Einige Tricks, die man in 15 Jahren Experimenten mit einem minimalistischen Blog gelernt hat

    • JSX ist als serverseitiger String-Builder nützlich
    • GH Pages ist einfacher zu verwenden als Jekyll
    • highlight.js ist für Code-Highlighting weiterhin nützlich
  • Die Einfachheit eines standardmäßigen statischen Blogging-Frameworks mit Hugo/Zola und Cloudflare Pages

    • Verwendung des Themes Hugo Blog Awesome
    • Die Seitengröße wird unter 512kb gehalten
  • Beim Wiederbeleben eines alten Blogs wurde die Umständlichkeit von Hexo erfahren

    • Da Themes nicht richtig funktionieren, wird überlegt, ein eigenes Theme zu entwickeln
    • Die Komplexität könnte zunehmen, aber es wird versucht, das Problem zu lösen