Build updates to include uploading of distro and docs, plus addition of admon graphics path to docbook plugin.

This commit is contained in:
Luke Taylor 2010-01-21 05:28:17 +00:00
parent 9734e4c82f
commit dbf673ec37
4 changed files with 467 additions and 397 deletions

3
.gitignore vendored
View File

@ -4,4 +4,5 @@ target/
.settings/ .settings/
build/ build/
*.log *.log
.gradle/ .gradle/
gradle.properties

View File

@ -6,12 +6,14 @@ apply id: 'base'
allprojects { allprojects {
version = '3.0.2.CI-SNAPSHOT' version = '3.0.2.CI-SNAPSHOT'
releaseBuild = version.endsWith('RELEASE') releaseBuild = version.endsWith('RELEASE')
snapshotBuild = version.endsWith('SNAPSHOT')
group = 'org.springframework.security' group = 'org.springframework.security'
repositories { repositories {
mavenRepo name:'Local', urls:'file:///Users/luke/.m2/repository' mavenRepo name:'Local', urls:'file:///Users/luke/.m2/repository'
mavenCentral() mavenCentral()
mavenRepo name:'SpringSource Milestone Repo', urls:'http://repository.springsource.com/maven/bundles/milestone' // mavenRepo name:'SpringSource Milestone Repo', urls:'http://repository.springsource.com/maven/bundles/milestone'
} }
} }
@ -121,6 +123,20 @@ configure(javaProjects()) {
conf2ScopeMappings.addMapping(1, configurations.provided, "provided") conf2ScopeMappings.addMapping(1, configurations.provided, "provided")
} }
repositories {
// Required for ant s3 task
mavenRepo name: "s2.com release", urls: "http://repository.springsource.com/maven/bundles/release"
}
configurations {
antlibs
}
dependencies {
antlibs "org.springframework.build:org.springframework.build.aws.ant:3.0.3.RELEASE",
"net.java.dev.jets3t:jets3t:0.6.1"
}
task apidocs(type: Javadoc) { task apidocs(type: Javadoc) {
destinationDir = new File(buildDir, 'apidocs') destinationDir = new File(buildDir, 'apidocs')
optionsFile = file("$buildDir/tmp/javadoc.options") optionsFile = file("$buildDir/tmp/javadoc.options")
@ -133,25 +149,69 @@ task apidocs(type: Javadoc) {
project.sourceSets.main.compileClasspath }) project.sourceSets.main.compileClasspath })
} }
task dist (type: Zip) { task apitar(type: Tar, dependsOn: apidocs) {
def docsDir = new File(project(':manual').buildDir, 'docs') compression = Compression.BZIP2
into('docs/apidocs') { classifier = 'apidocs'
into('apidocs') {
from apidocs.destinationDir from apidocs.destinationDir
} }
into('docs/reference') { }
from docsDir
} task login << {
into('dist') { ant.input("Please enter the ssh username for host '$sshHost'", addproperty: "ssh.username")
from coreModuleProjects().collect { project -> project.libsDir } ant.input("Please enter the ssh password '$sshHost'", addproperty: "ssh.password")
def username = ant.properties['ssh.username']
def password = ant.properties['ssh.password']
}
task uploadApidocs (dependsOn: login) << {
ant.scp(file: apitar.archivePath, todir: "${login.username}@$sshHost:$remoteDocsDir", password: password)
ant.sshexec(host: sshHost, username: login.username, password: login.password, command: "cd $remoteDocsDir && tar -xjf ${apitar.archiveName}")
ant.sshexec(host: sshHost, username: login.username, password: login.password, command: "rm $remoteDocsDir/${apitar.archiveName}")
}
task dist (type: Zip) {
def docsDir = new File(project(':manual').buildDir, 'docs')
def zipRootDir = "${project.name}-$version"
into (zipRootDir) {
into('docs/apidocs') {
from apidocs.destinationDir
}
into('docs/reference') {
from docsDir
}
into('dist') {
from coreModuleProjects().collect { project -> project.libsDir }
from project(':spring-security-samples-tutorial').libsDir
from project(':spring-security-samples-contacts').libsDir
}
} }
} }
dist.dependsOn apidocs, ':manual:doc'
dist.dependsOn subprojects.collect { "$it.path:assemble" }
dist.doLast { dist.doLast {
ant.checksum(file: archivePath, algorithm: 'SHA1', fileext: '.sha1') ant.checksum(file: archivePath, algorithm: 'SHA1', fileext: '.sha1')
} }
dist.dependsOn apidocs, ':manual:doc' task uploadDist << {
dist.dependsOn subprojects.collect { "$it.path:assemble" } def shaFile = file("${dist.archivePath}.sha1")
assert dist.archivePath.isFile()
assert shaFile.isFile()
ant.taskdef(resource: 'org/springframework/build/aws/ant/antlib.xml', classpath: configurations.antlibs.asPath)
ant.s3(accessKey: s3AccessKey, secretKey: s3SecretAccessKey) {
upload(bucketName: 'dist.springframework.org', file: dist.archivePath,
toFile: releaseType() + "/SEC/${dist.archiveName}", publicRead: 'true') {
metadata(name: 'project.name', value: 'Spring Security')
metadata(name: 'release.type', value: releaseType())
metadata(name: 'bundle.version', value: version)
metadata(name: 'package.file.name', value: dist.archiveName)
}
upload(bucketName: 'dist.springframework.org', file: shaFile,
toFile: releaseType() + "/SEC/${dist.archiveName}.sha1", publicRead: 'true')
}
}
def javaProjects() { def javaProjects() {
subprojects.findAll { project -> project.name != 'faq' && project.name != 'manual' } subprojects.findAll { project -> project.name != 'faq' && project.name != 'manual' }
@ -164,3 +224,14 @@ def sampleProjects() {
def coreModuleProjects() { def coreModuleProjects() {
javaProjects() - sampleProjects() javaProjects() - sampleProjects()
} }
def releaseType() {
if (releaseBuild) {
'release'
} else if (snapshotBuild) {
'snapshot'
} else {
'milestone'
}
}

View File

@ -4,14 +4,14 @@ apply id: 'docbook'
docbookSrcFileName = 'springsecurity.xml' docbookSrcFileName = 'springsecurity.xml'
docbookHtml.stylesheet = new File(projectDir, 'src/xsl/html-custom.xsl') docbookHtml.stylesheet = new File(projectDir, 'src/xsl/html-custom.xsl')
docbookFoPdf.stylesheet = new File(projectDir, 'src/xsl/pdf-custom.xsl') docbookFoPdf.stylesheet = new File(projectDir, 'src/xsl/pdf-custom.xsl')
def imagesDir = new File(projectDir, 'src/docbook/images');
docbookFoPdf.admonGraphicsPath = "${imagesDir}/"
task doc (dependsOn: [docbookHtml, docbookFoPdf]) << { task doc (dependsOn: [docbookHtml, docbookFoPdf]) << {
resourcesDir = new File(projectDir, 'src/resources') resourcesDir = new File(projectDir, 'src/resources')
ant { ant {
docsDir = new File(buildDir, 'docs') docsDir = new File(buildDir, 'docs')
copy(toDir: docsDir) {fileset(dir: resourcesDir)} copy(toDir: docsDir) {fileset(dir: resourcesDir)}
copy(toDir: new File(docsDir, 'images')) {fileset(dir: new File(projectDir, 'src/docbook/images'))} copy(toDir: new File(docsDir, 'images')) {fileset(dir: imagesDir)}
// TODO: Add this to the plugin
delete { fileset(dir: docsDir, includes: "*.fo")}
} }
} }

View File

@ -20,482 +20,480 @@
--> -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xslthl="http://xslthl.sf.net" xmlns:xslthl="http://xslthl.sf.net"
exclude-result-prefixes="xslthl" exclude-result-prefixes="xslthl"
version='1.0'> version='1.0'>
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/highlight.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/highlight.xsl"/>
<xsl:param name="admon.graphics">'1'</xsl:param> <!-- xsl:param name="draft.watermark.image" select="'images/draft.png'"/ -->
<xsl:param name="admon.graphics.path">src/docbook/images/</xsl:param> <xsl:param name="paper.type" select="'A4'"/>
<!-- xsl:param name="draft.watermark.image" select="'images/draft.png'"/ -->
<xsl:param name="paper.type" select="'A4'"/>
<xsl:param name="page.margin.top" select="'1cm'"/> <xsl:param name="page.margin.top" select="'1cm'"/>
<xsl:param name="region.before.extent" select="'1cm'"/> <xsl:param name="region.before.extent" select="'1cm'"/>
<xsl:param name="body.margin.top" select="'1.5cm'"/> <xsl:param name="body.margin.top" select="'1.5cm'"/>
<xsl:param name="body.margin.bottom" select="'1.5cm'"/> <xsl:param name="body.margin.bottom" select="'1.5cm'"/>
<xsl:param name="region.after.extent" select="'1cm'"/> <xsl:param name="region.after.extent" select="'1cm'"/>
<xsl:param name="page.margin.bottom" select="'1cm'"/> <xsl:param name="page.margin.bottom" select="'1cm'"/>
<xsl:param name="title.margin.left" select="'0cm'"/> <xsl:param name="title.margin.left" select="'0cm'"/>
<!--################################################### <!--###################################################
Header Header
################################################### --> ################################################### -->
<!-- More space in the center header for long text --> <!-- More space in the center header for long text -->
<xsl:attribute-set name="header.content.properties"> <xsl:attribute-set name="header.content.properties">
<xsl:attribute name="font-family"> <xsl:attribute name="font-family">
<xsl:value-of select="$body.font.family"/> <xsl:value-of select="$body.font.family"/>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="margin-left">-5em</xsl:attribute> <xsl:attribute name="margin-left">-5em</xsl:attribute>
<xsl:attribute name="margin-right">-5em</xsl:attribute> <xsl:attribute name="margin-right">-5em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!--################################################### <!--###################################################
Table of Contents Table of Contents
################################################### --> ################################################### -->
<xsl:param name="generate.toc"> <xsl:param name="generate.toc">
book toc,title book toc,title
</xsl:param> </xsl:param>
<!--################################################### <!--###################################################
Custom Header Custom Header
################################################### --> ################################################### -->
<xsl:template name="header.content"> <xsl:template name="header.content">
<xsl:param name="pageclass" select="''"/> <xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/> <xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/> <xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/> <xsl:param name="gentext-key" select="''"/>
<xsl:variable name="Version"> <xsl:variable name="Version">
<xsl:choose> <xsl:choose>
<xsl:when test="//productname"> <xsl:when test="//productname">
<xsl:value-of select="//productname"/><xsl:text> </xsl:text> <xsl:value-of select="//productname"/><xsl:text> </xsl:text>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:text>please define productname in your docbook file!</xsl:text> <xsl:text>please define productname in your docbook file!</xsl:text>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </xsl:variable>
<xsl:choose> <xsl:choose>
<xsl:when test="$sequence='blank'"> <xsl:when test="$sequence='blank'">
<xsl:choose> <xsl:choose>
<xsl:when test="$position='center'"> <xsl:when test="$position='center'">
<xsl:value-of select="$Version"/> <xsl:value-of select="$Version"/>
</xsl:when> </xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$pageclass='titlepage'"> <xsl:otherwise>
</xsl:when> </xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$position='center'"> <xsl:when test="$pageclass='titlepage'">
<xsl:value-of select="$Version"/> </xsl:when>
</xsl:when>
<xsl:otherwise> <xsl:when test="$position='center'">
</xsl:otherwise> <xsl:value-of select="$Version"/>
</xsl:choose> </xsl:when>
</xsl:template>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--################################################### <!--###################################################
Custom Footer Custom Footer
################################################### --> ################################################### -->
<xsl:template name="footer.content"> <xsl:template name="footer.content">
<xsl:param name="pageclass" select="''"/> <xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/> <xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/> <xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/> <xsl:param name="gentext-key" select="''"/>
<xsl:variable name="Version"> <xsl:variable name="Version">
<xsl:choose> <xsl:choose>
<xsl:when test="//releaseinfo"> <xsl:when test="//releaseinfo">
<xsl:value-of select="//releaseinfo"/> <xsl:value-of select="//releaseinfo"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </xsl:variable>
<xsl:variable name="Title"> <xsl:variable name="Title">
<xsl:value-of select="//title"/> <xsl:value-of select="//title"/>
</xsl:variable> </xsl:variable>
<xsl:choose> <xsl:choose>
<xsl:when test="$sequence='blank'"> <xsl:when test="$sequence='blank'">
<xsl:choose> <xsl:choose>
<xsl:when test="$double.sided != 0 and $position = 'left'"> <xsl:when test="$double.sided != 0 and $position = 'left'">
<xsl:value-of select="$Version"/> <xsl:value-of select="$Version"/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided = 0 and $position = 'center'"> <xsl:when test="$double.sided = 0 and $position = 'center'">
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<fo:page-number/> <fo:page-number/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
<xsl:when test="$pageclass='titlepage'"> <xsl:when test="$pageclass='titlepage'">
</xsl:when> </xsl:when>
<xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'"> <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
<fo:page-number/> <fo:page-number/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'"> <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
<fo:page-number/> <fo:page-number/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided = 0 and $position='right'"> <xsl:when test="$double.sided = 0 and $position='right'">
<fo:page-number/> <fo:page-number/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'"> <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
<xsl:value-of select="$Version"/> <xsl:value-of select="$Version"/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'"> <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
<xsl:value-of select="$Version"/> <xsl:value-of select="$Version"/>
</xsl:when> </xsl:when>
<xsl:when test="$double.sided = 0 and $position='left'"> <xsl:when test="$double.sided = 0 and $position='left'">
<xsl:value-of select="$Version"/> <xsl:value-of select="$Version"/>
</xsl:when> </xsl:when>
<xsl:when test="$position='center'"> <xsl:when test="$position='center'">
<xsl:value-of select="$Title"/> <xsl:value-of select="$Title"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<xsl:template match="processing-instruction('hard-pagebreak')"> <xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-before='page'/> <fo:block break-before='page'/>
</xsl:template> </xsl:template>
<!--################################################### <!--###################################################
Extensions Extensions
################################################### --> ################################################### -->
<!-- These extensions are required for table printing and other stuff <!-- These extensions are required for table printing and other stuff
<xsl:param name="use.extensions">1</xsl:param> <xsl:param name="use.extensions">1</xsl:param>
<xsl:param name="tablecolumns.extension">0</xsl:param> <xsl:param name="tablecolumns.extension">0</xsl:param>
<xsl:param name="callout.extensions">1</xsl:param> <xsl:param name="callout.extensions">1</xsl:param>
<xsl:param name="fop.extensions">1</xsl:param> <xsl:param name="fop.extensions">1</xsl:param>
--> -->
<!--################################################### <!--###################################################
Paper & Page Size Paper & Page Size
################################################### --> ################################################### -->
<!-- Paper type, no headers on blank pages, no double sided printing --> <!-- Paper type, no headers on blank pages, no double sided printing -->
<xsl:param name="double.sided">0</xsl:param> <xsl:param name="double.sided">0</xsl:param>
<xsl:param name="headers.on.blank.pages">0</xsl:param> <xsl:param name="headers.on.blank.pages">0</xsl:param>
<xsl:param name="footers.on.blank.pages">0</xsl:param> <xsl:param name="footers.on.blank.pages">0</xsl:param>
<!--################################################### <!--###################################################
Fonts & Styles Fonts & Styles
################################################### --> ################################################### -->
<xsl:param name="hyphenate">false</xsl:param> <xsl:param name="hyphenate">false</xsl:param>
<!-- Default Font size --> <!-- Default Font size -->
<xsl:param name="body.font.master">11</xsl:param> <xsl:param name="body.font.master">11</xsl:param>
<xsl:param name="body.font.small">8</xsl:param> <xsl:param name="body.font.small">8</xsl:param>
<!-- Line height in body text --> <!-- Line height in body text -->
<xsl:param name="line-height">1.4</xsl:param> <xsl:param name="line-height">1.4</xsl:param>
<!-- Chapter title size --> <!-- Chapter title size -->
<xsl:attribute-set name="chapter.titlepage.recto.style"> <xsl:attribute-set name="chapter.titlepage.recto.style">
<xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="font-size"> <xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.8"/> <xsl:value-of select="$body.font.master * 1.8"/>
<xsl:text>pt</xsl:text> <xsl:text>pt</xsl:text>
</xsl:attribute> </xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!-- Why is the font-size for chapters hardcoded in the XSL FO templates? <!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
Let's remove it, so this sucker can use our attribute-set only... --> Let's remove it, so this sucker can use our attribute-set only... -->
<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
xsl:use-attribute-sets="chapter.titlepage.recto.style"> xsl:use-attribute-sets="chapter.titlepage.recto.style">
<xsl:call-template name="component.title"> <xsl:call-template name="component.title">
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/> <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
</xsl:call-template> </xsl:call-template>
</fo:block> </fo:block>
</xsl:template> </xsl:template>
<!-- Sections 1, 2 and 3 titles have a small bump factor and padding --> <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
<xsl:attribute-set name="section.title.level1.properties"> <xsl:attribute-set name="section.title.level1.properties">
<xsl:attribute name="space-before.optimum">0.8em</xsl:attribute> <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute> <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
<xsl:attribute name="font-size"> <xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.5"/> <xsl:value-of select="$body.font.master * 1.5"/>
<xsl:text>pt</xsl:text> <xsl:text>pt</xsl:text>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<xsl:attribute-set name="section.title.level2.properties"> <xsl:attribute-set name="section.title.level2.properties">
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.6em</xsl:attribute> <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute> <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
<xsl:attribute name="font-size"> <xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.25"/> <xsl:value-of select="$body.font.master * 1.25"/>
<xsl:text>pt</xsl:text> <xsl:text>pt</xsl:text>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<xsl:attribute-set name="section.title.level3.properties"> <xsl:attribute-set name="section.title.level3.properties">
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute> <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.4em</xsl:attribute> <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
<xsl:attribute name="font-size"> <xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master * 1.0"/> <xsl:value-of select="$body.font.master * 1.0"/>
<xsl:text>pt</xsl:text> <xsl:text>pt</xsl:text>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!-- Use code syntax highlighting --> <!-- Use code syntax highlighting -->
<xsl:param name="highlight.source" select="1"/> <xsl:param name="highlight.source" select="1"/>
<xsl:param name="highlight.default.language" select="xml" /> <xsl:param name="highlight.default.language" select="xml" />
<xsl:template match='xslthl:keyword'> <xsl:template match='xslthl:keyword'>
<fo:inline font-weight="bold" color="#7F0055"><xsl:apply-templates/></fo:inline> <fo:inline font-weight="bold" color="#7F0055"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:comment'>
<fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:oneline-comment'> <xsl:template match='xslthl:comment'>
<fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline> <fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:multiline-comment'> <xsl:template match='xslthl:oneline-comment'>
<fo:inline font-style="italic" color="#3F5FBF"><xsl:apply-templates/></fo:inline> <fo:inline font-style="italic" color="#3F5F5F"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:tag'> <xsl:template match='xslthl:multiline-comment'>
<fo:inline color="#3F7F7F"><xsl:apply-templates/></fo:inline> <fo:inline font-style="italic" color="#3F5FBF"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:attribute'> <xsl:template match='xslthl:tag'>
<fo:inline color="#7F007F"><xsl:apply-templates/></fo:inline> <fo:inline color="#3F7F7F"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:value'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:string'> <xsl:template match='xslthl:attribute'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline> <fo:inline color="#7F007F"><xsl:apply-templates/></fo:inline>
</xsl:template> </xsl:template>
<xsl:template match='xslthl:value'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<xsl:template match='xslthl:string'>
<fo:inline color="#2A00FF"><xsl:apply-templates/></fo:inline>
</xsl:template>
<!--################################################### <!--###################################################
Tables Tables
################################################### --> ################################################### -->
<!-- Some padding inside tables --> <!-- Some padding inside tables -->
<xsl:attribute-set name="table.cell.padding"> <xsl:attribute-set name="table.cell.padding">
<xsl:attribute name="padding-left">4pt</xsl:attribute> <xsl:attribute name="padding-left">4pt</xsl:attribute>
<xsl:attribute name="padding-right">4pt</xsl:attribute> <xsl:attribute name="padding-right">4pt</xsl:attribute>
<xsl:attribute name="padding-top">4pt</xsl:attribute> <xsl:attribute name="padding-top">4pt</xsl:attribute>
<xsl:attribute name="padding-bottom">4pt</xsl:attribute> <xsl:attribute name="padding-bottom">4pt</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!-- Only hairlines as frame and cell borders in tables --> <!-- Only hairlines as frame and cell borders in tables -->
<xsl:param name="table.frame.border.thickness">0.1pt</xsl:param> <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
<xsl:param name="table.cell.border.thickness">0.1pt</xsl:param> <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
<!--################################################### <!--###################################################
Labels Labels
################################################### --> ################################################### -->
<!-- Label Chapters and Sections (numbering) --> <!-- Label Chapters and Sections (numbering) -->
<xsl:param name="chapter.autolabel" select="1"/> <xsl:param name="chapter.autolabel" select="1"/>
<xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.autolabel" select="1"/>
<xsl:param name="section.autolabel.max.depth" select="1"/> <xsl:param name="section.autolabel.max.depth" select="1"/>
<xsl:param name="section.label.includes.component.label" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="table.footnote.number.format" select="'1'"/> <xsl:param name="table.footnote.number.format" select="'1'"/>
<!--################################################### <!--###################################################
Programlistings Programlistings
################################################### --> ################################################### -->
<!-- Verbatim text formatting (programlistings) --> <!-- Verbatim text formatting (programlistings) -->
<xsl:attribute-set name="monospace.verbatim.properties"> <xsl:attribute-set name="monospace.verbatim.properties">
<xsl:attribute name="font-size"> <xsl:attribute name="font-size">
<xsl:value-of select="$body.font.small * 1.0"/> <xsl:value-of select="$body.font.small * 1.0"/>
<xsl:text>pt</xsl:text> <xsl:text>pt</xsl:text>
</xsl:attribute> </xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<xsl:attribute-set name="verbatim.properties"> <xsl:attribute-set name="verbatim.properties">
<xsl:attribute name="space-before.minimum">1em</xsl:attribute> <xsl:attribute name="space-before.minimum">1em</xsl:attribute>
<xsl:attribute name="space-before.optimum">1em</xsl:attribute> <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">1em</xsl:attribute> <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
<xsl:attribute name="border-color">#444444</xsl:attribute> <xsl:attribute name="border-color">#444444</xsl:attribute>
<xsl:attribute name="border-style">solid</xsl:attribute> <xsl:attribute name="border-style">solid</xsl:attribute>
<xsl:attribute name="border-width">0.1pt</xsl:attribute> <xsl:attribute name="border-width">0.1pt</xsl:attribute>
<xsl:attribute name="padding-top">0.5em</xsl:attribute> <xsl:attribute name="padding-top">0.5em</xsl:attribute>
<xsl:attribute name="padding-left">0.5em</xsl:attribute> <xsl:attribute name="padding-left">0.5em</xsl:attribute>
<xsl:attribute name="padding-right">0.5em</xsl:attribute> <xsl:attribute name="padding-right">0.5em</xsl:attribute>
<xsl:attribute name="padding-bottom">0.5em</xsl:attribute> <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
<xsl:attribute name="margin-left">0.5em</xsl:attribute> <xsl:attribute name="margin-left">0.5em</xsl:attribute>
<xsl:attribute name="margin-right">0.5em</xsl:attribute> <xsl:attribute name="margin-right">0.5em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!-- Shade (background) programlistings --> <!-- Shade (background) programlistings -->
<xsl:param name="shade.verbatim">1</xsl:param> <xsl:param name="shade.verbatim">1</xsl:param>
<xsl:attribute-set name="shade.verbatim.style"> <xsl:attribute-set name="shade.verbatim.style">
<xsl:attribute name="background-color">#F0F0F0</xsl:attribute> <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<xsl:attribute-set name="list.block.spacing"> <xsl:attribute-set name="list.block.spacing">
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-before.maximum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<xsl:attribute-set name="example.properties"> <xsl:attribute-set name="example.properties">
<xsl:attribute name="space-before.minimum">0.5em</xsl:attribute> <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
<xsl:attribute name="space-before.optimum">0.5em</xsl:attribute> <xsl:attribute name="space-before.optimum">0.5em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.5em</xsl:attribute> <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.optimum">0.1em</xsl:attribute> <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-after.maximum">0.1em</xsl:attribute> <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
<xsl:attribute name="keep-together.within-column">always</xsl:attribute> <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
</xsl:attribute-set> </xsl:attribute-set>
<!--###################################################
Title information for Figures, Examples etc.
################################################### -->
<xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
<xsl:attribute name="font-weight">normal</xsl:attribute>
<xsl:attribute name="font-style">italic</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="hyphenate">false</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<!--################################################### <!--###################################################
Callouts Title information for Figures, Examples etc.
################################################### --> ################################################### -->
<!-- don't use images for callouts <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
<xsl:param name="callout.graphics">0</xsl:param> <xsl:attribute name="font-weight">normal</xsl:attribute>
<xsl:param name="callout.unicode">1</xsl:param> <xsl:attribute name="font-style">italic</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:value-of select="$body.font.master"/>
<xsl:text>pt</xsl:text>
</xsl:attribute>
<xsl:attribute name="hyphenate">false</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute>
<xsl:attribute name="space-before.maximum">0.1em</xsl:attribute>
</xsl:attribute-set>
<!--###################################################
Callouts
################################################### -->
<!-- don't use images for callouts
<xsl:param name="callout.graphics">0</xsl:param>
<xsl:param name="callout.unicode">1</xsl:param>
--> -->
<!-- Place callout marks at this column in annotated areas <!-- Place callout marks at this column in annotated areas
<xsl:param name="callout.defaultcolumn">90</xsl:param> <xsl:param name="callout.defaultcolumn">90</xsl:param>
--> -->
<!--################################################### <!--###################################################
Misc Misc
################################################### --> ################################################### -->
<!-- Placement of titles --> <!-- Placement of titles -->
<xsl:param name="formal.title.placement"> <xsl:param name="formal.title.placement">
figure after figure after
example after example after
equation before equation before
table before table before
procedure before procedure before
</xsl:param> </xsl:param>
<!-- Format Variable Lists as Blocks (prevents horizontal overflow) --> <!-- Format Variable Lists as Blocks (prevents horizontal overflow) -->
<xsl:param name="variablelist.as.blocks">1</xsl:param> <xsl:param name="variablelist.as.blocks">1</xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param> <xsl:param name="body.start.indent">0pt</xsl:param>
<!-- Show only Sections up to level 3 in the TOCs --> <!-- Show only Sections up to level 3 in the TOCs -->
<xsl:param name="toc.section.depth">3</xsl:param> <xsl:param name="toc.section.depth">3</xsl:param>
<!-- Remove "Chapter" from the Chapter titles... --> <!-- Remove "Chapter" from the Chapter titles... -->
<xsl:param name="local.l10n.xml" select="document('')"/> <xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"> <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en"> <l:l10n language="en">
<l:context name="title-numbered"> <l:context name="title-numbered">
<l:template name="chapter" text="%n.&#160;%t"/> <l:template name="chapter" text="%n.&#160;%t"/>
<l:template name="section" text="%n&#160;%t"/> <l:template name="section" text="%n&#160;%t"/>
</l:context> </l:context>
<l:context name="title"> <l:context name="title">
<l:template name="example" text="Example&#160;%n&#160;%t"/> <l:template name="example" text="Example&#160;%n&#160;%t"/>
</l:context> </l:context>
</l:l10n> </l:l10n>
</l:i18n> </l:i18n>
<!--################################################### <!--###################################################
colored and hyphenated links colored and hyphenated links
################################################### --> ################################################### -->
<!-- <!--
<xsl:template match="ulink"> <xsl:template match="ulink">
<fo:basic-link external-destination="{@url}" <fo:basic-link external-destination="{@url}"
xsl:use-attribute-sets="xref.properties" xsl:use-attribute-sets="xref.properties"
text-decoration="underline" text-decoration="underline"
color="blue"> color="blue">
<xsl:choose> <xsl:choose>
<xsl:when test="count(child::node())=0"> <xsl:when test="count(child::node())=0">
<xsl:value-of select="@url"/> <xsl:value-of select="@url"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:apply-templates/> <xsl:apply-templates/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</fo:basic-link> </fo:basic-link>
</xsl:template> </xsl:template>
<xsl:template match="link"> <xsl:template match="link">
<fo:basic-link internal-destination="{@linkend}" <fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties" xsl:use-attribute-sets="xref.properties"
text-decoration="underline" text-decoration="underline"
color="blue"> color="blue">
<xsl:choose> <xsl:choose>
<xsl:when test="count(child::node())=0"> <xsl:when test="count(child::node())=0">
<xsl:value-of select="@linkend"/> <xsl:value-of select="@linkend"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:apply-templates/> <xsl:apply-templates/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</fo:basic-link> </fo:basic-link>
</xsl:template> </xsl:template>
--> -->
</xsl:stylesheet> </xsl:stylesheet>