KernelNewbiesTW:

XML Pages & XSLT Processing

Security advisory: enabling xslt processing with 4suite is dangerous (see HelpOnConfiguration page about allow_xslt setting for more details).

If you have Python4Suite installed in your system, it is possible to save XML documents as pages. It's important to start those pages with an XML declaration "<?xml ...>" in the very first line. Also, you have to specify the stylesheet that is to be used to process the XML document to HTML. This is done using a standard "xml-stylesheet" processing instruction, with the name of a page containing the stylesheet as the "href" parameter.

Do no forget to enable XSLT processing, see HelpOnConfiguration.

See the following example for details, which can also be found on the XsltVersion page.

Example

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="XsltVersion" type="text/xml"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:output method="html" omit-xml-declaration="yes" indent="no"/>

   <xsl:template match="/">
     This Wiki is running an XSLT engine by
     <xsl:value-of select="system-property('xsl:vendor')"/>
     (<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
     implementing XSLT v<xsl:value-of select="system-property('xsl:version')"/>
   </xsl:template>

</xsl:stylesheet>

Rendering DocBook

In order to let MoinMoin render DocBook pages, you will need to follow the steps described below. Afterwards, you will be able to write DocBook files in MoinMoin and see them as rendered HTML. Note that rendering DocBook pages may take some seconds of processing time (this is done after the page is saved).

Installing the DocBook support

  1. Install 4suite and enable XSLT processing, see above.
  2. Go to DocBook files at SourceForge and download the latest archive. It contains the XSLT files necessary for HTML generation.

  3. Extract the archive and copy the whole directories html, lib, common and the file VERSION into a directory that is writable by MoinMoin (e.g. the data directory).

    • After you have upgraded 4suite, you have to delete the file db_compiled.dat in this directory (if it exists).

  4. Edit your wiki configuration, the attribute docbook_html_dir has to point to the directory (which contains e.g. the file docbook.xsl) you created in the last step.

  5. You should be able to use the DocBook parser now.

Using DocBook

Just write your DocBook file like you would have done in a different environment as well. If you want to insert links to other wiki pages, be sure to simply write the WikiName into the text. Note that pages that would need [[...]] links in ordinary wiki markup cannot be linked to directly, yet.

DocBook markup is either marked by #format docbook in the first line of the page or in a wiki page like this:

XSLT option disabled, please look at HelpOnConfiguration.
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book>
<bookinfo>
<author>
<firstname>Bernd</firstname>
<surname>Le Pain</surname>
</author>
<copyright>
<year>2005</year>
</copyright>
</bookinfo>
<chapter>
<title>This is a title of a chapter</title>
<sect1>
<title>This is a title of a section</title>
<para>This is a paragraph.</para>
<para>
<emphasis role="bold">
This is a paragraph in bold.
</emphasis>
</para>
</sect1>
</chapter>
</book>

Note that you need to install DocBook like described above to make this example work.