## Please edit system and help pages ONLY in the moinmaster wiki! For more ## information, please see MoinMaster:MoinPagesEditorGroup. ##master-page:HelpOnParsers ##master-date:2004-12-02 09:00:00 #acl MoinPagesEditorGroup:read,write,delete,revert All:read #format wiki #language de [[TableOfContents]] = Parser = Ein Parser interpretiert den rohen Text einer Seite um daraus --über eine Serie von Aufrufen des Formatierers-- die Ausgabe zu erzeugen, die der Benutzer wünscht. Meist ist dies HTML. MoinMoin hat zwei unterschiedliche Wege, um den verwendeten Parser zu wählen: einerseits die {{{#FORMAT}}} Verarbeitungsanweisungen (siehe HilfeZuVerarbeitungsAnweisungen), andererseits sogenannte vorformatierte Bereiche (siehe HilfeZumEditieren). Eine {{{#FORMAT}}} Verarbeitungsanweisung teilt MoinMoin mit, welchen Parser es für die gesamte Seite verwenden soll. Voreingestellt ist der ''wiki'' parser. Beispiel: {{{#FORMAT cplusplus ... C++ Quelltext ... }}} Mit der Hilfe von vorformatierten Bereichen (Quelltextanzeige) ist es möglich einen Parser nur auf einen Teil einer Seite anzuwenden (früher war dies mit sogenannten Prozessoren möglich). Mit Hilfe eines Hash-Bang `#!` in der ersten Zeile der Region wird der Parser gewählt. Ein Hash-Bang Pfad in Shell-Skripten dient genau dem selben zweck: er wählt den Interpreter mit dem das Skript interpretiert werden soll. Beispiel: {{{ { { {#!CSV a,b,c d,e,f } } } }}} Lesen Sie auch HilfeZumFormatieren für mehr Informationen zum editieren von Seiten. == ParserBase == !ParserBase stellt eine Basisklasse für Parser die Quelltext einfärben da, welche sehr einfach erweitert werden kann. Der HTML Formatierer stellt diese mit optional ein- und ausschaltbaren Zeilennummern da, wenn der Browser des Betrachters DOM und !JavaScript unterstützt. Ein !ParserBase Einfärbeparser versteht die folgenden Argumente zu einer `#FORMAT` Verarbeitungsanweisung oder einer Hash-Bang Zeile. Diese werden einfach, durch Leerzeichen getrennt, hinter dem Namen des Parsers angegeben (`#FORMAT python start=10 step=10 numbering=on` oder `#!python numbering=off`). numbers:: sollen Zeilennummern angezeigt werden? Der Standard ist 'on'. Mögliche Werte: 'on', 'off' (keine Zeilennummern, aber !JavaScript falls möglich), 'disable' (überhauptkeine Zeilennummern) start:: Startzeilennummer (Standard: 1) step:: Inkrement der Zeilennummer (Standard: 1) MoinMoin hat eine Hand voll Beispiel Quelltexteinfärbe Parser: === cplusplus === {{{#!cplusplus int main(int argc, char **argv) { return 0; } }}} === java === {{{#!java import java.util.Date; import java.util.Calendar; public class IntDate { public static Date getDate(String year, String month, String day) { // Date(int, int, int) has been deprecated, so use Calendar to // set the year, month, and day. Calendar c = Calendar.getInstance(); // Convert each argument to int. c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day)); return c.getTime(); } } }}} === pascal === {{{#!pascal function TRegEx.Match(const s:string):boolean; var l,i : integer; begin result := MatchPos(s,l,i); end; }}} == python == Färbt Python Code ein. Dieser Parser ist nicht von !ParserBase abgeleitet, stellt aber die selben Argumente zur Verfügung: {{{#!python def hello(): print "Hello World!" }}} [[Anchor(csvparser)]] == CSV == Der CSV-Prozessor arbeitet mit sogenannten kommaseparierten Werten, wobei das Komma heutzutage üblicherweise ein Semikolon ist. Es wird davon ausgegangen, dass die erste Zeile die Titel der Spalten enthält; diese werden fett dargestellt. Wenn man keinen Tabellenkopf benötigt, kann man die erste Zeile leer lassen. Der bang path kann ein oder mehrere "-index" Argumente enthalten, um die Darstellung bestimmter Spalten in der Ausgabe zu unterdrücken; die Spalten werden beginnend von 1 indiziert. /!\ Der aktuelle CSV-Parser ist sehr schlicht. MoinMoin Versionshistorie: {{{#!CSV -3 Version;Date;HIDDEN! 0.11;2002-03-11;Revision 1.151 0.10;2001-10-28;Revision 1.134 0.9;2001-05-07; 0.8;2001-01-23; 0.7;2000-12-06; 0.6;2000-12-04; 0.5;2000-11-17; 0.4;2000-11-01; 0.3;2000-10-25; 0.2;2000-08-26; 0.1;2000-07-29; }}} == reStructuredText == siehe /ReStructuredText === Links === * [http://docutils.sourceforge.net/docs/user/rst/quickref.html Quick reStructuredText] - als der ''reStructuredText Spickzettel'' bekannt * [http://docutils.sourceforge.net/ Die Docutils Homepage]