From 9f74e0e5e9c76d45f367cc3663e83f9e3a7032c1 Mon Sep 17 00:00:00 2001 From: LarsDW223 Date: Sat, 27 May 2017 11:28:29 +0200 Subject: [PATCH] Render header syntax as simple html headers (not as full DokuWiki headers). This means that headlines in a folded block will not appear in the ToC and they will not have an own section edit button. --- syntax/header.php | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 syntax/header.php diff --git a/syntax/header.php b/syntax/header.php new file mode 100644 index 0000000..3007bd4 --- /dev/null +++ b/syntax/header.php @@ -0,0 +1,60 @@ +Lexer->addSpecialPattern( + '[ \t]*={2,}[^\n]+={2,}[ \t]*(?=\n)', + $mode, + 'plugin_folded_header' + ); + } + + /** + * Handle the match + */ + function handle($match, $state, $pos, Doku_Handler $handler){ + // Copied from parser: get level and title + $title = trim($match); + $level = 7 - strspn($title,'='); + if($level < 1) $level = 1; + $title = trim($title,'='); + $title = trim($title); + return array($title,$level,$pos); + } + + /** + * Create output + */ + function render($mode, Doku_Renderer $renderer, $data) { + if($mode != 'xhtml') return; + + list($text,$level,$pos) = $data; + + // Write the header + $renderer->doc .= DOKU_LF.''; + $renderer->cdata($text); + $renderer->doc .= "".DOKU_LF; + return true; + } +}