aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Kovesdan <gabor@FreeBSD.org>2013-08-14 22:29:07 +0000
committerGabor Kovesdan <gabor@FreeBSD.org>2013-08-14 22:29:07 +0000
commit7d632b6bcf8b3ba5a780ff9825f8444319c62d7c (patch)
tree63c6dcd83ad321bfa4082e7aa7977a31cf4cc8bb
parent916571f7808401b18cbc8289e5b498752f1c83ed (diff)
downloaddoc-7d632b6bcf8b3ba5a780ff9825f8444319c62d7c.tar.gz
doc-7d632b6bcf8b3ba5a780ff9825f8444319c62d7c.zip
- Improve generated epub file
* Generate EPUB3 * Wrap programlistings if necessary * Use grey background and smaller fonts for programlistings * Justify main text * Do not break after table caption
Notes
Notes: svn path=/projects/db5/; revision=42541
-rw-r--r--share/mk/doc.docbook.mk9
-rw-r--r--share/xml/docbook-epub.css.xml196
-rw-r--r--share/xsl/freebsd-epub.xsl51
3 files changed, 249 insertions, 7 deletions
diff --git a/share/mk/doc.docbook.mk b/share/mk/doc.docbook.mk
index 2f05f73fd5..6c1a2e339b 100644
--- a/share/mk/doc.docbook.mk
+++ b/share/mk/doc.docbook.mk
@@ -299,13 +299,12 @@ ${DOC}.html.tar: ${DOC}.html ${LOCAL_IMAGES_LIB} \
${DOC}.epub: ${DOC}.parsed.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
${CSS_SHEET}
${XSLTPROC} ${XSLTPROCOPTS} ${XSLEPUB} ${DOC}.parsed.xml
- ${ECHO} "application/epub+zip" > mimetype
- ${CP} ${CSS_SHEET} OEBPS/
.if defined(LOCAL_IMAGES_LIB) || defined(LOCAL_IMAGES_PNG)
- ${CP} ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} OEBPS/
+.for f in ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG}
+ ${CP} ${f} OEBPS/
+.endfor
.endif
- ${ZIP} ${ZIPOPTS} ${DOC}.epub mimetype
- ${ZIP} ${ZIPOPTS} -Dr ${DOC}.epub OEBPS META-INF
+ ${ZIP} ${ZIPOPTS} -r -X ${DOC}.epub mimetype OEBPS META-INF
# TXT --------------------------------------------------------------------
diff --git a/share/xml/docbook-epub.css.xml b/share/xml/docbook-epub.css.xml
new file mode 100644
index 0000000000..44f845c3cd
--- /dev/null
+++ b/share/xml/docbook-epub.css.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<style>
+
+/********************************/
+/* start of styles in block.xsl */
+
+p {
+ text-align: justify;
+}
+
+.formalpara-title {
+ font-weight: bold;
+}
+
+div.blockquote-title {
+ font-weight: bold;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+span.msgmain-title {
+ font-weight: bold;
+}
+
+span.msgsub-title {
+ font-weight: bold;
+}
+
+span.msgrel-title {
+ font-weight: bold;
+}
+
+div.msglevel, div.msgorig, div.msgaud {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+span.msglevel-title, span.msgorig-title, span.msgaud-title {
+ font-weight: bold;
+}
+
+div.msgexplan {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+span.msgexplan-title {
+ font-weight: bold;
+}
+
+div.sidebar {
+ border: 0.5pt solid black;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ padding: 8px;
+}
+
+/* end of styles in block.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in autotoc.xsl */
+
+/* top level entries */
+nav&gt;ol&gt;li&gt;a {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+
+/* end of styles in autotoc.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in formal.xsl */
+
+div.figure-title {
+ font-weight: bold;
+}
+
+div.example-title {
+ font-weight: bold;
+}
+
+div.equation-title {
+ font-weight: bold;
+}
+
+div.table-title {
+ font-weight: bold;
+}
+
+div.sidebar-title {
+ font-weight: bold;
+}
+
+
+/* end of styles in formal.xsl */
+/********************************/
+
+/********************************/
+/* start of styles in verbatim.xsl */
+
+.programlisting {
+ white-space: pre-wrap;
+ font-family: monospace;
+ background-color: #d5d2d2;
+ font-size: 85%;
+}
+
+.screen {
+ white-space: pre-wrap;
+ font-family: monospace;
+ background-color: #d5d2d2;
+ font-size: 85%;
+}
+
+.synopsis {
+ white-space: pre-wrap;
+ font-family: monospace;
+ background-color: #d5d2d2;
+}
+
+/* end of styles in verbatim.xsl */
+/********************************/
+
+/********************************/
+/* NAVIGATION */
+
+nav ol {
+ list-style-type: none;
+ margin: 0 0 0 2em;
+ padding: 0 0 0 0;
+}
+
+nav ol li {
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+}
+
+nav ol li a {
+ text-decoration: none;
+ color: black;
+ font-family: sans-serif;
+}
+
+#guide {
+ display: none;
+}
+
+div.table {
+ page-break-inside: avoid;
+}
+
+.table-contents {
+ margin: 0px;
+ padding: 0px;
+}
+
+.table-contents table {
+ margin: 0px;
+ padding: 0px;
+ box-shadow: 10px 10px 5px #888888;
+}
+
+.table-contents thead tr td {
+ background-color: #cccccc;
+ border: 1px solid #000000;
+ border-width: 1px 0px 1px 0px;
+ text-align: center;
+ font-size: 90%;
+ font-family: Arial;
+ font-weight: bold;
+ color: #000000;
+}
+
+.table-contents table td {
+ vertical-align: middle;
+ border: 1px solid #000000;
+ border-width: 0px 0px 1px 0px;
+ text-align: left;
+ padding: 7px;
+ font-size: 80%;
+ font-family: Arial;
+ font-weight: normal;
+ color: #000000;
+}
+
+.table-contents table tr.odd {
+ background-color:#e5e5e5;
+}
+
+.table-contents table tr.even {
+ background-color:#ffffff;
+}
+</style>
diff --git a/share/xsl/freebsd-epub.xsl b/share/xsl/freebsd-epub.xsl
index f0af8bb24b..82038c91a4 100644
--- a/share/xsl/freebsd-epub.xsl
+++ b/share/xsl/freebsd-epub.xsl
@@ -3,14 +3,61 @@
<!-- $FreeBSD$ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:str="http://exslt.org/strings"
+ xmlns="http://www.w3.org/1999/xhtml"
+ exclude-result-prefixes="db str"
+ extension-element-prefixes="str"
version='1.0'>
<!-- Pull in the base stylesheets -->
- <xsl:import href="/usr/local/share/xsl/docbook-ns/epub/docbook.xsl"/>
+ <xsl:import href="/usr/local/share/xsl/docbook-ns/epub3/chunk.xsl"/>
<!-- Pull in common XHTML customizations -->
- <xsl:include href="freebsd-xhtml-common.xsl"/>
+ <xsl:import href="freebsd-xhtml-common.xsl"/>
<xsl:param name="generate.legalnotice.link" select="'1'"/>
+
+ <xsl:param name="docbook.css.source">../xml/docbook-epub.css.xml</xsl:param>
+ <xsl:param name="formal.title.placement">
+figure after
+example before
+equation after
+table before
+procedure before
+ </xsl:param>
+ <xsl:param name="variablelist.term.break.after" select="1"/>
+ <xsl:param name="variablelist.term.separator"/>
+
+ <!--
+ XXX: $docbook.css.source source is interpreted as a relative path
+ when referenced from a template and it should be relative to
+ this stylesheets and not the stock one, so xopy this file here.
+ -->
+ <xsl:template name="generate.default.css.file">
+ <xsl:if test="$make.clean.html != 0 and
+ $generate.css.header = 0 and
+ $docbook.css.source != ''">
+ <!-- Select default file relative to stylesheet -->
+ <xsl:variable name="css.node" select="document($docbook.css.source)/*[1]"/>
+ <xsl:variable name="fname" select="str:tokenize($docbook.css.source, '/')[last()]"/>
+
+ <xsl:call-template name="generate.css.file">
+ <xsl:with-param name="src" select="$fname"/>
+ <xsl:with-param name="css.node" select="$css.node"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="make.css.link">
+ <xsl:param name="css.filename" select="''"/>
+
+ <xsl:variable name="href" select="substring-before(str:tokenize($docbook.css.source, '/')[last()], '.xml')"/>
+
+ <xsl:if test="string-length($css.filename) != 0">
+ <link rel="stylesheet" type="text/css" href="{$href}"/>
+ </xsl:if>
+ </xsl:template>
+
+<xsl:template name="user.footer.navigation"/>
</xsl:stylesheet>