<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="no" doctype-public="-//Norman Walsh//DTD Website Autolayout V2.5.0//EN" doctype-system="http://docbook.sourceforge.net/release/website/2.5.0/schema/dtd/autolayout.dtd" /> <xsl:strip-space elements="toc tocentry layout copyright"/> <xsl:template match="layout"> <autolayout> <xsl:text> </xsl:text> <xsl:apply-templates/> </autolayout> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="style|script|headlink|copyright|config"> <xsl:apply-templates select="." mode="copy"/> </xsl:template> <xsl:template match="*" mode="copy"> <xsl:element name="{name(.)}"> <xsl:copy-of select="@*"/> <xsl:apply-templates mode="copy"/> </xsl:element> </xsl:template> <xsl:template match="toc"> <xsl:if test="not(@page)"> <xsl:message terminate="yes"> <xsl:text>All toc entries must have a page attribute.</xsl:text> </xsl:message> </xsl:if> <xsl:variable name="page" select="document(@page,.)"/> <toc> <xsl:call-template name="tocentry"/> </toc> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="tocentry"> <tocentry> <xsl:call-template name="tocentry"/> </tocentry> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="notoc"> <notoc> <xsl:call-template name="tocentry"/> </notoc> <xsl:text> </xsl:text> </xsl:template> <xsl:template name="tocentry"> <xsl:if test="@revisionflag"> <xsl:attribute name="revisionflag"> <xsl:value-of select="@revisionflag"/> </xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="@href"> <xsl:call-template name="tocentry.href"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="tocentry.page"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="tocentry.href"> <xsl:if test="not(@href)"> <xsl:message terminate="yes"> <xsl:text>All toc entries must have an href attribute.</xsl:text> </xsl:message> </xsl:if> <xsl:if test="not(@id)"> <xsl:message terminate="yes"> <xsl:text>All href toc entries must have an id attribute.</xsl:text> </xsl:message> </xsl:if> <xsl:message> <xsl:text>off site: </xsl:text> <xsl:value-of select="@href"/> </xsl:message> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <xsl:attribute name="href"> <xsl:value-of select="@href"/> </xsl:attribute> <xsl:if test="@tocskip = '1'"> <xsl:attribute name="tocskip"> <xsl:value-of select="@tocskip"/> </xsl:attribute> </xsl:if> <xsl:if test="not(title)"> <xsl:message terminate="yes"> <xsl:text>Off-site links must provide a title.</xsl:text> </xsl:message> </xsl:if> <xsl:text> </xsl:text> <xsl:apply-templates select="title|titleabbrev|summary" mode="copy"/> <xsl:text> </xsl:text> <xsl:apply-templates select="tocentry"/> </xsl:template> <xsl:template name="tocentry.page"> <xsl:if test="not(@page)"> <xsl:message terminate="yes"> <xsl:text>All toc entries must have a page attribute.</xsl:text> </xsl:message> </xsl:if> <xsl:variable name="page" select="document(@page,.)"/> <xsl:if test="not($page/*[1]/@id)"> <xsl:message terminate="yes"> <xsl:value-of select="@page"/> <xsl:text>: missing ID.</xsl:text> </xsl:message> </xsl:if> <xsl:variable name="id" select="$page/*[1]/@id"/> <xsl:variable name="filename"> <xsl:choose> <xsl:when test="@filename"> <xsl:value-of select="@filename"/> </xsl:when> <xsl:when test="/layout/config[@param='default-filename']"> <xsl:value-of select="(/layout/config[@param='default-filename'])[1]/@value"/> </xsl:when> <xsl:otherwise>index.html</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="dir"> <xsl:apply-templates select="." mode="calculate-dir"/> </xsl:variable> <xsl:if test="$filename = ''"> <xsl:message terminate="yes"> <xsl:value-of select="@page"/> <xsl:text>: missing filename.</xsl:text> </xsl:message> </xsl:if> <xsl:message> <xsl:value-of select="@page"/> <xsl:text>: </xsl:text> <xsl:if test="$dir != ''"> <xsl:value-of select="$dir"/> </xsl:if> <xsl:value-of select="$filename"/> </xsl:message> <xsl:attribute name="page"> <xsl:value-of select="@page"/> </xsl:attribute> <xsl:attribute name="id"> <xsl:value-of select="$id"/> </xsl:attribute> <xsl:if test="$dir != ''"> <xsl:attribute name="dir"> <xsl:value-of select="$dir"/> </xsl:attribute> </xsl:if> <xsl:attribute name="filename"> <xsl:value-of select="$filename"/> </xsl:attribute> <xsl:if test="@tocskip = '1'"> <xsl:attribute name="tocskip"> <xsl:value-of select="@tocskip"/> </xsl:attribute> </xsl:if> <xsl:text> </xsl:text> <xsl:choose> <xsl:when test="title"> <xsl:apply-templates select="title" mode="copy"/> </xsl:when> <xsl:otherwise> <title> <xsl:apply-templates select="$page/*[1]/head/title"/> </title> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> <xsl:if test="titleabbrev or $page/*[1]/head/titleabbrev"> <xsl:choose> <xsl:when test="titleabbrev"> <xsl:apply-templates select="titleabbrev" mode="copy"/> </xsl:when> <xsl:otherwise> <titleabbrev> <xsl:apply-templates select="$page/*[1]/head/titleabbrev"/> </titleabbrev> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> </xsl:if> <xsl:if test="summary or $page/*[1]/head/summary"> <xsl:choose> <xsl:when test="summary"> <xsl:apply-templates select="summary" mode="copy"/> </xsl:when> <xsl:otherwise> <summary> <xsl:apply-templates select="$page/*[1]/head/summary"/> </summary> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> </xsl:if> <xsl:apply-templates select="tocentry"/> </xsl:template> <xsl:template match="*" mode="calculate-dir"> <xsl:choose> <xsl:when test="starts-with(@dir, '/')"> <!-- if the directory on this begins with a "/", we're done... --> <xsl:value-of select="substring-after(@dir, '/')"/> <xsl:text>/</xsl:text> </xsl:when> <xsl:when test="parent::*"> <!-- if there's a parent, try it --> <xsl:apply-templates select="parent::*" mode="calculate-dir"/> <xsl:if test="@dir"> <xsl:value-of select="@dir"/> <xsl:text>/</xsl:text> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:if test="@dir"> <xsl:value-of select="@dir"/> <xsl:text>/</xsl:text> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10838 | Robert Cowham |
Populate //guest/robert_cowham/perforce/utils/p4convert/... from //guest/perforce_software/p4convert/.... |
||
//guest/perforce_software/p4convert/docs/_build/docbook-xsl-ns-1.78.1/website/autolayout.xsl | |||||
#1 | 10706 | Paul Allen | Add document '_build' files. |