dia Forum-User

Anmeldungsdatum: 03.02.2008 Beiträge: 30 Wohnort: Wipperfürth (NRW)
|
Verfasst am: 28.02.2010, 09:29:11 Titel: [Demo source] Persönliches Wiki bauen |
|
|
Ich habe schon seit längerem nach einem Wiki gesucht, mit dem ich meine persönliche Dokumentation verwalten könnte. Mehrbenutzerfähigeit ist nicht nötig. Es sollte HTML-Code erzeugen können, um damit die Doku-Seiten in eine Webseite stellen zu können. Es sollte außerdem schlank, flexibel und schnell sein und ohne eine Datenbankanbindung auskommen.
Nach einigen Versuchen mit DokuWiki begegnete mir mit dem Github Wiki der Wiki-Dialekt Textile in der Version 2.0: http://textile.thresholdstate.com/
Textile ist sehr leistungsfähig und leicht zu erlernen, wird in Textpattern (Super CMS!) und Wordpress eingesetzt und erzeugt wohlgeformten HTML-Code. Das Textile PHP-Skript ist nur ca. 30 KB groß und frei verfügbar.
Warum Wordpress oder Textpattern bemühen, wenn man nur schnell Dokuseiten für sich persönlich schreiben möchte?
Da bietet sich Tcl als "glue language" förmlich an:
Verklebe ein Text-Widget als Eingabeeditor mit dem Textkonvertierer Textile und Firefox als Ausgabemedium und schon hast du, was du brauchst. Man kann sich auf bewährte und getestete Module (Textile, Firefox, Tk) stützen und Tcl (Tools command language) dient als Steuerungszentrale.
Gedacht, getan:
| Code: | package require Tk 8.5
# Text-Widget erzeugen
text .wiki
pack .wiki -fill both -expand 1
focus .wiki
# Die Kernzeilen
set wiki [.wiki get 1.0 "end - 1 char"]
exec php textile.php $wiki > textile.html
exec firefox "[pwd]/textile.html"
|
Das PHP-Skript textile.php ruft das Klassenmodul Textile.php auf, das von der oben genannten Webseite herunterladbar ist. Es holt sich den zu konvertierenden String von der Kommandozeile und gibt den konvertierten HTML-Text aus:
| Code: |
<?php
require_once('classTextile.php');
$textile = new Textile;
echo $textile->TextileThis($argv[1]);
// For untrusted user input, use TextileRestricted instead:
// echo $textile->TextileRestricted($in);
?>
|
Das war' schon.
Es gibt da noch einen Bug in PHP > 2.5.4, der durch einen Patch in Textile behoben werden kann:
http://blueskyworkshop.blogspot.com/2009/06/workaround-for-textile-20-php-52x-bug.html
Klar, man kann um diese paar Zeilen jetzt ein schönes Tk-GUI mit Fehlerroutinen entwickeln. Sollte Interesse bestehen, kann ich das ja mal posten, aber:
Tcl als flexibles Werkzeug hat sich wieder mal von seiner besten Seite gezeigt ... _________________ -----------------------------
Zenwalk 6.0
ActiveTCL/TK 8.5.8 |
|