/** * Renders a permalink header. * * Code heavily copied from the header renderer from inc/parser/xhtml.php, just * added an href parameter to the anchor tag linking to the wikilink. */ function render($mode, Doku_Renderer $renderer, $data) { global $conf; list($headline, $lvl, $pos, $page, $sect, $flags) = $data; if ($mode == 'xhtml') { /** @var Doku_Renderer_xhtml $renderer */ $hid = $renderer->_headerToLink($headline, true); $renderer->toc_additem($hid, $headline, $lvl); $url = $sect ? wl($page) . '#' . $sect : wl($page); $renderer->doc .= DOKU_LF . '<h' . $lvl; $classes = array(); if ($flags['taglogos']) { $tag = $this->_get_firsttag($page); if ($tag) { $classes[] = 'include_firsttag__' . $tag; } } // the include header instruction is always at the beginning of the first section edit inside the include // wrap so there is no need to close a previous section edit. if ($lvl <= $conf['maxseclevel']) { $classes[] = $renderer->startSectionEdit($pos, 'section', $headline); } if ($classes) { $renderer->doc .= ' class="' . implode(' ', $classes) . '"'; } $headline = $renderer->_xmlEntities($headline); $renderer->doc .= ' id="' . $hid . '"><a href="' . $url . '" title="' . $headline . '">'; $renderer->doc .= $headline; $renderer->doc .= '</a></h' . $lvl . '>' . DOKU_LF; return true; } else { $renderer->header($headline, $lvl, $pos); } return false; }
/** * Renders a permalink header. * * Code heavily copied from the header renderer from inc/parser/xhtml.php, just * added an href parameter to the anchor tag linking to the wikilink. * * @param $mode string output format being rendered * @param $renderer Doku_Renderer reference to the current renderer object * @param $indata array data created by handler() * @return boolean rendered correctly? */ function render($mode, Doku_Renderer $renderer, $indata) { global $ID; list($text, $level) = $indata; if ($mode == 'xhtml') { /** @var $renderer Doku_Renderer_xhtml */ $hid = $renderer->_headerToLink($text, true); //only add items within configured levels $renderer->toc_additem($hid, $text, $level); // write the header $renderer->doc .= DOKU_LF . '<h' . $level . '><a name="' . $hid . '" id="' . $hid . '" href="' . wl($ID) . '">'; $renderer->doc .= $renderer->_xmlEntities($text); $renderer->doc .= "</a></h{$level}>" . DOKU_LF; return true; } // unsupported $mode return false; }
/** * Adds a TOC item */ function _addToTOC($text, $level, Doku_Renderer &$renderer) { global $conf; if ($level >= $conf['toptoclevel'] && $level <= $conf['maxtoclevel']) { /** @var $renderer Doku_Renderer_xhtml */ $hid = $renderer->_headerToLink($text, 'true'); $renderer->toc[] = array('hid' => $hid, 'title' => $text, 'type' => 'ul', 'level' => $level - $conf['toptoclevel'] + 1); } return $hid; }