Wir haben bereits festgestellt, dass es keinen Sinn macht, im JuraWiki ein Rechtslexikon zu schreiben (siehe KooperationMitJuraWiki). Mittels eines noch zu schreibenden Makros (HilfeZuMakros) könnten wir Wikipedia-Inhalte ins JuraWiki übernehmen. Das könnte z.B. wie folgt aussehen: Auf der Seite BundesVerfassungsGericht schreibt man in den Quelltext {{{ [[Wikipedia(Bundesverfassungsgericht)]] }}} Das Makro schlägt dann den betreffenden Artikel in Wikipedia nach und fügt den Titel und z.B. den ersten Absatz im JuraWiki ein. Das sähe dann etwa so aus: {{attachment:'WikipediaMakro.gif}} Ein paar grundlegende Überlegungen zur Programmierung haben wir bereits beim [[WikiTreffen/2004-06-02]] angestellt. Ich habe mal einen Prototypen gemacht, den man hier besichtigen kann: '''http://zosel.dyndns.org/testwiki/BundesVerfassungsGericht''' (!) Wikipedia.py {{{ #!python import urllib, re def execute(macro, args): url = "http://de.wikipedia.org/wiki/" + args urllib.URLopener.version ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" page = urllib.urlopen(url).read() regexp = re.compile(r"<p>(?P<text>.*)</p>", re.DOTALL) result = regexp.search(page) text = result.group("text") # Umschreiben der Links # text = re.sub ("(<a[^>]*href=[\"'])(?!http:\/\/|ftp:\/\/)", "\\1http://de.wikipedia.org", text) # Neue Version: # Links und Quellenangaben umbiegen server = "http://de.wikipedia.org/" reg_flags = re.DOTALL or re.DOTALL or re.MULTILINE regexp = re.compile ("(<\s*(img|a|form|script|link)[^>]*(src|href|action)\s*=\s*[\"']\s*)\/", reg_flags) text = regexp.sub ("\\1"+server, text) results = "<table align=\"right\" width=\"100\" border=\"0\" style=\"background-color:#FFDDDD;\"><tr><td><b>" + args + "</b> bei Wikipedia<br>"+text+"<br>... mehr bei <a href=\""+url+"\">Wikipedia</a></td></tr></table>" return results }}} Ich habe mal MoinMoin:macro/Wikipedia.py angelegt. Dort wurde der Code inzwischen schon weiter verbessert. Vielleicht findet sich ja noch jemand (der's kann), der das vervollständigt. Hier ein Test-Skript, das die Wikipedia-Hauptseite lädt und vor der Ausgabe Links und Quellenangaben ersetzt. Allerdings nur die Ziele mit absoluten Pfadangaben, d.h. die, die mit "/" beginnen. Relative Pfadangaben habe ich in den Wiki-Seiten nicht entdeckt, deshalb konnte die RegExp-Syntax etwas vereinfacht werden. {{{ #!/usr/bin/env python import urllib, re print "content-type: text/html\n" # Seitenquelltext laden url = "http://de.wikipedia.org/wiki/Hauptseite" urllib.URLopener.version ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" page = urllib.urlopen(url).read() if (page): # Links und Quellenangaben umbiegen server = "http://de.wikipedia.org/" reg_flags = re.DOTALL or re.DOTALL or re.MULTILINE regexp = re.compile ("(<\s*(img|a|form|script|link)[^>]*(src|href|action)\s*=\s*[\"']\s*)\/", reg_flags) page = regexp.sub ("\\1"+server, page) print page }}} = Noch zu klären = * Was passiert, wenn die Seite nicht aufrufbar ist? Timeout? ** Bitte verwendet Caching (auch um den Wikipedia-Server zu schonen). -- JakobVoss * Wie genau soll das zu generierende HTML aussehen? * Sollen im Text eventuell vorhandene Links umgeschrieben werden? :: Derzeit zeigt ein Link [[Befähigung]] in dem wikipedia-Text nicht auf die wikipedia, sondern intern ins wiki und meistens auf eine leere Seite. Das ist vermutlich unerwünscht -- ~~~~ * Gestattet die Wikipedia-Lizenz eine solche Übernahme? :: Der Verweis auf Wikipedia ist schon sehr gut, es könnte noch erwähnt werden, daß dieser Text unter der GNU FDL steht. --~~~~ Muss sogar. -- JakobVoss * ...