WikiWiki

Ende Juni, als ich einen neuen Beitrag schreiben wollte, meldete mir die Twoday-Software lakonisch, dass mein Abonnement abgelaufen sei, mein Blog ab sofort im kostenlosen Mode weiterlaufen würde und man sich (ich weiß jetzt nicht mehr unter welchen Voraussetzungen) das Recht vorbehalten würde, die Inhalte zu löschen. Inzwischen stehen hier über 500 Beiträge, von denen ich einen großen Teil nicht verlieren möchte. Ich habe eilig per Kreditkarte für das nächste halbe Jahr überwiesen und der Account funktionierte danach auch wieder tadellos.

Bei der Gelegenheit fiel mir ein, dass ich kein Backup habe. Was ich in der Firma für alle meine Kollegen organisiert habe, das lasse ich privat total schleifen. Meistens lösche ich einen hier veröffentlichten Artikel danach auf meiner Festplatte, er existiert dann nur noch im Netz. Ich habe mir in der letzten Woche drei Tage Zeit genommen, um alle Artikel "heim" zu holen, jeden einzeln, denn das von Twoday angebotene Gesamtbackup ist da nicht wirklich hilfreich. In derselben Situation war ich schon mal, als ich vor zweieinhalb Jahren mein angestammtes Diskussionsforum verlassen habe und über 200 Artikel per Hand kopieren musste.

Ein eigenes Textarchiv muss her! Eine klassische Textverarbeitung zu verwenden, hat Nachteile, wenn man die Texte ins Netz stellen will, wenn dort externe Objekte (Videos) eingebunden werden sollen, die Einbindung von Bildern in der Textverarbeitung und in Html unterschiedliche gelöst sind und wenn man auf Hyperlinks nicht verzichten will. Außerdem ist es lästig, einen Text in Html-Syntax zu verfassen, weil der Html-Quelltext wesentlich von seiner Darstellung im Browser abweicht. Die naheliegende Lösung ist es ein Wiki zu verwenden. Die meisten Wikis sind Browserbasierte Systeme, die eines Servers bedürfen und bei denen der Editor im Browser realisiert ist. Für meinen Anwendungsfall kam das nicht in Frage. Zunächst habe ich es mit WikidPad probiert, einer Windows-Anwendung, die einen Editor zur Eingabe von Texten in einer Wiki-Syntax gestattet und über ein Browserplugin verfügt. Die Texte können in Einzeldateien gespeichert werden, die zusätzlich verwendeten Daten (z.B. Bilder) in einem weiteren Verzeichnis. Um eine Übersicht über die Verlinkungen zu behalten, wird zusätzlich eine kleine Datenbank aktuell gehalten. Zwei Nachteile: Das Browser-Plugin ist lausig, an der Wiki-Syntax kann man nichts ändern.

In einem zweiten Versuch habe ich es mit UltraEdit32 probiert, einem Editor mit einem ziemlich großen Funktionsumfang. Unter anderem bietet er die Möglichkeit, eigene in Javascript geschriebene Programme aufzurufen und über die Texte laufen zu lassen. Ich habe mir also meine Bedürfnisse an eine Wiki-Syntax definiert und die entsprechenden Javascript-Routinen geschrieben. Da ich bis dahin kein Javascript kannte, dauert das Schreiben des knapp 1000 Zeilen langen Konverters einen ganzen Tag. Eine einzelne Routine darin sieht etwa so aus:

function replaceBold()
{
  UltraEdit.activeDocument.top();
  do
  {
    UltraEdit.activeDocument.findReplace.find("^.*[*][*].*[*][*].*$");
    if (UltraEdit.activeDocument.isFound() == true)
    {
      UltraEdit.activeDocument.findReplace.replace("[*][*]","<b>;");
      UltraEdit.activeDocument.findReplace.replace("[*][*]","</b>");
    }
  } while(UltraEdit.activeDocument.isFound() == true) 
}

