|
|
(17 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| Auf dieser Seite sollen alle möglichen Werkzeuge zusammengestellt werden, die das Erstellen von Seiten erleichtern oder ermöglichen. | | Auf dieser Seite sollen alle möglichen Werkzeuge zusammengestellt werden, die das Erstellen von Seiten erleichtern oder ermöglichen. |
|
| |
|
| ==Programme==
| | *Firefox-Addons |
| | | **[https://addons.mozilla.org/firefox/60/ WebDeveloper-Extensions], hervorragend geeignet, um in Echtzeit CSS-Styles zu verändern und zu Betrachten und damit um längen besser geeignet als einen eigenen Benutzerdefinierten Style auszuprobieren |
| ===Umwandlungsskript für [[Belohnungen für Abenteuer]]===
| | **:Einige Funktionen scheinen nicht zu funktionieren. Trotzdem noch nützlich. |
| Keiichi war so nett und hat eine Umwandlungsroutine entworfen, mit der einfach einzugebende Daten praktisch in eine Wiki-Tabelle umgewandelt werden können. Der Sourcecode liegt in Python vor.
| | **[https://addons.mozilla.org/firefox/1046/ Save Text Area] - den Inhalt einer Editbox als Datei abspeichern oder aus Datei laden |
| | | **[https://addons.mozilla.org/firefox/1662/ WeekEdit] - mit einem Kontextmenü in der Editbox Wikibefehle per Maus ermöglichen |
| <pre><nowiki>
| | **[https://addons.mozilla.org/firefox/744/ Wikipedia Lookup Extension] - lässt sich vielleicht an unser Wiki anpassen? |
| #!/usr/bin/python
| | *weiteres unter [[Wikipedia:de:Helferlein]] |
| # -*- coding: utf-8 -*-
| | *[[Hilfe:Bookmarklets]] - dynamische Lesezeichen |
| | | *[[Hilfe:Wiki-Search-Plugin für Firefox]] |
| u"""Ad hoc übersetzer für das Wiki Aventurica
| | *[[Hilfe:HTTP-Echtzeitmanipulation]] (möglicherweise veralteter Artikel) |
| ------------------------------------------
| |
| gedacht zur Übertragung der Daten von
| |
| [[Belohnungen für Abenteuer]] in eine Tabelle
| |
| | |
| von Keiichi
| |
| ----
| |
| In eine Klasse umgesetzt von Alrik"""
| |
| | |
| __version__='$Id: bel2tab.py,v 0.35 2005/05/10 09:40:00 Keiichi Exp $'
| |
| | |
| import re, Tkinter
| |
| from tkFileDialog import *
| |
| from tkSimpleDialog import *
| |
| | |
| class Belohnung2Wikitabelle:
| |
| u"""Eine Ad-hoc-Übersetzerklasse, um einfacher zu editierende Daten
| |
| in eine Wiki-Tabelle umzuformen"""
| |
| | |
| def __init__(self, meister=None):
| |
| pass
| |
|
| |
| # Einzelteile in Wiki-Tabellenzeile übertragen
| |
| def __towiki(self, p1, p2, p3, p4, p5, design):
| |
| if design==1:
| |
| return u' |'+p1+'\n |'+p2+'\n |'+p3+'\n |'+p4+'\n |'+p5+'\n |-\n'
| |
| else:
| |
| return u'|'+p1+' ||'+p2+' ||'+p3+' ||'+p4+' ||'+p5+'\n|-\n'
| |
| | |
| # Das eigentliche Programm
| |
| def text2tab(self, text, design):
| |
| outstring = u"""{{Achtung|Text=<center>Die Daten auf dieser Seite werden automatisch erzeugt.</center><br/>
| |
| Bitte hier keine Änderungen durchführen, sondern stattdessen auf der Seite: [[Belohnungen für Abenteuer]]. Danke!}}\n\n"""
| |
| | |
| # Tabellenanfang
| |
| if design==1:
| |
| outstring+=u'{| border=1\n !Abenteuer\n !Abenteuerpunkte\n !Geld\n !Erfahrung\n !Sonstiges\n |-\n'
| |
| else:
| |
| outstring+=u'{| border=1\n!Abenteuer !!Abenteuerpunkte !!Geld !!Erfahrung !!Sonstiges\n |-\n'
| |
| | |
| ## Regelwerk, also eine Schablone herstellen, die dann auf den gesamten Text angewandt wird
| |
| ## damit sind dann alle Textbestandteile dazwischen ausgeblendet
| |
|
| |
| # head variante 1, z.B. [[Der Inquisitor|E4 Der Inquisitor]]
| |
| head1 = ('^\[\[.+\|(.+)\]\]')
| |
| | |
| # head variante 2, z.B. [[Rückkehr der Finsternis]] 7GI.1 - [[Alptraum ohne Ende, 7GI]]
| |
| head2 = ('^\[\[.+\]\].+\[\[(.+)\]\]')
| |
| | |
| # Sind für beide Heads gleich
| |
| rule2 = ('^\*Abenteuerpunkte:(.+)')
| |
| rule3 = ('^\*Geld:(.+)')
| |
| rule4 = ('^\*Erfahrung:(.+)')
| |
| rule5 = ('^\*Sonstiges \(Waffen/Artefakte/etc\.\):(.+)')
| |
| | |
| # Mit dieser Regel kommen die Regexps besser mit dem Wikilayout klar. Matcht entweder ein Newline oder alles mögliche bis zum nächsten Match
| |
| flexrule = '(?:\n*?|[\s\S]*?)'
| |
| | |
| # komplette Regel zusammenbauen
| |
| crule1 = head1+flexrule+rule2+flexrule+rule3+flexrule+rule4+flexrule+rule5
| |
| crule2 = head2+flexrule+rule2+flexrule+rule3+flexrule+rule4+flexrule+rule5
| |
| crule = (crule1+'|'+crule2)
| |
| | |
| # Regel compilieren und im text matchen, Problem: siehe oben
| |
| p = re.compile(crule,re.MULTILINE)
| |
| x = p.findall(text)
| |
|
| |
|
| # Fallunterscheidung für beide Heads.
| | ==TeX Environment== |
| for i in x:
| |
| if i[0]=='': outstring=outstring+self.__towiki(i[5],i[6],i[7],i[8],i[9], design)
| |
| else: outstring=outstring+self.__towiki(i[0],i[1],i[2],i[3],i[4], design)
| |
| | |
| #tabellenende
| |
| if design==1: outstring+=u' '
| |
| outstring+=u'|}\n\n[[Kategorie:Listen]]'
| |
| | |
| return outstring
| |
| | |
| | |
| #zum Testen:
| |
| if __name__=="__main__":
| |
| fenster=Tkinter.Tk()
| |
| | |
| design=askinteger(u"Design",u"""Wie soll das Design aussehen?
| |
| Tabellenspalten zeilenweise darstellen (=1) oder
| |
| alle Spalten in jeweils einer Zeile (=sonstige Zahl) ?""")
| |
| quelldatei=u"Belohnung für Abenteuer.wiki.txt"
| |
| quelldatei = askopenfilename(defaultextension='*.txt', filetypes=[('Alle Dateien','*.*'),
| |
| ('Textdateien','*.txt'),('Wikidateien','*.wiki.txt')],
| |
| initialfile=quelldatei)
| |
| zieldatei=u'Belohnung für Abenteuer(Tabelle).wiki.txt'
| |
|
| |
| try: t=open(quelldatei,'r')
| |
| except IOError: print u"Dateifehler, die Datei '%s' gibts vermutlich nicht. ->Abbruch" % quelldatei
| |
| else:
| |
| txt = t.read()
| |
| t.close()
| |
| b2t = Belohnung2Wikitabelle()
| |
| try: vvv = b2t.text2tab(txt,design)
| |
| except UnicodeDecodeError: ##ohne Fehlerabfrage hängt das Tk-Fenster abgestürzt herum
| |
| print "Fehler: UnicodeDecodeError aufgetreten! Es wird CP1252 probiert..."
| |
| txt=txt.decode("CP1252")
| |
| try: vvv = b2t.text2tab(txt,design)
| |
| except UnicodeDecodeError: ##ohne Fehlerabfrage hängt das Tk-Fenster abgestürzt herum
| |
| print "Fehler: UnicodeDecodeError aufgetreten! Es wird CP1252 probiert..."
| |
| else:
| |
| print vvv
| |
| zieldatei = asksaveasfile(defaultextension='*.txt', filetypes=[('Alle Dateien','*.*'),
| |
| ('Textdateien','*.txt'),('Wikidateien','*.wiki.txt')],
| |
| initialfile=zieldatei).name
| |
| try: t=open(zieldatei,'w')
| |
| except IOError:
| |
| print u"Fehler: '%s' konnte nicht zum Schreiben geöffnet werden. ->Abbruch" % zieldatei
| |
| else:
| |
| t.write(vvv)
| |
| t.flush()
| |
| t.close()
| |
| fenster.destroy()
| |
| </nowiki></pre>
| |
| | |
| ===Robotskripten===
| |
| Siehe [[Wiki Aventurica:Robots]]
| |
| | |
| ===TeX Environment===
| |
| Für Leute die TeX verwenden, ein Paar Hilfen, die einem Dokument das Aussehen eines DSA-Abenteuers verschaffen. Noch nicht perfekt, aber immerhin ein Anfang. | | Für Leute die TeX verwenden, ein Paar Hilfen, die einem Dokument das Aussehen eines DSA-Abenteuers verschaffen. Noch nicht perfekt, aber immerhin ein Anfang. |
| <pre><nowiki> | | <pre><nowiki> |
Zeile 175: |
Zeile 54: |
| </nowiki></pre> | | </nowiki></pre> |
|
| |
|
| ==Geeignete Browser==
| | [[Kategorie:Hilfe für Leser]] |
| *[http://www.mozilla.org FireFox oder Mozilla]
| |
| * jeder andere Browser, der CSS beherrscht (sonst werden manche Informationen überhaupt nicht angezeigt)
| |
| | |
| ===Browser-Addons===
| |
| *[http://chrispederick.com/work/firefox/webdeveloper/ WebDeveloper-Extensions], hervorragend geeignet, um in Echtzeit CSS-Styles zu verändern und zu Betrachten und damit um längen besser geeignet als einen eigenen Benutzerdefinierten Style auszuprobieren
| |
| ::Leider scheinen die Extensions nur beim FireFox zu funktionieren. Bei Mozilla (1.8b1) ist "Edit CSS" nicht möglich.
| |
| *[http://wikipedia.mozdev.org/ Wikipedia-Toolbar] als Addon für FireFox, erleichtert das Editieren von Wikiseiten im Webbrowser
| |
| *weiteres unter [[Wikipedia:de:Helferlein]]
| |
| | |
| ===HTTP-Echtzeitmanipulation===
| |
| Mit Hilfe von einem Filter-Proxy kann man Seiten in Echtzeit manipulieren. Sehr schön geeignet, wenn auch nicht ganz einfach zu bedienen ist der ProxoMitron, zu dem es noch dazu eine aktuell gehaltene Filterdatenbank von einer deutschen Supportseite gibt: [http://www.buerschgens.de/Prox/index.html Deutsche ProxoMitron-Website]. Um es kurz gefasst zu sagen: Man startet den ProxoMitron, gibt ihn ggf. auf der Firewall HTTP-Zugriff (TCP:80,8080,20,21,443, UDP:53). Dann wird in jedem Programm, das in den Nutzen der Filterfunktionen kommen soll (Werbung ausfiltern, JavaScript-Spionage entschärfen, die unteren Filter nutzen) der Proxy auf dem lokalen Port "localhost:8080" eingestellt (ggf. Firewall anpassen). Nun kann normal weitergesurft werden, wobei alle Webdaten erst durch den Filter gejagt, entsprechend mannigfaltig (in Echtzeit !) manipuliert und dann erst (mit allen Verädnerungen) angezeigt werden.
| |
| | |
| Hier jetzt 2 Filter, um den Sysops ein wenig unter die Arme zu greifen.
| |
| *Der erste Filter setzt hinter jeden Link, der normalerweise einen Benutzerlink anzeigt 2 weitere Links in Klammer '''(B, ?)'''. Der eine führt zur Benutzerdiskussionsseite, der andere zeigt die Benutzerbeiträge an. Natürlich bietet sich hier das Tabbing-System von Mozilla/Firefox an, d.h. immer mit der mittleren Maustaste anklicken, dann später die Tabs durchgehen.
| |
| *Der zweite Filter erzeugt hinter jedem Benutzernamen der nur aus einer IP-Adresse besteht (!) einen Link namens '''<font color="green">LUp</font>''', der zu einer DNS-Auflösungsseite (exyst.de) führt. So kann man mit einem Klick sofort sehen, wo der gute Beitragende herkommt. Auch hier mit mittlerer Maustaste unter Mozilla/Firefox das Tabbing ausnutzen.
| |
| | |
| '''Anleitung:'''Einfach mit der Maus inkl. Patterns alles markieren, ins Clipboard kopieren STRG+Einf, dann im ProxoMitron-Webfilter-Dialog mit rechter Maustaste Filter importieren):
| |
| <pre>
| |
| <nowiki>
| |
| [Patterns]
| |
| Name = "{wiki} Benutzer mit Beiträgen+Diskussion"
| |
| Active = TRUE
| |
| Multi = TRUE
| |
| URL = "dsa4.de/wiki/index.php\?title\="
| |
| Bounds = "$NEST(<a\s,</a>)"
| |
| Limit = 500
| |
| Match = "(<a href=(\"|\')/wiki/index.php\?title=Benutzer:([^&]++)\1"
| |
| "( (\&action=edit|)(\"|\') (class="new"|))\2 "
| |
| "title=(\"|\')Benutzer:[^>]++>[^<]++</a> "
| |
| "(\( <a href=[^<]++</a> \)|)"
| |
| ")\0"
| |
| Replace = "\0 (<a href="/wiki/index.php?title=Spezial:Contributions&target=\1"\2"
| |
| "title="Benutzerbeiträge von \1">B</a>, "
| |
| "<a href="/wiki/index.php?title=Benutzer_Diskussion:\1" "
| |
| "title="Diskussion zu \1">?</a>) </li>"
| |
| | |
| Name = "{wiki} Wiki IPs mit Lookup versehen"
| |
| Active = TRUE
| |
| URL = "dsa4.de/wiki"
| |
| Bounds = "$NEST(<a\shref="/wiki/index.php\?title=*",</a>)"
| |
| Limit = 500
| |
| Match = "(<a\shref\="/wiki/index.php\?title="
| |
| "(Benutzer:|Spezial:Contributions\&(amp;|)target\=)"
| |
| "([0-9]++.[0-9]++.[0-9]++.[0-9]+)\1[^>]++(class="new"|) "
| |
| "title=[^>]++>"
| |
| "[^>]++</a>)\0"
| |
| Replace = "<small><a href="http://www.exyst.de/hostname.php?inp_name=&inp_ip=\1">"
| |
| "<font color="green">LUp</font><a/></small>\0"
| |
| </nowiki>
| |
| </pre>
| |
| | |
| Das ganze kann natürlich noch zu zahlreichen anderen Spielereien ausgebaut werden. Man könnte z.B. Teile der Homepage umbauen, das Navigationsmenü ergänzen bzw. verändern, etc.
| |
| | |
| Ich hatte z.B. ein neues Favicon http://dsa4.de/wiki/images/4/43/Favicon2.gif vorgeschlagen. Bisher kam aber keine Reaktion von Seiten der Sysops. Nun lasse ich es mir eben (durch den Filter verändert) selbst anzeigen, ätsch! Soll nur ein kleines Beispiel sein, was man sonst noch so damit basteln kann, alles nämlich ^^
| |
| <pre>
| |
| <nowiki>
| |
| [Patterns]
| |
| Name = "{wiki} Anderes Favicon statt dsa4.de-Icon anzeigen"
| |
| Active = TRUE
| |
| Multi = TRUE
| |
| URL = "dsa4.de/wiki"
| |
| Bounds = "<link[^>]++/>"
| |
| Limit = 80
| |
| Match = "<link rel="shortcut icon" href="/favicon.ico" />"
| |
| Replace = "<link rel="shortcut icon" href="http://dsa4.de/wiki/images/4/43/Favicon2.gif" />"
| |
| </nowiki>
| |
| </pre>
| |
| [[Kategorie:Wikiverwaltung]] [[Kategorie:Programmieren]]
| |