]>
git.proxmox.com Git - pve-docs.git/blob - debian/tree/pve-docs-mediawiki/PVEDocs/include/PVEDocs.php
2 // see http://www.mediawiki.org/wiki/Manual:Parser_functions
5 public static function onParserFirstCallInit(Parser
$parser ) {
6 $parser->setFunctionHook('pvedocs', [ self
::class, 'efPvedocsParserFunction_Render' ]);
7 $parser->setHook('pvehide', [ self
::class, 'renderTagPveHideContent' ]);
12 // similar code as in <htmlet> tag...
13 public static function efPvedocsPostProcessFunction($parser, &$text) {
14 $text = preg_replace_callback(
15 '/<!--- @PVEDOCS_BASE64@ ([0-9a-zA-Z\\+\\/]+=*) @PVEDOCS_BASE64@ -->/sm',
16 function ($m) { return base64_decode("$m[1]"); },
23 public static function renderTagPveHideContent($input, array $args, Parser
$parser, PPFrame
$frame ) {
24 return ''; // simply return nothing
28 # Render the output of {{#pvedocs:chapter}}.
29 public static function efPvedocsParserFunction_Render(Parser
$parser, $doc = '') {
30 $parser->getOutput()->updateCacheExpiry(0); // disableCache() was dropped in MW 1.34
32 // only allow simple names, so that jist files from within "/usr/share/pve-docs/" can be included
33 if (!preg_match("/[a-z0-9.-]+\.html/i", $doc)) {
34 die("no such manual page");
37 // load JS helper for TOC/footnote generation and load actual HTML content fom docs
38 $content = "\n<script type=\"text/javascript\">\n".file_get_contents("/usr/lib/pve-docs/PVEDocs/mw-asciidoc.js") ."</script>";
40 $content .= file_get_contents("/usr/share/pve-docs/$doc");
42 // from https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/HTMLets/+/11e5ef1ea2820319458dc67174ca76d6e00b10cc/HTMLets.php#140
43 $output = '<!--- @PVEDOCS_BASE64@ '.base64_encode($content).' @PVEDOCS_BASE64@ -->';
44 return array($output, 'noparse' => true, 'isHTML' => true);