"replaceBold()" läuft einmal durch den Text und schaltet in allen Textabschnitten, die mit 2 Sternchen beginnen und mit 2 Sternchen enden, den Fettdruck ein. Letztendlich befriedigt mich diese Lösung immer noch nicht:
  • Für längere Texte wird die Laufzeit unerträglich lang. Bei einem Text, der 500 Links enthält (das Inhaltsverzeichnis) dauert das Formatieren mehrere Minuten, ich habe das Script mehrfach gestartet und wieder abgebrochen, weil ich dachte, das Programm sei abgestürzt.
  • Bestimmte Formatierung sind unmöglich, weil ich die Formulierung der entsprechenden regulären Ausdrücke zum Suchen und Ersetzen nicht hinbekomme, die für den sequentiellen Aufruf der einzelnen Ersetzungen notwendig sind.
  • Das Problem des lausigen Browser-Plugins bleibt ungelöst, Videos werden nicht angezeigt, die Cascading Stylesheets falsch interpretiert, es fehlen wichtige Navigationshilfen eines "echten" Browsers.

Ich werde das Problem also anders lösen müssen. Wenn man auch in einem richtigen Texteditor keine vollständige Browseranzeige erhält und in einem richtigen Browser keinen vollständigen Editor und die Wiki-Syntax weder in dem einen noch in dem anderen Tool den eigenen Ansprüchen genügt, dann sollte man die drei Komponenten vielleicht einfach trennen?
  • Die Texteingabe erfolgt in einem richtigen Texteditor, der auf dem entsprechenden Rechner installiert ist.
  • Die Ergebnisanzeige erfolgt in einem beliebigen Browser, der auf dem Rechner verfügbar ist.
  • Zwischen beiden vermittelt ein selbst geschriebenes Programm.
In seiner Grundversion muss es nur zwei Algorithmen beherrschen:
  1. Scanne das Verzeichnis periodisch auf Dateien vom Typ *.wiki und schaue nach, ob es für diese Dateien Pendants vom Typ *.html gibt. Existieren sie nicht oder sind älteren Datums, dann erzeuge sie.
  2. Wenn du sie erzeugst, dann folge der vom Programmierer vorgegebenen Syntax.
Für dieses Programm genügt eine einfache Konsolenapplikation. Man editiert seinen Text, speichert ihn, holt tief Luft (damit das Programm den geänderten Text aus der *.wiki-Datei bemerkt und übersetzt) und wechselt in den Browser. Gefällt einem das Ergebnis nicht, geht man wieder in den Editor und nimmt die Änderungen vor.

Der Textparser muss nicht beliebig ausgefeilt sein, weil er ja in diesem Fall nur meine Anforderungen an die Textformatierung erfüllen muss. Mehr als einen Tag brauche ich für die Implementierung der folgenden Syntaxregeln sicher nicht, weil ich auf Rekursionen gut verzichten kann (also Listen in Tabellen z.B.):

Wiki-Syntax Ergebnis
//Kursiv// Kursiv
**Fett** Fett
__Unterstrichen__ Unterstrichen
--Durchgestrichen-- Durchgestrichen
Hoch^^gestellt^^ Hochgestellt
Tief~~gestellt~~ Tiefgestellt
[[Linkadresse|Linkbezeichnung]] Linkbezeichnung
[(Bildadresse|Attribute)]
*Nicht nummerierte
*Liste
  • Nicht nummerierte
  • Liste
#Nummerierte
#Liste
  1. Nummerierte
  2. Liste
<< Inhalt >> <center> Inhalt </center>
{{ Inhalt }} <blockquote> Inhalt </blockquote>
(( Inhalt )) Quelltext, alle Html-Sonderzeichen maskieren
((( Inhalt ))) Objekteinbindung, unverändert lassen
|| Eins || Zwei ||
|| Drei || Vier ||
EinsZwei
DreiVier
\ Maskierung der Sonderbedeutung eines Zeichens
Leerzeile (oder zwei?) Neuer Absatz

Wenn dieses Programm gut funktioniert, kann es um weitere Funktionen ergänzt werden:
  • Automatische Erstellung eines Inhaltsverzeichnisses
  • Automatische Erstellung eines Schlagwortverzeichnisses oder von Clouds.
Das Programm zur Textkonvertierung kann so angelegt werden, dass es als Prototyp für die Konvertierung in andere Zielsprachen dienen kann (OO, PDF).

Kategorie: Alltag
ostfriese - 12. Juli, 13:31

