Zum Inhalt springen

Wie man ein Serendipity-Blog in statische Seiten umwandelt

Zur Vorgeschichte. Der in der „S9y Szene“ sicherlich nicht unbekannte Matthias „Yellowled“:http://yellowled.de/ Mees hat sein [[Serendipity]] Blog stillgelegt. Je nachdem wann ihr den Artikel lest, ist sein Schlussartikel „Dicht“:http://matthias.yellowled.de/archives/1337-Dicht.html noch aufrufbar.
Aber Matthias ist natürlich weiterhin über sein „Posterous-Blog“:http://yellowled.posterous.com/ und per „@yellowled“:http://twitter.com/yellowled auf Twitter zu lesen.

Matthias ist weiterhin für Serendipity aktiv und wird ev. auch wieder einmal ein S9y Blog aufmachen. Sein altes Blog wird in Zukunft nur als statische HTML-Seite aufrufbar sein.

Und darum geht es im nachfolgenden Text. Matthias hat mir freundlicherweise einen Gastbeitrag zum Thema dieses Artikels übermittelt. Danke.

Matthias schreibt: Möchte man ein mit Serendipity betriebenes Blog nicht weiter mit neuen Artikeln versorgen, gebietet die Höflichkeit, die Inhalte des Blogs online zu lassen, damit eingehende Links nicht plötzlich ins Leere laufen und interessante Artikel erhalten bleiben.

Nun möchte man sich aber nicht unbedingt die Mühe machen, ein solches Blog weiterhin mit Updates zu versorgen, Kommentare zu moderieren etc. pp. Ideal wäre es also, anstelle dynamisch von S9y generierter Seiten das komplette Blog in POSH umzuwandeln – „plain old semantic HTML“.

Diese Umwandelung möchte man eindeutig nicht von Hand machen – muss man auch nicht, denn unter anderem dafür gibt es wget, ein freies Programm des GNU-Projekts, mit dem man (vereinfacht gesagt) auf der Kommandozeile Dateien herunterladen kann. Darüber hinaus kann wget, welches es für *alle* gängigen Betriebssysteme gibt, aber auch Webseiten spiegeln.

Mit dem Kommando wget -w 5 -k -m -p -E http://domain.tld („domain.tld“ ist dabei natürlich durch die URL des eigenen Blog zu ersetzen) holt wget alle 5 Sekunden eine Datei inklusive der zur Darstellung nötigen Dateien (Grafiken, Stylesheets usw.) ab und wandelt diese im Anschluss für lokale Nutzung um. Die Pause von 5 Sekunden dient dabei dazu, dem Webserver nicht zuviel Last zuzumuten, denn der Vorgang kann (je nach Umfang des Blogs) recht viel Zeit in Anspruch nehmen, zumal wget so eben *alle* Seiten des Blogs abholt und in statisches HTML umwandelt.

Hat wget seine Arbeit beendet, muss leider noch etwas nachgearbeitet werden. Vereinfacht gesagt gilt es, alle Dateien zu löschen, welche in der statischen Version der Seite nicht länger benötigt werden. Dabei handelt es sich um die Dateien, welche folgenden Mustern entsprechen:

* comment.php?(…)
* index.php?(…)
* rss.php?(…)

Darüber hinaus kann es Sinn machen, bestimmte Teile der Seite komplett zu entfernen, da sie in POSH nicht mehr funktionieren – Kommentar- und Kontakt-Formulare, verschiedene Seitenleistenplugins usw. Manuell wäre auch das natürlich zuviel – es bietet sich an, diese Elemente mit skriptfähigen Kommandozeilenwerkzeugen wie sed und awk oder auch einem Perl-Skript zu entfernen. Da ich mit diesen Unix-Tools leider nicht gut vertraut bin, habe ich die entsprechenden Teile infach kurzerhand mittels jQuery ausgeblendet. Besucher mit deaktiviertem Javascript können dennoch keinen Schaden anrichten, da die PHP-Skripte, welche z.B. die Formulare verarbeiten, vom Server entfernt wurden.


Danke Matthias. Sollte jemand eine Frage dazu haben, einfach hier kommentieren. Matthias wird sicher gerne antworten (so wie ich ihn kenne 🙂

8 Kommentare

  1. 1. Der Artikel „Dicht“ *bleibt* (wie alle anderen) abrufbar, das ist ja genau der Sinn der Statifizierung. 🙂

    2. Der Begriff „statische Seiten“ ist für S9y-Benutzer irreführend, das hat nichts mit den statischen Seiten, die man in einem Blog über das gleichnamige Plugin erzeugen kann, zu tun. Es geht wirklich darum, das Blog in reine HTML-Seiten, die nicht dynamisch generiert werden, umzuwandeln.

    3. Ich werde *definitiv* wieder ein S9y-Blog aufmachen, nicht eventuell. 🙂 (Was ist das? Kaum macht man sein olles Blog dicht, schon meinen alle, man würde komplett aufhören zu bloggen. Jessas. ;))

    • Danke für den Kommentar.

      Ad 1. Aber bleiben auch die URLs die gleichen? Das meint ich damit.

      Ad 2. Ups. Ganz übersehen, dass das natürlich doppeldeutig (für S9y´lerInnen) ist.

      Ad 3. Vielleicht wollte ich nur noch eine weitere Absichtserklärung aus dir herauslocken 😉 Yellowled ohne S9y Blog (wenn auch nur kurz) ist halt ein „Schock“. Also bitte, lass uns nicht zu lange warten 🙂

      Danke auf alle Fälle für deinen Gastbeitrag.

      • Ja, die URLs bleiben gleich. wget speichert die Seiten lokal so, dass man den ganzen Kram hinterher nur wieder unter derselben URL hochladen muss. Ich nehme also den Inhalt der Verzeichnisses, das mir wget lokal anlegt und lade ihn auf die alte URL, in meinem Fall http://matthias.yellowled.de — und dann tut das wie zuvor. Das, was *jetzt* auf http://matthias.yellowled.de steht, *sind* ja bereits POSH-Seiten. 🙂

        Was das „lange Warten“ angeht — ich möchte das auch gerne schnell online haben, aber das eigene Blog zu gestalten ist etwas, was *immer* länger dauert. Zudem habe ich ja auch noch ein, zwei andere Dinge zu tun und Projekte am laufen. 😉

        • Dann ist es natürlich eine besonders gute Lösung. Ah, auf den ersten Blick (in den Quelltext) ist das gar nicht ersichtlich. Aber das ist ja auch der Sinn der Sache, oder? 🙂

          Ad „lange Warten“. Verstehe. Freue mich auf das Endergebnis. Aber ich bin ja ein wenig Mitschuld an manchen Projekten 😉

          • Genau. Es soll möglichst alles unverändert sein, ohne dass man weiterhin ein Blog-System pflegen und aktualisieren muss. Das gilt für den Quelltext ebenso wie für die URLs.

  2. Das ist ja mal ein wirklich geniales Tool. Bei Domains wo nur ein paar dynamische Seiten vorhanden sind, habe ich so etwas per Hand gemacht. Bei einem so contentreichen Projekt wie einem Blog ein viel zu Geiser Kraftakt. Zumindest ohne dieses Tool.

  3. Naja – ist zwar schon ein älterer Artikel – aber immer noch genial!
    LG Steffen

Schreibe einen Kommentar zu blog.geekgirls.de Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert