Инструменты пользователя

Инструменты сайта


wiki:devel:syntax_plugins

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:devel:syntax_plugins [2025/01/09 22:24] vladpolskiywiki:devel:syntax_plugins [2025/01/09 22:44] (текущий) – [Написание своего собственного плагина] vladpolskiy
Строка 52: Строка 52:
 ====== Руководство: разбор синтаксического плагина ====== ====== Руководство: разбор синтаксического плагина ======
  
-Цель данного руководства --- разобрать концепции, касающиеся [[syntax_plugins|синтаксических плагинов]] «[[ru:dokuwiki|ДокуВики]]» и пройти шаги, связанные с написанием своего собственного плагина.+Цель данного руководства --- разобрать концепции, касающиеся [[syntax_plugins|синтаксических плагинов]] «[[wiki:dokuwiki|ДокуВики]]» и пройти шаги, связанные с написанием своего собственного плагина.
  
 Для тех, кто с особым нетерпением жаждет начать: возьмите копию плагина [[syntax_plugin_skeleton|syntax plugin skeleton]]. Это своего рода костяк --- плагин, который выводит «Hello World!», когда встречает токен «''%%<TEST>%%''» в статье вики. Начните наращивать на него «мясо». Для тех, кто с особым нетерпением жаждет начать: возьмите копию плагина [[syntax_plugin_skeleton|syntax plugin skeleton]]. Это своего рода костяк --- плагин, который выводит «Hello World!», когда встречает токен «''%%<TEST>%%''» в статье вики. Начните наращивать на него «мясо».
Строка 170: Строка 170:
 Этот номер используется лексером((Lexer --- часть парсера, анализируящая «сырую» (исходную) статью вики.)) для управления порядком, в котором он проверяет шаблоны синтаксических состояний на «сырых» (исходных) данных вики. Это важно только в том случае, если один и тот же участок данных попадает в шаблоны, относящиеся к двум или более состояниям. После проверки будет выбран шаблон, относящийся к состоянию с наименьшим порядковым номером. Этот номер используется лексером((Lexer --- часть парсера, анализируящая «сырую» (исходную) статью вики.)) для управления порядком, в котором он проверяет шаблоны синтаксических состояний на «сырых» (исходных) данных вики. Это важно только в том случае, если один и тот же участок данных попадает в шаблоны, относящиеся к двум или более состояниям. После проверки будет выбран шаблон, относящийся к состоянию с наименьшим порядковым номером.
  
-Вы можете использовать это свойство для написания плагина, который заменяет или расширяет «родной» хендлер «ДокуВики» для той же синтаксической конструкции. Примером является плагин «[[plugin:Code]]».+Вы можете использовать это свойство для написания плагина, который заменяет или расширяет «родной» хендлер «ДокуВики» для той же синтаксической конструкции. Примером является плагин «[[wiki:plugin:Code]]».
  
-Подробности о существующих порядковых номерах доступны для обоих [[parser]] ([[ru:devel:parser:getsort_list|sort list]]).+Подробности о существующих порядковых номерах доступны для обоих [[parser]] ([[wiki:devel:parser:getsort_list|sort list]]).
 :?: :?:
  
Строка 234: Строка 234:
 Параметр ''$mode'' --- имя формата состояния финального вывода произведённого рендером. В настоящее время «ДокуВики» поддерживает только один формат вывода --- ''XHTML'' ((Существует ещё специальное состояние ''metadata'', которое ничего не выводит, только собирает метаданные для страницы. Используйте его для вставки значений в массив метаданных.)). Параметр ''$mode'' --- имя формата состояния финального вывода произведённого рендером. В настоящее время «ДокуВики» поддерживает только один формат вывода --- ''XHTML'' ((Существует ещё специальное состояние ''metadata'', которое ничего не выводит, только собирает метаданные для страницы. Используйте его для вставки значений в массив метаданных.)).
  
-Новые состояния могут быть представлены в [[renderer_plugins|плагинах рендера]]. Плагины должны производить вывод только для тех форматов, которые они поддерживают, это значит, что эта функция должна быть структурирована...+Новые состояния могут быть представлены в [[wiki:devel:renderer_plugins|плагинах рендера]]. Плагины должны производить вывод только для тех форматов, которые они поддерживают, это значит, что эта функция должна быть структурирована...
 <code> <code>
 if ($mode == 'xhtml') {  // supported mode if ($mode == 'xhtml') {  // supported mode
Строка 248: Строка 248:
  
 ==== Локализация ==== ==== Локализация ====
- 
 FIXME FIXME
- +Смотрите статьи «[[wiki:devel:common_plugin_functions#локализация|Локализация]]» и «[[plugin_file_structure|Структура файлов плагина]]».
-Смотрите статьи «[[common_plugin_functions#локализация|Локализация]]» и «[[plugin_file_structure|Структура файлов плагина]]».+
  
 ==== Конфигурация ==== ==== Конфигурация ====
Строка 258: Строка 256:
  
 ==== Использование CSS и JavaScript ==== ==== Использование CSS и JavaScript ====
- 
 FIXME FIXME
- 
 Смотрите статью «[[plugin_file_structure|Структура файлов плагина]]». Смотрите статью «[[plugin_file_structure|Структура файлов плагина]]».
  
Строка 291: Строка 287:
     * если у вас есть входной и выходной шаблоны, не забудьте обработать не совпавшие с шаблоном данные;     * если у вас есть входной и выходной шаблоны, не забудьте обработать не совпавшие с шаблоном данные;
     * относитесь к сырым данным вики с подозрением (вниманием) и убедитесь, что все спецсимволы прошли конвертор последовательностей.     * относитесь к сырым данным вики с подозрением (вниманием) и убедитесь, что все спецсимволы прошли конвертор последовательностей.
-  - Протестируйте и добавьте плагин на [[ru:plugins|страницу плагинов]] «ДокуВики».+  - Протестируйте и добавьте плагин на [[wiki:plugins|страницу плагинов]] «ДокуВики».
  
 ===== Пример 1-й плагина — Now ===== ===== Пример 1-й плагина — Now =====
wiki/devel/syntax_plugins.1736450674.txt.gz · Последнее изменение: vladpolskiy