Wikipublisher works by creating an intermediate output in XML that conforms to the Wikibook DTD, which is then typeset into a form suitable for printing. The project integrates components from a number of other open source projects; in particular:
- it provides a plug-in for the PmWiki [1] wiki engine, to generate output in Wikibook XML instead of XHTML; plug-ins for other content management systems are planned, subject to funding
- it extends the tbook system [2] for XML authoring, adding support for a wider range of content markup and presentation options
- it uses LATEX [3] as the document preparation system — the gold standard for electronic publishing
- it uses ImageMagick [4], including the perlMagick interface, to process images
- the web server for the typesetting engine is written in Perl, including libwww-perl (available via the CPAN shell as Bundle::LWP or Debian/Ubuntu package libwww-perl)
- libxml utilities for xmllint, to verify that the generated XML conforms to the DTD (document type definition) (Debian/Ubuntu package libxml2-utils)
- libxslt utilities for xsltproc, to process the transformation of the intermediate XML to LATEX (Debian/Ubuntu package xsltproc)
- it includes a modified version of LatexRender [5] for (optional) Equations support
Wikipublisher is distributed under the General Public Licence [6], version 2. The only way a small company with limited resources can deliver a project like this is by standing on the shoulders of giants [7]. Wikipublisher would not have been possible without the work of these other projects.