*/ class renderer_plugin_linklist extends Doku_Renderer { protected $data = []; /** @inheritDoc */ public function getFormat() { return 'linklist'; } public function document_start() { $this->data = [ 'internal' => [], 'external' => [], 'interwiki' => [], ]; } public function document_end() { $this->doc = json_encode($this->data); } public function reset() { $this->document_start(); } public function internallink($link, $title = null) { $title = helper_plugin_linklist::getTitle($link); if (isset($this->data['internal'][$link])) { return; // already added } $this->data['internal'][$link] = [$link, $title]; } public function externallink($link, $title = null) { if (is_array($title)) $title = null; if (!$title) { $title = helper_plugin_linklist::getUrlTitle($link); } if (isset($this->data['external'][$link])) { return; // already added } $this->data['external'][$link] = [$link, $title]; } public function interwikilink($link, $title, $wikiName, $wikiUri) { if (is_array($title)) $title = null; if (!$title) { $title = $wikiUri; } if (isset($this->data['interwiki'][$link])) { return; // already added } $this->data['interwiki'][$link] = [$link, $title, $wikiName, $wikiUri]; } }