mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-09 09:14:57 +00:00
XSLT allows for two ways of generating the output of transformation. Either implicit, which xsltproc prints to stdout and can be redirected to a file using -o file. Or explicit, which means the stylesheet contains <xsl:document> element which specifies where the output should be saved. This can be used for generating more files by a single run of xsltproc and -o directory/ can change the directory where the output files will be stored. devhelp.xsl is special in that it combines both options in one stylesheet, which doesn't work well with -o: xsltproc --nonet -o ./devhelp/ ./devhelp/devhelp.xsl ./libvirt-api.xml Outputs 4 *.html files into ./devhelp but then tries to write to ./devhelp/ as a file (hence the I/O error) rather than writing output to the fifth file devhelp/libvirt.devhelp. This patch modifies devhelp.xsl so that all files are generated using <xsl:document> element and -o directory/ can be used to override output directory where those files are saved.
133 lines
5.6 KiB
XML
133 lines
5.6 KiB
XML
<?xml version="1.0"?>
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
|
xmlns="http://www.devhelp.net/book"
|
|
xmlns:exsl="http://exslt.org/common"
|
|
xmlns:str="http://exslt.org/strings"
|
|
extension-element-prefixes="exsl str"
|
|
exclude-result-prefixes="exsl str">
|
|
<!-- The stylesheet for the html pages -->
|
|
<xsl:import href="html.xsl"/>
|
|
|
|
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
|
|
|
|
<!-- Build keys for all symbols -->
|
|
<xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
|
|
|
|
<xsl:template match="/">
|
|
<xsl:document xmlns="http://www.devhelp.net/book" href="libvirt.devhelp"
|
|
method="xml" encoding="UTF-8" indent="yes">
|
|
<xsl:apply-templates/>
|
|
</xsl:document>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="/api">
|
|
<book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
|
|
<xsl:apply-templates select="files"/>
|
|
<xsl:apply-templates select="symbols"/>
|
|
</book>
|
|
<xsl:call-template name="generate_index"/>
|
|
<xsl:call-template name="generate_general"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/files">
|
|
<chapters>
|
|
<sub name="API" link="general.html">
|
|
<xsl:apply-templates select="file"/>
|
|
</sub>
|
|
</chapters>
|
|
</xsl:template>
|
|
<xsl:template match="/api/files/file">
|
|
<xsl:variable name="module" select="@name"/>
|
|
<xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
|
|
<xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
|
|
<sub name="{@name}" link="libvirt-{@name}.html"/>
|
|
<xsl:document xmlns="" href="libvirt-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
|
|
<meta name="generator" content="Libvirt devhelp stylesheet"/>
|
|
<link rel="start" href="index.html" title="libvirt Reference Manual"/>
|
|
<link rel="up" href="general.html" title="API"/>
|
|
<link rel="stylesheet" href="style.css" type="text/css"/>
|
|
<link rel="chapter" href="general.html" title="API"/>
|
|
</head>
|
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
|
|
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
|
|
<tr valign="middle">
|
|
<xsl:if test="$prev != ''">
|
|
<td><a accesskey="p" href="libvirt-{$prev}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"/></a></td>
|
|
</xsl:if>
|
|
<td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
|
|
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
|
|
<xsl:if test="$next != ''">
|
|
<td><a accesskey="n" href="libvirt-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
|
|
</xsl:if>
|
|
<th width="100%" align="center">libvirt Reference Manual</th>
|
|
</tr>
|
|
</table>
|
|
<h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
|
|
<p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
|
|
<p><xsl:value-of select="description"/></p>
|
|
<xsl:if test="deprecated">
|
|
<p> WARNING: this module is deprecated !</p>
|
|
</xsl:if>
|
|
<p>Author(s): <xsl:value-of select="author"/></p>
|
|
<div class="refsynopsisdiv">
|
|
<h2>Synopsis</h2>
|
|
<pre class="synopsis">
|
|
<xsl:apply-templates mode="synopsis" select="exports"/>
|
|
</pre>
|
|
</div>
|
|
<div class="refsect1" lang="en">
|
|
<h2>Description</h2>
|
|
</div>
|
|
<div class="refsect1" lang="en">
|
|
<h2>Details</h2>
|
|
<div class="refsect2" lang="en">
|
|
<xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
|
|
<xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | /api/symbols/struct[@file=$module]"/>
|
|
<xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
|
|
<xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
|
|
<xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
</xsl:document>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols">
|
|
<functions>
|
|
<xsl:apply-templates select="macro"/>
|
|
<xsl:apply-templates select="enum"/>
|
|
<xsl:apply-templates select="typedef"/>
|
|
<xsl:apply-templates select="struct"/>
|
|
<xsl:apply-templates select="functype"/>
|
|
<xsl:apply-templates select="variable"/>
|
|
<xsl:apply-templates select="function"/>
|
|
</functions>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/functype">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/function">
|
|
<function name="{@name} ()" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/typedef">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/enum">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/struct">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/macro">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
<xsl:template match="/api/symbols/variable">
|
|
<function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|