Содержание
Парсеры
Текст страницы пропускается через парсеры, в результате чего создается последовательность вызовов форматтеров, которые возвращают более читабельный текст. MoinMoin предоставляет несколько путей для выбора парсера страницы: инструкция FORMAT (см. ПомощьПоИнструкциям) и блоки кода (см. КакФорматировать)
Инструкция #FORMAT используется, чтобы указать MoinMoin какой парсер нужно применять ко всей странице. Обычно применяется парсер wiki. Пример: {{{#FORMAT cplusplus ... некий код на C++ ... }}}
В случае блоков кода парсеры применяются только к кусочку страницы (раньше это называлось 'processor region'). Вы указываете применяемый парсер, применяя конструкцию подобную 'bang path', в первой строке. 'bang path' - это концепция, известная по скриптам Unix, она призвана удовлетворять единственной цели: первая строка говорит оболочке какая программа должна выполнять данный скрипт. Пример:
{ { {#!CSV
a,b,c
d,e,f
} } }Подробней смотри КакРедактировать.
ParserBase
ParserBase - это вспомогательный класс парсеров, используемый для подсветки блоков кода. Это довольно просто. Форматтер HTML при обработке отображает какой-то участок кода с нумерацией строк, если броузер поддерживает технологии DOM и JavaScript.
Парсеру ParserBase можно передать некоторые аргументы, для этого их надо просто добавить после имени парсера. (#FORMAT python start=10 step=10 numbering=on либо #!python numbering=off).
- numbers
- добавлять нумерацию строк. по умолчанию - 'on'. Допустимые значение: 'on', 'off' (нумерация не отображается, но java-скрипт добавляется), 'disable' (вообще без нумерации)
- start
- номер первой строки. по умолчанию 1
- step
- шаг нумерации. по умолчанию 1
MoinMoin поставляется с небольшим числом парсеров, с которыми вы можете делать следующее:
cplusplus
1 int main(int argc, char **argv) {
2 return 0;
3 }
java
1 import java.util.Date;
2 import java.util.Calendar;
3
4 public class IntDate
5 {
6 public static Date getDate(String year, String month, String day)
7 {
8 // Date(int, int, int) has been deprecated, so use Calendar to
9 // set the year, month, and day.
10 Calendar c = Calendar.getInstance();
11 // Convert each argument to int.
12 c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
13 return c.getTime();
14
15 }
16 }
pascal
1 function TRegEx.Match(const s:string):boolean;
2 var
3 l,i : integer;
4 begin
5 result := MatchPos(s,l,i);
6 end;
python
Подсветка кода на python'е. Это не наследник ParserBase, но он понимает те же самые аргументы.
1 def hello():
2 print "Hello World!"
IRC
Представление логов IRC в виде таблицы.
| 23:18 | jroes | ah |
| 23:19 | jroes | hm, i like the way {{{ works, but i was hoping the lines would wrap |
| 23:21 | -!- | gpciceri [~gpciceri@host181-130.pool8248.interbusiness.it] has quit [Read error: 110 (Connection timed out)] |
| 23:36 | ThomasWal | you could also write a parser or processor |
| 23:38 | jroes | i could? |
| 23:38 | jroes | would that require modification on the moin end though? |
| 23:38 | jroes | i cant change the wiki myself :x |
CSV
Парсер CSV работает с так называемыми разделенными запятыми значениями, но запятая может быть заменена точкой с запятой. Первая строка рассматривается, как разделенные названия колонок, которые отобразятся жирным, если у вас таблица без шапки, то оставьте пустой первую строку.
'bang path' может содержать аргумент "-число", где число обозначает количество столбцов в таблице (начинается с 1).
Другой аргумент считается разделителем записей. Это может быть запятая (,) или точка с запятой (;). Если разделитель не указан, то используется точка с запятой. Смотри примеры дальше.
Сейчас в MoinMoin используется очень простой CSV парсер.
Фрагмент истории изменений MoinMoin 1.3:
История версий MoinMoin:
СтруктурированныйТекст
Смотри /СтруктурированныйТекст
XML/XSLT/DocBook
Смотри ПомощьПоXmlСтраницам