Как разобрать и проверить содержимое внешней ссылки в плагине dokuwiki

Я пытался сделать это так в моем плагине.

function getType(){ return 'substition'; }
function getSort(){ return 299; } 
function connectTo($mode) { 
  $this->Lexer->addSpecialPattern('@.+?@',$mode,'plugin_externallink');
}

function render($mode, &$renderer, $data) {
  print_r($data);
}

но Паттен не соответствует ничему.

Вот пример разметки:

[[http://@testDomain@/test|testDomain]]

1 ответ

Я боюсь, что содержание [[ ]] обрабатывается либо режимом внутренней связи, либо внешней ссылкой.

Эти режимы не настроены для принятия любого другого режима (из-за реализации accepts который здесь ничего не принимает).

Что вы могли бы сделать, это:

  • Подходим весь шаблон. то есть: не только то, что внутри @..@, а что внутри [[ ]]
  • Определите приоритет меньше, чем один из internallink (300) и один из внешних ссылок (330). (Следовательно, 299 уже в порядке)

Чтобы справиться с этим, вы можете захотеть положиться на internallink метод renderer

Другие вопросы по тегам