## Please edit system and help pages ONLY in the master wiki! ## For more information, please see MoinMoin:MoinDev/Translation. ##master-page:HelpOnParsers ##master-date:2007-12-09 01:11:51 #acl -All:write Default #format wiki #language de <> = 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: 1. die {{{#FORMAT}}}-Verarbeitungsanweisungen (siehe HilfeZuVerarbeitungsAnweisungen) 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 ... }}} 1. sogenannte vorformatierte Bereiche (siehe HilfeZumEditieren) 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. Zum Beispiel: {{{{ {{{#!CSV , a,b,c d,e,f }}} }}}} erzeugt die Tabelle: {{{#!CSV , a,b,c d,e,f }}} (!) Bitte beachten Sie, dass es 2 Methoden gibt, ''Verschachtelungs-Probleme'' mit `}}}` zu lösen: * Benutzen Sie mehr als 3 geschweifte Klammern, um einen Parser-Abschnitt anzufangen bzw. zu beenden (das, was Sie benutzen, darf nicht in dem Parser-Abschnitt enthalten sein). Z.B.: {{{{{ {{{{ {{{ ... }}} }}}} }}}}} * Benutzen Sie 3 geschweifte Klammern + eine einzigartige Zeichenkette: {{{{ {{{asdfghj {{{ ... }}} asdfghj}}} }}}} 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 numbers=on` oder `#!python numbers=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 einige Quelltext-Einfärbe-Parser: == 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!" }}} {{{#!python numbers=off def hello(): print "Hello World!" }}} {{{#!python numbers=disable def hello(): print "Hello World!" }}} === 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; }}} <> == CSV == Der CSV-Parser 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. Ein Argument, das nicht mit `-` anfängt, bestimmt den Separator - z.B. Kommata (`,`) statt of Semicolons (`;`). Wenn Sie keinen Separator angeben, wird `;` benutzt. /!\ Der aktuelle CSV-Parser ist sehr schlicht. Beispiel-Tabellen (bitte schauen Sie in den Quelltext dieser Seite, um das benutzte Markup zu sehen): !MoinMoin 1.3 - Ausschnitt aus der Patch-Historie: {{{#!CSV , -4 patch-366,make _normalize_text public method,Nir Soffer,2004-11-30 19:11:51 GMT patch-367,fixed failing test wikiutil: good system page names,Nir Soffer,2004-11-30 19:15:52 GMT patch-368,Fixed DeprecationWarning in RandomPage.py and an unused import in twistedmoin.py,Alexander Schremmer,2004-11-30 22:58:44 GMT patch-369,remove duplicate code in formatter.base,Thomas Waldmann,2004-12-01 00:14:21 GMT patch-370,fixed long int in mig3,Thomas Waldmann,2004-12-01 01:51:50 GMT patch-371,fixed unicode error on eventlog,Nir Soffer,2004-12-01 14:46:29 GMT patch-372,fixed util.web.makeQueryString and Page.url,Nir Soffer,2004-12-01 15:48:55 GMT patch-373,fixed again non ascii http_referer,Nir Soffer,2004-12-01 18:55:28 GMT patch-374,CSV.py supports different separators now,Alexander Schremmer,2004-12-01 23:46:17 GMT patch-375,improved searchform behavior on Mozilla/Firefox,Nir Soffer,2004-12-02 04:57:06 GMT patch-376,More correct script for actions menu init,Nir Soffer,2004-12-02 05:07:58 GMT }}} 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 == XML/XSLT/DocBook == siehe HilfeZuXmlSeiten. == Zusätzliche Parser == Für viele weitere Parser und eine Installations-Anleitung siehe MoinMoin:ParserMarket.