HilfeInhalt > HilfeFürBenutzer > HilfeZumEditieren > HilfeZuParsern
Parser
Neben der voreingestellten MoinMoin-Wiki-Auszeichnungssprache (Markup), erlauben verschiedene Parser (Syntaxanalysatoren) dem Benutzer, Inhalt in eine Seite oder einen Bereich einer Seite einzufügen, der anders interpretiert wird.
Zusätzlich zu den mitgelieferten Parsern finden Sie weitere unter ParserMarket..
Contents
Wie Parser angewendet werden
Parser lesen einen Teil des Textes, analysieren ihn und erzeugen daraus einige speziell formatierte Ausgaben. Sie können bei Parsern zwischen zwei verschiedenen Techniken wählen:
Die #format-Verarbeitungsanweisung
Eine #format-Verarbeitungsanweisung kann genutzt werden, um MoinMoin mitzuteilen, welchen Parser es für den gesamte Seiteninhalt verwenden soll. Voreingestellt ist der wiki-Parser (für Moin Wiki Markup). Für Details siehe: Die #format Verarbeitungsanweisung
Einen Parser-Bereich - siehe HilfeZumFormatieren
- Mit der Nutzung von Parser-Bereichen, kann ein Parser auf lediglich einen Teil einer Seite angewendet werden. Sie geben an, welchen Parser Sie aufrufen, in dem Sie eine Shebang-ähnliche Konstruktion in der ersten Zeile nutzen. Ein Shebang in Shell-Skripten dient genau dem selben Zweck: Die erste Zeile teilt der Shell mit, welches Programm gestartet werden soll, um die verbleibenden Zeilen des Skriptes zu verarbeiten.
0.1. Beispiel: Verarbeitungsanweisung
Dies ist der komplette Seiteninhalt:
#format creole ... **fett** ...
0.2. Beispiel: Parser-Bereich
Dies ist ein Teil einer Wiki-Seite:
{{{#!csv , a,b,c d,e,f }}}
Es wird so dargestellt:
0.3. Parser-Bereiche und Verschachtelung
Bitte beachten Sie, dass es zwei Methoden gibt, Verschachtelungs-Probleme mit }}} zu lösen:
- Benutzen Sie mehr als drei 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 drei geschweifte Klammern + eine einzigartige Zeichenkette:
{{{asdfghj {{{ ... }}} asdfghj}}}
Für weitere Informationen zum Editieren von Seiten lesen Sie bitte HilfeZumEditieren.
1. Parser, um Textinhalte zu schreiben
Einige Parser sind dazu gedacht, normale Seiteninhalte zu schreiben (wie z.B. ein Dokument):
wiki - der normale Moin-Wiki Parser, siehe HilfeZurMoinWikiSyntax
creole - der Creole-Wiki Parser, siehe HelpOnCreoleSyntax
ReST (reStructuredText) - siehe /ReStructuredText
XML/XSLT/DocBook - siehe HilfeZuXmlSeiten
2. CSV
Der CSV-Parser verarbeitet sogenannte kommaseparierte Werte - das "Komma" ist allerdings mittlerweile meist ein Semikolon und auch so voreingestellt.
Die erste Zeile enthält erwartungsgemäß Spaltentitel, die in fett dargestellt werden. Wenn Sie also keine Tabellen-Köpfe haben wollen, lassen Sie die erste Zeile frei.
Der Shebang kann folgende Argumente enthalten:
delimiter oder separator: delimiter=, wird den Feldtrenner auf Komma setzen
quotechar: quotechar=" wird die Quotierung mit dem doppelten Anführungszeichen erlauben
show: kommaseparierte Liste von Spalten, die ausschliesslich angezeigt werden sollen
hide: kommaseparierte Liste von Spalten, die verborgen werden sollen
autofilter: kommaseparierte Liste von Spalten, in denen Auto-Filter gelten sollen
name: Name eines Datensatzes
link: kommaseparierte Liste von Spalten, die http://beispiel.de/link Beschreibungstext enthalten statt nur Text
static_cols, static_vals: Spalten (und respektive Werte), die jedem Eintrag hinzugefügt werden
-N (wobei N eine Nummer ist): verberge Spalte N (nützlich, wenn Spaltennamen ausgelassen werden)
Der Parser unterstützt auch die alte, nicht empfohlene Syntax für den Shebang.
Beispiel-Tabellen (bitte betrachten Sie die Rohform der Seite, um das verwendete Markup zu sehen):
MoinMoin 1.3 - clipping der Patch History:
MoinMoin Version History:
3. diff, cplusplus, python, java, pascal, irc/irssi parsers
Diese Parser wurden von MoinMoin-Versionen < 1.9 verwendet und waren eine moin-spezische Parser-Implementierung für Syntax-Hervorhebung. Seit MoinMoin 1.9 sind diese Parser nur noch Abkürzungen, um den highlight-Parser aufzurufen.
4. Der highlight-Parser
MoinMoin kommt mit einem speziellen highlight-Parser, der intern auf Pygments basiert.
Sie können ihn verwenden, um viele verschiedene Arten von Programm-Quelltext, Konfigurationsdateien und andere Textdateien hervorzuheben, die auf ihrem Computer benutzt werden.
Nutzung:
{{{#!highlight python class FooBar: """ doc string """ }}}
Wird dargestellt als:
Natürlich können Sie es auch für eine ganze Seite verwenden mit der #format highlight ... Verarbeitungsanweisung.
4.1. Verfügbare highlight-Lexer
Verwenden Sie den Lexer-Namen als Argument für den highlight-Parser:
Lexer description | Lexer names | File patterns | Mimetypes |
ABAP | abap | *.abap | text/x-abap |
ActionScript | as, actionscript | *.as | application/x-actionscript, text/x-actionscript, text/actionscript |
ActionScript 3 | as3, actionscript3 | *.as | application/x-actionscript, text/x-actionscript, text/actionscript |
Ada | ada, ada95ada2005 | *.adb, *.ads, *.ada | text/x-ada |
ANTLR | antlr | ||
ANTLR With ActionScript Target | antlr-as, antlr-actionscript | *.G, *.g | |
ANTLR With C# Target | antlr-csharp, antlr-c# | *.G, *.g | |
ANTLR With CPP Target | antlr-cpp | *.G, *.g | |
ANTLR With Java Target | antlr-java | *.G, *.g | |
ANTLR With ObjectiveC Target | antlr-objc | *.G, *.g | |
ANTLR With Perl Target | antlr-perl | *.G, *.g | |
ANTLR With Python Target | antlr-python | *.G, *.g | |
ANTLR With Ruby Target | antlr-ruby, antlr-rb | *.G, *.g | |
ApacheConf | apacheconf, aconf, apache | .htaccess, apache.conf, apache2.conf | text/x-apacheconf |
AppleScript | applescript | *.applescript | |
aspx-cs | aspx-cs | *.aspx, *.asax, *.ascx, *.ashx, *.asmx, *.axd | |
aspx-vb | aspx-vb | *.aspx, *.asax, *.ascx, *.ashx, *.asmx, *.axd | |
Asymptote | asy, asymptote | *.asy | text/x-asymptote |
Bash | bash, sh, ksh | *.sh, *.ksh, *.bash, *.ebuild, *.eclass | application/x-sh, application/x-shellscript |
Bash Session | console | *.sh-session | application/x-shell-session |
Batchfile | bat | *.bat, *.cmd | application/x-dos-batch |
BBCode | bbcode | text/x-bbcode | |
Befunge | befunge | *.befunge | application/x-befunge |
Boo | boo | *.boo | text/x-boo |
Brainfuck | brainfuck, bf | *.bf, *.b | application/x-brainfuck |
C | c | *.c, *.h | text/x-chdr, text/x-csrc |
C# | csharp, c# | *.cs | text/x-csharp |
C++ | cpp, c++ | *.cpp, *.hpp, *.c++, *.h++, *.cc, *.hh, *.cxx, *.hxx | text/x-c++hdr, text/x-c++src |
c-objdump | c-objdump | *.c-objdump | text/x-c-objdump |
cfstatement | cfs | ||
Cheetah | cheetah, spitfire | *.tmpl, *.spt | application/x-cheetah, application/x-spitfire |
Clojure | clojure, clj | *.clj | text/x-clojure, application/x-clojure |
CMake | cmake | *.cmake | text/x-cmake |
CoffeeScript | coffee-script, coffeescript | *.coffee | text/coffeescript |
Coldufsion HTML | cfm | *.cfm, *.cfml, *.cfc | application/x-coldfusion |
Common Lisp | common-lisp, cl | *.cl, *.lisp, *.el | text/x-common-lisp |
cpp-objdump | cpp-objdump, c++-objdumb, cxx-objdump | *.cpp-objdump, *.c++-objdump, *.cxx-objdump | text/x-cpp-objdump |
CSS | css | *.css | text/css |
CSS+Django/Jinja | css+django, css+jinja | text/css+django, text/css+jinja | |
CSS+Genshi Text | css+genshitext, css+genshi | text/css+genshi | |
CSS+Mako | css+mako | text/css+mako | |
CSS+Myghty | css+myghty | text/css+myghty | |
CSS+PHP | css+php | text/css+php | |
CSS+Ruby | css+erb, css+ruby | text/css+ruby | |
CSS+Smarty | css+smarty | text/css+smarty | |
Cython | cython, pyx | *.pyx, *.pxd, *.pxi | text/x-cython, application/x-cython |
D | d | *.d, *.di | text/x-dsrc |
d-objdump | d-objdump | *.d-objdump | text/x-d-objdump |
Darcs Patch | dpatch | *.dpatch, *.darcspatch | |
Debian Control file | control | control | |
Debian Sourcelist | sourceslist, sources.list | sources.list | |
Delphi | delphi, pas, pascal, objectpascal | *.pas | text/x-pascal |
Diff | diff, udiff | *.diff, *.patch | text/x-diff, text/x-patch |
Django/Jinja | django, jinja | application/x-django-templating, application/x-jinja | |
Dylan | dylan | *.dylan | text/x-dylan |
Embedded Ragel | ragel-em | *.rl | |
ERB | erb | application/x-ruby-templating | |
Erlang | erlang | *.erl, *.hrl | text/x-erlang |
Erlang erl session | erl | *.erl-sh | text/x-erl-shellsession |
Evoque | evoque | *.evoque | application/x-evoque |
Felix | felix, flx | *.flx, *.flxh | text/x-felix |
Fortran | fortran | *.f, *.f90 | text/x-fortran |
GAS | gas | *.s, *.S | text/x-gas |
Genshi | genshi, kid, xml+genshi, xml+kid | *.kid | application/x-genshi, application/x-kid |
Genshi Text | genshitext | application/x-genshi-text, text/x-genshi | |
Gettext Catalog | pot, po | *.pot, *.po | application/x-gettext, text/x-gettext, text/gettext |
Gherkin | Cucumber, cucumber, Gherkin, gherkin | *.feature | text/x-gherkin |
GLSL | glsl | *.vert, *.frag, *.geo | text/x-glslsrc |
Gnuplot | gnuplot | *.plot, *.plt | text/x-gnuplot |
Go | go | *.go | text/x-gosrc |
Groff | groff, nroff, man | *.[1234567], *.man | application/x-troff, text/troff |
Haml | haml, HAML | *.haml | text/x-haml |
Haskell | haskell, hs | *.hs | text/x-haskell |
haXe | hx, haXe | *.hx | text/haxe |
HTML | html | *.html, *.htm, *.xhtml, *.xslt | text/html, application/xhtml+xml |
HTML+Cheetah | html+cheetah, html+spitfire | text/html+cheetah, text/html+spitfire | |
HTML+Django/Jinja | html+django, html+jinja | text/html+django, text/html+jinja | |
HTML+Evoque | html+evoque | *.html | text/html+evoque |
HTML+Genshi | html+genshi, html+kid | text/html+genshi | |
HTML+Mako | html+mako | text/html+mako | |
HTML+Myghty | html+myghty | text/html+myghty | |
HTML+PHP | html+php | *.phtml | application/x-php, application/x-httpd-php, application/x-httpd-php3, application/x-httpd-php4, application/x-httpd-php5 |
HTML+Smarty | html+smarty | text/html+smarty | |
INI | ini, cfg | *.ini, *.cfg, *.properties | text/x-ini |
Io | io | *.io | text/x-iosrc |
IRC logs | irc | *.weechatlog | text/x-irclog |
Java | java | *.java | text/x-java |
Java Server Page | jsp | *.jsp | application/x-jsp |
JavaScript | js, javascript | *.js | application/x-javascript, text/x-javascript, text/javascript |
JavaScript+Cheetah | js+cheetah, javascript+cheetah, js+spitfire, javascript+spitfire | application/x-javascript+cheetah, text/x-javascript+cheetah, text/javascript+cheetah, application/x-javascript+spitfire, text/x-javascript+spitfire, text/javascript+spitfire | |
JavaScript+Django/Jinja | js+django, javascript+django, js+jinja, javascript+jinja | application/x-javascript+django, application/x-javascript+jinja, text/x-javascript+django, text/x-javascript+jinja, text/javascript+django, text/javascript+jinja | |
JavaScript+Genshi Text | js+genshitext, js+genshi, javascript+genshitext, javascript+genshi | application/x-javascript+genshi, text/x-javascript+genshi, text/javascript+genshi | |
JavaScript+Mako | js+mako, javascript+mako | application/x-javascript+mako, text/x-javascript+mako, text/javascript+mako | |
JavaScript+Myghty | js+myghty, javascript+myghty | application/x-javascript+myghty, text/x-javascript+myghty, text/javascript+mygthy | |
JavaScript+PHP | js+php, javascript+php | application/x-javascript+php, text/x-javascript+php, text/javascript+php | |
JavaScript+Ruby | js+erb, javascript+erb, js+ruby, javascript+ruby | application/x-javascript+ruby, text/x-javascript+ruby, text/javascript+ruby | |
JavaScript+Smarty | js+smarty, javascript+smarty | application/x-javascript+smarty, text/x-javascript+smarty, text/javascript+smarty | |
Lighttpd configuration file | lighty, lighttpd | text/x-lighttpd-conf | |
Literate Haskell | lhs, literate-haskell | *.lhs | text/x-literate-haskell |
LLVM | llvm | *.ll | text/x-llvm |
Logtalk | logtalk | *.lgt | text/x-logtalk |
Lua | lua | *.lua | text/x-lua, application/x-lua |
Makefile | make, makefile, mf, bsdmake | *.mak, Makefile, makefile, Makefile.*, GNUmakefile | text/x-makefile |
Makefile | basemake | ||
Mako | mako | *.mao | application/x-mako |
Matlab | matlab, octave | *.m | text/matlab |
Matlab session | matlabsession | ||
MiniD | minid | *.md | text/x-minidsrc |
Modelica | modelica | *.mo | text/x-modelica |
Modula-2 | modula2, m2 | *.def, *.mod | text/x-modula2 |
MoinMoin/Trac Wiki markup | trac-wiki, moin | text/x-trac-wiki | |
MOOCode | moocode | *.moo | text/x-moocode |
MuPAD | mupad | *.mu | |
MXML | mxml | *.mxml | |
Myghty | myghty | *.myt, autodelegate | application/x-myghty |
MySQL | mysql | text/x-mysql | |
NASM | nasm | *.asm, *.ASM | text/x-nasm |
Newspeak | newspeak | *.ns2 | text/x-newspeak |
Nginx configuration file | nginx | text/x-nginx-conf | |
NumPy | numpy | ||
objdump | objdump | *.objdump | text/x-objdump |
Objective-C | objective-c, objectivec, obj-c, objc | *.m | text/x-objective-c |
Objective-J | objective-j, objectivej, obj-j, objj | *.j | text/x-objective-j |
OCaml | ocaml | *.ml, *.mli, *.mll, *.mly | text/x-ocaml |
Ooc | ooc | *.ooc | text/x-ooc |
Perl | perl, pl | *.pl, *.pm | text/x-perl, application/x-perl |
PHP | php, php3, php4, php5 | *.php, *.php[345] | text/x-php |
POVRay | pov | *.pov, *.inc | text/x-povray |
Prolog | prolog | *.prolog, *.pro, *.pl | text/x-prolog |
Python | python, py | *.py, *.pyw, *.sc, SConstruct, SConscript, *.tac | text/x-python, application/x-python |
Python 3 | python3, py3 | text/x-python3, application/x-python3 | |
Python 3.0 Traceback | py3tb | *.py3tb | text/x-python3-traceback |
Python console session | pycon | text/x-python-doctest | |
Python Traceback | pytb | *.pytb | text/x-python-traceback |
Ragel | ragel | ||
Ragel in C Host | ragel-c | *.rl | |
Ragel in CPP Host | ragel-cpp | *.rl | |
Ragel in D Host | ragel-d | *.rl | |
Ragel in Java Host | ragel-java | *.rl | |
Ragel in Objective C Host | ragel-objc | *.rl | |
Ragel in Ruby Host | ragel-ruby, ragel-rb | *.rl | |
Raw token data | raw | application/x-pygments-tokens | |
RConsole | rconsole, rout | *.Rout | |
REBOL | rebol | *.r, *.r3 | text/x-rebol |
Redcode | redcode | *.cw | |
reStructuredText | rst, rest, restructuredtext | *.rst, *.rest | text/x-rst, text/prs.fallenstein.rst |
RHTML | rhtml, html+erb, html+ruby | *.rhtml | text/html+ruby |
Ruby | rb, ruby | *.rb, *.rbw, Rakefile, *.rake, *.gemspec, *.rbx | text/x-ruby, application/x-ruby |
Ruby irb session | rbcon, irb | text/x-ruby-shellsession | |
S | splus, s, r | *.S, *.R | text/S-plus, text/S, text/R |
Sass | sass, SASS | *.sass | text/x-sass |
Scala | scala | *.scala | text/x-scala |
Scheme | scheme, scm | *.scm | text/x-scheme, application/x-scheme |
Smalltalk | smalltalk, squeak | *.st | text/x-smalltalk |
Smarty | smarty | *.tpl | application/x-smarty |
SQL | sql | *.sql | text/x-sql |
sqlite3con | sqlite3 | *.sqlite3-console | text/x-sqlite3-console |
SquidConf | squidconf, squid.conf, squid | squid.conf | text/x-squidconf |
Tcl | tcl | *.tcl | text/x-tcl, text/x-script.tcl, application/x-tcl |
Tcsh | tcsh, csh | *.tcsh, *.csh | application/x-csh |
TeX | tex, latex | *.tex, *.aux, *.toc | text/x-tex, text/x-latex |
Text only | text | *.txt | text/plain |
Vala | vala, vapi | *.vala, *.vapi | text/x-vala |
VB.net | vb.net, vbnet | *.vb, *.bas | text/x-vbnet, text/x-vba |
VimL | vim | *.vim, .vimrc | text/x-vim |
XML | xml | *.xml, *.xsl, *.rss, *.xslt, *.xsd, *.wsdl | text/xml, application/xml, image/svg+xml, application/rss+xml, application/atom+xml, application/xsl+xml, application/xslt+xml |
XML+Cheetah | xml+cheetah, xml+spitfire | application/xml+cheetah, application/xml+spitfire | |
XML+Django/Jinja | xml+django, xml+jinja | application/xml+django, application/xml+jinja | |
XML+Evoque | xml+evoque | *.xml | application/xml+evoque |
XML+Mako | xml+mako | application/xml+mako | |
XML+Myghty | xml+myghty | application/xml+myghty | |
XML+PHP | xml+php | application/xml+php | |
XML+Ruby | xml+erb, xml+ruby | application/xml+ruby | |
XML+Smarty | xml+smarty | application/xml+smarty | |
XSLT | xslt | *.xsl, *.xslt | text/xml, application/xml, image/svg+xml, application/rss+xml, application/atom+xml, application/xsl+xml, application/xslt+xml |
YAML | yaml | *.yaml, *.yml | text/x-yaml |