[pve-devel] r6485 - in pve2-api-doc/trunk: data debian

svn-commits at proxmox.com svn-commits at proxmox.com
Wed Aug 17 12:15:52 CEST 2011


Author: dietmar
Date: 2011-08-17 12:15:52 +0200 (Wed, 17 Aug 2011)
New Revision: 6485

Added:
   pve2-api-doc/trunk/data/pve-man-include.php
Modified:
   pve2-api-doc/trunk/data/Makefile
   pve2-api-doc/trunk/debian/README
   pve2-api-doc/trunk/debian/changelog
Log:
  * added mediawiki plugin for proxmox man pages



Modified: pve2-api-doc/trunk/data/Makefile
===================================================================
--- pve2-api-doc/trunk/data/Makefile	2011-08-17 10:13:30 UTC (rev 6484)
+++ pve2-api-doc/trunk/data/Makefile	2011-08-17 10:15:52 UTC (rev 6485)
@@ -1,6 +1,8 @@
 PREFIX=/usr
 DOCDIR=${PREFIX}/share/pve2-api-doc/
-MANPAGES=pvecm.1.html qm.1.html
+MANPAGES=pvecm.1.html qm.1.html datacenter.cfg.5.html vm.conf.5.html
+PVECLUSTERPODDIR=/usr/share/doc/pve-cluster/pod
+QEMUSERVERPODDIR=/usr/share/doc/qemu-server/pod
 
 all: ${MANPAGES} apidoc.js
 
@@ -12,16 +14,25 @@
 apidoc.js: ${JSSRC}
 	cat ${JSSRC} >$@
 
-%.1.html:
-	$* printmanpod|pod2html --noindex>$@
+pvecm.1.html: ${PVECLUSTERPODDIR}/pvecm.1.pod
+	cat $<|pod2html --noindex > $@
 
+datacenter.cfg.5.html: ${PVECLUSTERPODDIR}/datacenter.cfg.5.pod
+	cat $<|pod2html --noindex > $@
 
+qm.1.html: ${QEMUSERVERPODDIR}/qm.1.pod
+	cat $<|pod2html --noindex > $@
+
+vm.conf.5.html: ${QEMUSERVERPODDIR}/vm.conf.5.pod
+	cat $<|pod2html --noindex > $@
+
 .PHONY: install
 install: apidoc.js apidoc.html apidata.js ${MANPAGES}
 	install -d -m 0755 ${DESTDIR}${DOCDIR}
 	install -D -m 0644 apidoc.html ${DESTDIR}${DOCDIR}/index.html;
 	install -D -m 0644 apidoc.js ${DESTDIR}${DOCDIR}/apidoc.js;
 	install -D -m 0644 apidata.js ${DESTDIR}${DOCDIR}/apidata.js;
+	install -D -m 0644 pve-man-include.php ${DESTDIR}/etc/mediawiki-extensions/extensions-available/pve-man-include.php;
 	install -d -m 0755 ${DESTDIR}${DOCDIR}/man
 	install -m 0644 ${MANPAGES} ${DESTDIR}${DOCDIR}/man
 

Added: pve2-api-doc/trunk/data/pve-man-include.php
===================================================================
--- pve2-api-doc/trunk/data/pve-man-include.php	                        (rev 0)
+++ pve2-api-doc/trunk/data/pve-man-include.php	2011-08-17 10:15:52 UTC (rev 6485)
@@ -0,0 +1,60 @@
+<?php
+
+# see http://www.mediawiki.org/wiki/Manual:Parser_functions
+
+$wgExtensionCredits['parserhook'][] = array(
+        'name' => "PVE Manual Pages",
+        'description' => "Display PVE manual pages", 
+        'author' => "Dietmar Maurer",
+);
+ 
+# Define a setup function
+$wgHooks['ParserFirstCallInit'][] = 'efPvemanParserFunction_Setup';
+# Add a hook to initialise the magic word
+$wgHooks['LanguageGetMagic'][]       = 'efPvemanParserFunction_Magic';
+ 
+function efPvemanParserFunction_Setup( &$parser ) {
+        # Set a function hook associating the "pveman" magic word with our function
+ $parser->setFunctionHook( 'pveman', 'efPvemanParserFunction_Render' );
+        return true;
+}
+ 
+function efPvemanParserFunction_Magic( &$magicWords, $langCode ) {
+        # Add the magic word
+        # The first array element is whether to be case sensitive, in this case (0) it is not case sensitive, 1 would be sensitive
+        # All remaining elements are synonyms for our parser function
+        $magicWords['pveman'] = array( 0, 'pveman' );
+        # unless we return true, other parser functions extensions won't get loaded.
+        return true;
+}
+ 
+function efPvemanParserFunction_Render( $parser, $param1 = '', $param2 = '' ) {
+        # The parser function itself
+        # The input parameters are wikitext with templates expanded
+        # The output should be wikitext too
+
+	$parser->disableCache();
+
+	$allowed = array(
+		'pvecm.1.html' => 1, 
+		'qm.1.html' => 1, 
+		'datacenter.cfg.5.html' => 1,
+		'vm.conf.5.html' => 1,
+		);
+
+	if (!$allowed[$param1]) {
+		die ("no such manual page");
+	}
+
+	$output = file_get_contents("/usr/share/pve2-api-doc/man/$param1");
+
+	$output = preg_replace('|^.*(<h1><a name="name">NAME</a></h1>)|s', '\1', $output);
+	$output = preg_replace('|</body>.*$|s', '', $output);
+	$output = preg_replace('|<p>\s*\n\s*</p>\n?|m', '', $output);
+	$output = preg_replace('|<hr\s*/>\n?|', '', $output);
+	$output = preg_replace('|^\n|m', '', $output);
+
+	return array( $output, 'noparse' => true, 'isHTML' => true );
+}
+
+?>

Modified: pve2-api-doc/trunk/debian/README
===================================================================
--- pve2-api-doc/trunk/debian/README	2011-08-17 10:13:30 UTC (rev 6484)
+++ pve2-api-doc/trunk/debian/README	2011-08-17 10:15:52 UTC (rev 6485)
@@ -3,13 +3,17 @@
 # a2ensite pve2-api-doc.conf
 # /etc/init.d/apache2 reload
 
+To enable mediawiki 'pveman' plugin
+# mwenext pve-man-include.php
+
 Now you should be able to access the documentation at:
 
-# API docu browser
+* API docu browser
 http://your-server/pve2-api-doc
 
-# Manual pages
+* Manual pages
 http://your-server/pve2-api-doc/man/
 
-
-
+* Mediawiki Plugin
+{{#pveman:qm.1.html}}
+[[Category:Manual Pages]]

Modified: pve2-api-doc/trunk/debian/changelog
===================================================================
--- pve2-api-doc/trunk/debian/changelog	2011-08-17 10:13:30 UTC (rev 6484)
+++ pve2-api-doc/trunk/debian/changelog	2011-08-17 10:15:52 UTC (rev 6485)
@@ -1,6 +1,8 @@
 pve2-api-doc (2.0-4) unstable; urgency=low
 
   * update to pve-manager 2.0-4
+  
+  * added mediawiki plugin for proxmox man pages
 
  -- Proxmox Support Team <support at proxmox.com>  Wed, 10 Aug 2011 11:27:43 +0200
 



More information about the pve-devel mailing list