Hallo Köppnick,

volles Verständnis für Deine Mühen! Da ich selbst das regelmäßige Sichern zu Hause schwer vernachlässigt hatte, kostete es mich in Summe drei Monate, um nach dem plötzlichen Tod meines alten Rechners im April wenigstens alle eigenen Dateien wiederzufinden und halbwegs zu reorganisieren, erst heute Morgen habe ich das letzte verloren geglaubte Dokument von der alten Festplatte geborgen.

Irgendwie ist es das in jede Aktion am PC, in jeden 'zu Papier' gebrachten Gedanken geflossene Herzblut, die investierte Energie und Lebenszeit, die man so ungern verloren und dem totalen Vergessen anheim gibt.

Allerdings habe ich es noch nie in Erwägung gezogen, auch noch Kopien meiner Foren- oder Blogbeiträge anzulegen. Das wären in Summe weit über 5000, die 'ostfriese' an über 20 verschiedenen Orten hinterlassen hat -- ein aussichtsloses Unterfangen. Ich habe keinen einzigen Beitrag zu Hause vorgefertigt, sondern immer gleich ins Reine geschrieben (wobei ich in Foren, welche die Anzahl der anschließenden Korrekturen zählen, unerreichte Rekorde aufstellte^^).

Manchmal hatte ich schon den Impuls, nach Highlights à la 'best of ostfriese' zu stöbern, konnte mich dann aber noch beherrschen. Denn wozu möchte man, in letzter Konsequenz, 'erhalten bleiben'? Doch wohl, um so etwas wie Spuren zu hinterlassen, Wirkungen zu erzeugen. Und es sind doch gerade unsere veröffentlichten Texte, die bereits zu unseren Lebzeiten Früchte tragen, die am wenigsten 'umsonst' gewesen sind, für die sich insofern eine zusätzliche Sicherung erübrigt. Die hierin geäußerten Gedanken leben in den Köpfen anderer Menschen weiter.

Ein Jüngling aus dem Chiemgau z.B., der sich in vier, fünf verschiedenen Foren immer wieder mit mir anlegte, mutierte unter meinen Argumenten vom leicht abseitigen Esoteriker zum Naturalisten und Gründer der 'Brights Deutschland' (seine Privat-Adresse stand sogar in der deutschen Erstauflage des 'Gotteswahns'; mittlerweile hat er sich noch einen Schritt weiter entwickelt und von der Selbstbezeichnung 'bright' wieder distanziert^^). Eines Tages rief er bei mir zu Hause an, wenige Wochen später begegneten wir uns anlässlich der Verleihung des Deschner-Preises an Richard Dawkins am 12.10.2007 in Frankfurt.

Zwar bin ich über die Wirkung meiner Texte selten so im Bilde wie in diesem Fall, aber der eine oder andere Kommentar lässt ja durchaus Rückschlüsse zu, in welcher Weise unsere Gedanken in anderen Gehirnen zu arbeiten beginnen. Also sorg Dich nicht zu sehr um den wortgetreuen Erhalt Deiner Online-Veröffentlichungen. Sie tragen längst schon reiche Frucht!

bl (Gast) - 12. Juli, 14:27

Bei 500 Beiträgen lohnt sich doch eine eigene Domain und ein CMS. Alles andere erscheint mir unzureichend...
Köppnick - 13. Juli, 19:07

@Ostfriese

Da sind unsere beiden Fälle ja vergleichbar. Auf meiner Festplatte lag nichts mehr, das Zurückholen aus dem Netz entsprach deiner Festplattenrettung. Kommentare kommen bei mir auch eine Menge zusammen, bei durchschnittlich drei am Tag etwa 1000 im Jahr. Einige Texte verwendest du auch doppelt, zum Beispiel habe ich deinen Thürme-Beitrag auch im Brights-Blog gefunden. ;-)

Und mir geht das auch so, dass ich beim Lesen alter Texte eine Entwicklung feststelle, einige Überlegungen sind aus heutiger Sicht "veraltet". Um das aber feststellen zu können, braucht man den Zugriff auf diese älteren Texte.
Köppnick - 13. Juli, 19:16

@BL

