welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

location: ПомощьПоПарсерам

Парсеры

Помимо вики-разметки МойнМойн, используемой по умолчанию, различные обработчики входных форматов (далее называемые парсерами) позволяют пользователям иметь на вики данные в различных форматах (как в виде отдельных страниц, так и в качестве частей внутри других страниц, если синтаксис этих страниц поддерживает такую возможность).

Схема работы и использование парсеров

Парсеры обрабатывают поток во входном формате и генерируют набор вызовов для генераторов выходного формата («formatter») для получения итоговой страницы. Парсер можно использовать одним из двух способов:

  1. Указание инструкции #format

    Инструкция #format может использоваться для указания МойнМойн, какой парсер должен использоваться для обработки страницы. По умолчанию это парсер вики-разметки Мойн-Мойн — wiki.

  2. Блок с указанным парсером — см. КакФорматировать

    При использовании блока с указанием парсера, он может применяться только к части страницы. Используемый парсер указывается в параметре блока (в синтаксисе wiki — сразу после открывающей конструкции с использованием shebang, в creole — на следующей строке с использованием shebang; shebang используется по аналогии с UNIX, где он используется для указания интерпретатора скриптового файла)

Пример: использование инструкции

Здесь в качестве примера выступает отдельная страница:

#format creole
... **полужирное начертание** ...

Пример: блок с указанием парсера

В данном примере подразумевается, что это — часть вики-страницы:

Будет отображно как:

Вложние блоков с указанием парсера

Существует два способа решения проблемы с вложением блоков:

Для дополнительной информации по разметке см. КакРедактировать.

Парсеры для написания текста вики-страницы

Ряд парсеров предназначен для использования в нормальном тексте страницы (т. е. как документ):

Парсер CSV

Парсер CSV работает с так называемыми разделенными запятыми значениями, но запятая может быть заменена точкой с запятой. Первая строка рассматривается, как разделенные названия колонок, которые отобразятся в полужирном начертании; если таблица не должна содержать шапку, то достаточно оставить пустой первую строку.

При указании парсера можно задавать следующие параметры:

Пример использования парсера (см. исходный текст страницы для разметки): фрагмент истории изменений МойнМойн 1.3:

Номер патча Описание Автор
Дата
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

Пример с использованием параметра парсера link:

{{{#!csv delimiter=, link=Сервер quotechar="
Тип,Сервер
вики,http://moinmo.in MoinMoin
перевод,http://master19.moinmo.in master19
}}}

Будет показан на странице следующим образом:

Тип Сервер
вики MoinMoin
перевод master19

Парсеры diff, cplusplus, python, java, pascal, irc/irssi parsers

Данные парсеры присутствовали в МойнМойн версий старше 1.9 и были реализованы посредством специфичной для МойнМойн реализации парсинга и подсвети синтаксиса.

Начиная с версии 1.9 данные парсеры являются сокращениями для соответствующих лексеров парсера highlight.

Парсер highlight

В состав МойнМойн входит специальный парсер, называемый highlight и использующий Pygments для разбора различных синтаксисов.

При помощи него можно выполнять подсветку кода для различных языков программирования, конфигурационных файлов и других видов используемых текстовых форматов (достаточно указать соответствующее значение имеющееся в столбце «Lexer names» из таблицы ниже).

Аргументы

Поддерживаемые параметры подсветки синтаксиса:

numbers
Добавлять нумерацию строк. по умолчанию — 'on' (добавлять и отображать). Допустимые значение: 'on', 'off' (нумерация не отображается, но возможность её показать сохраняется), 'disable' (возможность нумерации отключается).
start
номер первой строки. по умолчанию 1.
step
шаг нумерации. по умолчанию 1.

Пример использования:

{{{#!highlight python start=127 step=3 numbers=off
class FooBar:
   """ doc string """
}}}

Отображение:

class FooBar:
   """ doc string """

(!) Также можно использовать данный парсер и в инструкции format, например: #format highlight python

Список доступных лексеров highlight

В качестве аргумента парсера highlight можно использовать значения из столбца «Lexer names».

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
autohotkey ahk *.ahk, *.ahkl text/x-autohotkey
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
BlitzMax blitzmax, bmax *.bmx text/x-bmx
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, CMakeLists.txt text/x-cmake
CoffeeScript coffee-script, coffeescript *.coffee text/coffeescript
Coldfusion 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
Duel duel, Duel Engine, Duel View, JBST, jbst, JsonML+BST *.duel, *.jbst text/x-duel, text/x-jbst
Dylan dylan *.dylan, *.dyl 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
Factor factor *.factor text/x-factor
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
GoodData-CL gooddata-cl *.gdc text/x-gooddata-cl
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
HTML+Velocity html+velocity text/html+velocity
Hybris hybris, hy *.hy, *.hyb text/x-hybris, application/x-hybris
INI ini, cfg *.ini, *.cfg text/x-ini
Io io *.io text/x-iosrc
Ioke ioke, ik *.ik text/x-iokesrc
IRC logs irc *.weechatlog text/x-irclog
Jade jade, JADE *.jade text/x-jade
Java java *.java text/x-java
Java Server Page jsp *.jsp application/x-jsp
JavaScript js, javascript *.js application/javascript, 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, *.wlua 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
MAQL maql *.maql text/x-gooddata-maql, application/x-gooddata-maql
Mason mason *.m, *.mhtml, *.mc, *.mi, autohandler, dhandler application/x-mason
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
PostScript postscript *.ps, *.eps application/postscript
POVRay pov *.pov, *.inc text/x-povray
Prolog prolog *.prolog, *.pro, *.pl text/x-prolog
Properties properties *.properties text/x-java-properties
Protocol Buffer protobuf *.proto
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, duby *.rb, *.rbw, Rakefile, *.rake, *.gemspec, *.rbx, *.duby 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
Scalate Server Page ssp *.ssp application/x-ssp
Scaml scaml, SCAML *.scaml text/x-scaml
Scheme scheme, scm *.scm text/x-scheme, application/x-scheme
SCSS scss *.scss text/x-scss
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
Velocity velocity *.vm, *.fhtml
verilog v *.v, *.sv text/x-verilog
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
XML+Velocity xml+velocity application/xml+velocity
XQuery xquery, xqy *.xqy, *.xquery text/xquery, application/xquery
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