| 
      
        
        Wiki Doc | 
    
Результат трансляции wiki текста представлен в виде структуры
struct Wiki {
  fix inp: sinput/Input!
  fix xtree: xml/Elem!
  fix xhtml: xml/Elem!
}
Здесь:
inp – инпут-объект парсера с накопленной дополнительной информацией об оттранслированном документе (объект библиотеки com/teacode/sinput).
xtree – представление документа в абстрактной xml модели (модель будет меняться)
xhtml – финальное html-представление документа.
Для обычного применения (отрисовки документа) вполне достаточно использовать только содержимое поля xhtml.
Методы wikimize являются единственным внешним интерфейсом библиотеки. Wiki документ подается в контексте методов. В наиболее общем виде wikimize содержит пять аргументов, но все они являются необязательными. 
blacklist позволяет управлять набором разрешаемых компонент 
getlocurl, getdoc, inp0 и params полезны, если пользователь библиотеки реализует собственные обработчики для локальных ссылок *[]() и локальных вставок +[](). Эти компоненты зависят от контекста, в котором используется библиотека Wiki, и самой библиотекой не определяются. Они позволяют глубоко интегрировать обработку wiki документов в самые разнообразные проекты.
Последние четыре аргумента нужны только в случае разработки сложных интегрированных проектов, поэтому при обычном использовании мы рекомендуем работать с методами wikimize/0 и wikimize/1. Результат формируется в виде структуры типа Wiki.
Наиболее общий метод.
def String wikimize( 
  blacklist: String*, 
    getlocurl: Block?, 
      getdoc: Block?, 
        inp0: i/Input?, 
          params:q/Node*): Wiki!
Самый общий метод трансляции wiki текста. Параметры:
blacklist: String* 
Реализованный в библиотеке вариант wiki является сложным, продвинутым, и содержит большое количество компонентов. Данный параметр позволяет отключить отдельные компоненты wiki, если в них нет необходимости:
'header – отключение заголовков ###
'emph – отключение выделений в тексте (_курсив_, __жирный__)
'ol – отключение упорядоченных списков
'ul – отключение неупорядоченных списков
'quote – отключение цитат >
'slink – отключение простых ссылок <http://..>
'link – отключение гиперссылок []()
'img – отключение изображений ![]()
'hr – отключение горизонтальных линий ***
'html – отключение встроенного HTML
'entity – отключение сущностей HTML &..;
'table – отключение таблиц |
'comment – отключение комментариев %%%
'math – отключение математических формул \\(..\\)
'fnote – отключение сносок ^[]
'meta – отключение метаинформации %%%> ...
getlocurl: Block? 
Содержит нульместную анонимную функцию, обрабатывающую локальные ссылки вида *[](local-link). Библиотека wiki не обрабатывает такие ссылки, а оставляет это на усмотрение разработчика приложения, который должен предоставить обработчик в параметре getlocurl. 
В контексте вызываемой анонимной функции подается объект структуры
struct LocLink(text: Any*, params: (map/M + base/Map)?)В поле
text подается локальная ссылка local-link, а в поле params – пятый аргумент wikimize, который может содержать дополнительную информацию, передаваемую разработчиком. 
Результатом работы анонимной функции должно стать строковое значение URL, которое метод wikimize интерпретирует как адрес гиперссылки и вставляет в html-элемент a/href. 
getdoc: Block? 
Содержит нульместную анонимную функцию, обрабатывающую локальные вставки вида +[](local-link). Библиотека wiki не обрабатывает такие ссылки, а оставляет это на усмотрение разработчика приложения, который должен предоставить обработчик в параметре getdoc. 
В контексте вызываемой анонимной функции getdoc подается объект структуры 
struct LocLink(text: Any*, params: (map/M + base/Map)?)В поле
text подается локальная ссылка local-link, а в поле params – пятый аргумент wikimize, который может содержать дополнительную информацию, передаваемую разработчиком.
В качестве результата анонимная функция должна также вернуть структуру типа LocLink. 
Если параметр params непустой, то параметр text интерпретируется как текст дочернего документа, который должен быть вставлен в родительский текст. В этом случае для обработки дочернего документа рекурсивно вызывается wikimize, результат которого вставляется в родительский текст. 
Если параметр params пустой, то значение text интерпретируется как готовое значение, которое библиотекой не обрабатывается и вставляется в документ в не измененном виде. 
inp0 
Используется для импорта контекста родительского документа к документу дочернему. После обработки дочернего документа, необходимые данные, накопленные в процессе этой обработки, передаются обратно в родительский контекст. В основном этот параметр используется самой библиотекой при обработке локальных ссылок и локальных вставок.
params 
В этом параметре пользователь может передать любые дополнительные данные, необходимые для исполнения getlocurl и getdoc.
def String wikimize( 
  blacklist: String*, 
    getlocurl: Block?, 
      getdoc: Block?, 
        params: q/Node* ): Wiki!
def String wikimize( blacklist: String* ): Wiki!
def String wikimize: Wiki!