Ein CMS, also ein System zur Verwaltung von Inhalten, ist bereits jeder Computer. Im Dateisystem gibt es jede Menge Dateien, ein Doppelklick öffnet das zugehörige Programm. Was hier zum vollständigen Glück noch fehlt, ist die Vernetzung, also ein Hypertextsystem. Genau das wird mit meinem Ansatz erstellt. Ein serverbasiertes CMS will ich aus verschiedenen Gründen nicht. Zum einen ist dieses an einen einzelnen Rechner gebunden, an dem ich entweder sitzen oder auf den ich zugreifen können muss, zum anderen an eine proprietäre Datenbank. Mein Ansatz ist viel flexibler. Ich kann alle meine Daten auf einen Stick spielen. Ein Doppelklick auf meine Konvertierungs-Exe macht das System für neue Eingaben scharf, einen Texteditor und einen Browser findet man auf jedem (Windows-)Rechner, an den ich den Stick stecken kann und auf dem das Konvertierungstool läuft. Eine Kopie einzelner Inhalte irgendwohin ins Netz kann man immer noch machen.
Mirja (Gast) - 12. Juli, 16:19

Freudlos

Freud hat immer mal wieder gerne sein Geschriebenes vernichtet. Wahrscheinlich hatte er Recht.

ostfriese - 13. Juli, 12:22

Beim Vernichten ...

... seiner Schriften war Freud bedauerlicherweise inkonsequent.^^

Manches, das ich vor Jahren getextet habe, treibt mir heute die Schamesröte ins Gesicht. Muss ich es deshalb löschen? Oder darf ich es nicht auch stehen lassen als Station meiner geistigen Entwicklung? ;-)
steppenhund - 13. Juli, 19:09

Mir reicht die Möglichkeit der Reproduzierung mit hilfe der xml-datei.
Allerdings bin ich zur Zeit im Urlaub und vielleicht widme ich mich diesem Problem, weil ich das immer schon einmal tun wollte.
Folgende Gedanken fallen mir aber zu deinem Text und den untenstehenden Kommentaren ein:
1) Wikis brauchen Server, allerdings gibt es welche, die ohne Datenbank ala MySQL auskommen.
2) Die Installation von Mediawiki nach vorheriger Installation von XAMPP dauert aber vielleicht eine Stunde. Wenn man sich mit XAMPP noch nicht auskennt, vielleicht drei bis vier Stunden, aber im Prinzip ist es selbst für einen Neuling, der Du ja nicht bist, sehr leicht zu schaffen.
2a) Das geht unter Windows genauso gut wie unter Linux. By Mac weiß ich es nicht, aber ich nehme an, dort gibt es auch eine Lösung.
3) Was Du über die Syntax von Wiki geschrieben hast, ist noch nicht die ganze Wahrheit. Bei den Tabellen benötigst Du noch "open" und "close"-Table Syntax.
Clouds könnte man sehr leicht mit "Categories" lösen.
4) Automatische Erstellung eines Inhaltserzeugnis ist vermutlich bereits eine Erweiterung zu Mediawiki, deren es viele gibt. Out of the box kenne ich es nicht.
5) Wir haben in der Firma Mediawiki mit pyMediaWiki aufgebohrt. Da kann man im Prinzip alles machen.
6) Das Programm als Prototyp für beliebige Zielsprachen konvertierung zu verwenden, würde mir nicht einfallen.
6a) Wenn Du MediaWiki-Inhalte als Pdf ausgeben willst, so gibt es dafür fertige Erweiterungen. Die basieren auf PHP, man muss aber nichts selbst programmieren.
6b) Ich selber würde das Problem mit Python angehen (vielleicht mache ich das auch) und einfach runter programmieren.
6b1) Auslesen eines Beitrags (einfach, ohne formatschnörksel)
6b2) Iterator (nextBeitrag) definieren. Anhand der Seiten "Beiträge verwalten", weil dort auch die offline-Beiträge erfasst sind.
6b3) Iterator (nextPage) definieren.
6b4) Transfer von Bildern angehen.
6b4a) Bilder download lokal
6b4b) Bilder upload entwender ins Wiki oder auf meinen Domainserver.
6c) Kommentare auslesen
6d) Kategorien auswerten
6e) (Schlagworte auswerten)
6f) was ich halt noch vergessen habe.
6g) Kategorie Datum einfügen
6f) Statistiken übertragen
7) Schauen was rauskommt:)
-
Genauso kann man aber vom fertigen xml-Export, den Twoday liefert, ausgehen.
Das xml zu parsen, ist nicht so schwer. Die Download-Adressen der Bilder können schon direkt ausgewertet werden.

