git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@114597 13f79535-47bb-0310-9956-ffa450edef68
170 lines
7.1 KiB
HTML
170 lines
7.1 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xsl:stylesheet
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
|
xmlns:svg="http://www.w3.org/TR/2001/REC-SVG-20010904" version='1.0'>
|
|
|
|
<xsl:include href="fo-layouts.xslt" />
|
|
<xsl:include href="fo-cover.xslt" />
|
|
<xsl:include href="fo-toc.xslt" />
|
|
<xsl:include href="fo-body.xslt" />
|
|
<xsl:include href="fo-tables.xslt" />
|
|
<xsl:include href="fo-table-column-widths.xslt" />
|
|
<xsl:param name="basePath">.</xsl:param>
|
|
<xsl:param name="paperType">US</xsl:param>
|
|
<xsl:param name="companyName">The Jakarta Project</xsl:param>
|
|
<xsl:param name="companyIncName">Apache Software Foundation, Inc.</xsl:param>
|
|
<xsl:param name="confidential">false</xsl:param>
|
|
<xsl:param name="publicationYear">2003</xsl:param>
|
|
<xsl:param name="imageDpi">150</xsl:param>
|
|
<xsl:param name="companyLogo"/>
|
|
<xsl:param name="projectLogo"/>
|
|
<xsl:param name="coverProjectCompany">Apache Software Foundation</xsl:param>
|
|
<xsl:param name="coverProjectName">Jakarta Maven</xsl:param>
|
|
<xsl:param name="coverType">Project Documentation</xsl:param>
|
|
<xsl:param name="coverVersion">1.0</xsl:param>
|
|
<xsl:param name="coverDate">January 1, 1901</xsl:param>
|
|
<xsl:param name="debug"></xsl:param>
|
|
<!-- These next two variables are used in cheap-and-cheerful case conversions -->
|
|
<xsl:variable name="lc">abcdefghijklmnopqrstuvwxyz</xsl:variable>
|
|
<xsl:variable name="uc">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
|
|
<xsl:variable name="footerText">©<xsl:value-of select="$publicationYear"/>
|
|
<xsl:value-of select="concat(' ',$companyIncName)"/> • All rights reserved
|
|
<xsl:if test="$confidential = 'true'">
|
|
• Proprietary and Confidential
|
|
</xsl:if>
|
|
</xsl:variable>
|
|
<xsl:variable name="colorDarkGray">#454545</xsl:variable>
|
|
<xsl:variable name="colorMediumGray">#A9A9A9</xsl:variable>
|
|
<xsl:variable name="colorLightGray">#D3D3D3</xsl:variable>
|
|
<!--
|
|
<xsl:variable name="colorWarmGrey11">#504b42</xsl:variable>
|
|
-->
|
|
<xsl:variable name="colorWarmGrey11">#4b4542</xsl:variable>
|
|
|
|
<xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>
|
|
|
|
<!--
|
|
<xsl:param name="debug">true</xsl:param>
|
|
-->
|
|
|
|
<!-- Error style -->
|
|
<xsl:attribute-set name="error.block" use-attribute-sets="base.block">
|
|
<xsl:attribute name="font-size">8pt</xsl:attribute>
|
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
|
<xsl:attribute name="color">red</xsl:attribute>
|
|
<xsl:attribute name="border-style">solid</xsl:attribute>
|
|
<xsl:attribute name="border-width">0.5pt</xsl:attribute>
|
|
<xsl:attribute name="border-color">red</xsl:attribute>
|
|
<xsl:attribute name="padding">0.75em</xsl:attribute>
|
|
<xsl:attribute name="start-indent">inherited-property-value(start-indent) + 2.5em</xsl:attribute>
|
|
<xsl:attribute name="end-indent">inherited-property-value(end-indent) + 3em</xsl:attribute>
|
|
</xsl:attribute-set>
|
|
|
|
|
|
<!-- Templates -->
|
|
|
|
<xsl:template match="/">
|
|
<xsl:apply-templates select="project" />
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project">
|
|
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
|
|
<xsl:call-template name="fo-layouts" />
|
|
<xsl:apply-templates />
|
|
</fo:root>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project/body">
|
|
<!-- Custom cover pages will be included in a future version -->
|
|
<xsl:call-template name="fo-cover" />
|
|
<!--
|
|
<xsl:call-template name="fo-cover-inside" />
|
|
-->
|
|
<xsl:call-template name="fo-toc" />
|
|
<xsl:apply-templates />
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project/body/menu">
|
|
<xsl:apply-templates />
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project/body/menu/item">
|
|
<!-- Renders the xml xdoc document -->
|
|
<xsl:call-template name="render-xdoc">
|
|
<xsl:with-param name="chapterNumber"><xsl:number count="menu" />.<xsl:number count="menu/item" /></xsl:with-param>
|
|
</xsl:call-template>
|
|
<xsl:apply-templates />
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project/body/menu/item/item">
|
|
<!-- Renders the xml xdoc document -->
|
|
<xsl:call-template name="render-xdoc">
|
|
<xsl:with-param name="chapterNumber"><xsl:number count="menu" />.<xsl:number count="menu/item" />.<xsl:number count="menu/item/item" /></xsl:with-param>
|
|
</xsl:call-template>
|
|
<xsl:apply-templates />
|
|
</xsl:template>
|
|
|
|
<xsl:template match="project/body/menu/item/item/item">
|
|
<!-- Renders the xml xdoc document -->
|
|
<xsl:call-template name="render-xdoc">
|
|
<xsl:with-param name="chapterNumber"><xsl:number count="menu"/>.<xsl:number count="menu/item"/>.<xsl:number count="menu/item/item"/>.<xsl:number count="menu/item/item/item"/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="render-xdoc">
|
|
<xsl:param name="chapterNumber">Foo</xsl:param>
|
|
<!-- Set the page number to start at. Normally this is 'auto'
|
|
unless we are at the very first xdoc, in which case we reset it to 1 -->
|
|
<xsl:variable name="pageStart">
|
|
<xsl:choose>
|
|
<xsl:when test="normalize-space(translate($chapterNumber,'1.',' '))">
|
|
<xsl:text>auto</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:text>1</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<!-- Renders the xml xdoc document -->
|
|
<!-- Retrieve the xdoc file relative to the basePath;
|
|
the name is the href, but substitute .xml as the suffix -->
|
|
<xsl:variable name="href" select="@href"/>
|
|
<xsl:variable name="documentName" select="substring-before( @href, '.html' )"/>
|
|
<xsl:variable name="documentPath" select="concat($basePath, $documentName, '.xml')"/>
|
|
<xsl:if test="normalize-space(@href)">
|
|
<xsl:if test="$debug = 'true'">
|
|
<xsl:message>
|
|
Href = <xsl:value-of select="$href"/></xsl:message>
|
|
<xsl:message>
|
|
Doc Name = <xsl:value-of select="$documentName"/></xsl:message>
|
|
<xsl:message>
|
|
Doc Path = <xsl:value-of select="$documentPath"/></xsl:message>
|
|
<xsl:message>Creating XSL:FO for <xsl:value-of select="$documentPath"/></xsl:message>
|
|
</xsl:if>
|
|
<fo:page-sequence master-reference="body" initial-page-number="{$pageStart}">
|
|
<!-- Render the header and footer -->
|
|
<xsl:call-template name="body-header">
|
|
<xsl:with-param name="headerText" select="concat($chapterNumber, ' ', translate(@name, $lc, $uc))"/>
|
|
</xsl:call-template>
|
|
<xsl:call-template name="body-footer">
|
|
<xsl:with-param name="footerText" select="translate($footerText, $lc, $uc)"/>
|
|
</xsl:call-template>
|
|
<fo:flow flow-name="xsl-region-body">
|
|
<!-- Render the chapter heading -->
|
|
<xsl:call-template name="body-chapter-heading">
|
|
<xsl:with-param name="chapterNumber"><xsl:value-of select="$chapterNumber"/></xsl:with-param>
|
|
<xsl:with-param name="chapter"><xsl:value-of select="@name" /></xsl:with-param>
|
|
</xsl:call-template>
|
|
<!-- Render the associated xdoc -->
|
|
<fo:block id="{@href}{generate-id()}">
|
|
<xsl:apply-templates select="document($documentPath)/document/body" />
|
|
</fo:block>
|
|
</fo:flow>
|
|
</fo:page-sequence>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|
|
|