-
Zu den Kommentaren:
Zu BestOf fühle ich mich auch manchmal verleitet. Wichtiger erscheint mir aber die beobachtbare Veränderung in meinen Texten und meinen Ansichten über die Jahre hinaus. Ich möchte fast sagen, dass dies eines der Hauptfeatures des Bloggens ist.
Also ...

Köppnick - 13. Juli, 19:29

Das Meiste habe ich in dem Kommentar an BL schon geschrieben. Hier vielleicht noch als Ergänzung: Ich speichere auch Bilder, PDF-Dokumente, Filmchen, OCR-Resultate, etc. Setzt man auf diese einen Link (z.B. in einem Wiki-Text, der "compiliert" wird), dann öffnet ein Klick im Browser das Dokument entweder durch Aufruf des entsprechenden Plugins oder des externen Viewers. In dem verlinkenden Hypertext kann man die Suchbegriffe und eine kurze Inhaltsangabe verfassen. Ich habe schon ein paar Dokumentenverwaltungsprogramme ausprobiert und hatte vor zwei oder drei Jahren auch einen virtuellen Server mit Drupal am Laufen, das hat mich letztendlich alles nicht befriedigt, weil diese Ein-Programm-Lösungen immer irgend etwas *nicht* können. Arbeitet man auf Dateiebene, hat man diese Schwierigkeiten nicht (dafür vielleicht andere).
bl (Gast) - 15. Juli, 09:25

"Wichtiger erscheint mir aber die beobachtbare Veränderung in meinen Texten und meinen Ansichten über die Jahre hinaus. Ich möchte fast sagen, dass dies eines der Hauptfeatures des Bloggens ist."

Ja und von jeder Art von Kommunikation, die sozusagen zur Selbsterkenntnis beitragen. Welches Mittel man dazu verwendet, ist sekundär und entspricht den individuellen Vorlieben. Die direkteste Kommunikation wäre, auf die eigenen aufsteigenden Emotionen zu hören...

Trackback URL:
http://kwakuananse.twoday.net/stories/5818187/modTrackback

Kommentare hier ...

Bitte mehr davon? Aus...
Bitte mehr davon? Aus meiner Sicht auf keinen Fall,...
Köppnick - 25. Dezember, 16:53
bitte mehr davon
Nimmersatt (Gast) - 25. Dezember, 15:33
lach.... ich bin im stern...
lach.... ich bin im stern *
rosmarin - 3. Dezember, 18:48
Oje, das mit der Halswirbelsäule...
Oje, das mit der Halswirbelsäule ist an mir vorbeigegangen. Das...
steppenhund - 2. Dezember, 11:07
Denk an meine Halswirbelsäule...
Denk an meine Halswirbelsäule und meinen schmerzenden...
Köppnick - 30. November, 22:22
Nanu, gar ken Kommentar?...
Nanu, gar ken Kommentar? :)))
steppenhund - 30. November, 20:45
Fachwörter und deren...
Die Autorin präferiert eine sehr restringierte...
Count Lecrin - 30. November, 19:53
passend zu diesen erkenntnissen:
mit 3 freust du dich, wenn du keine windeln brauchst. mit...
la-mamma - 30. November, 19:43
Ich möchte Ihnen...
Ich möchte Ihnen gehörig Respekt zollen,...
Count Lecrin - 30. November, 19:34
Mail geschickt.)
Mail geschickt.)
steppenhund - 28. November, 16:28
Nein, wir haben uns noch...
Nein, wir haben uns noch nicht bemailt. Meine Adresse...
Köppnick - 28. November, 15:46
Ich bilde mir ein, dass...
Ich bilde mir ein, dass wir schon Email-Kontakt hatten....
steppenhund - 28. November, 15:02