- 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
This commit is contained in:
parent
916571f780
commit
7d632b6bcf
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/projects/db5/; revision=42541
3 changed files with 249 additions and 7 deletions
|
@ -299,13 +299,12 @@ ${DOC}.html.tar: ${DOC}.html ${LOCAL_IMAGES_LIB} \
|
||||||
${DOC}.epub: ${DOC}.parsed.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
|
${DOC}.epub: ${DOC}.parsed.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
|
||||||
${CSS_SHEET}
|
${CSS_SHEET}
|
||||||
${XSLTPROC} ${XSLTPROCOPTS} ${XSLEPUB} ${DOC}.parsed.xml
|
${XSLTPROC} ${XSLTPROCOPTS} ${XSLEPUB} ${DOC}.parsed.xml
|
||||||
${ECHO} "application/epub+zip" > mimetype
|
|
||||||
${CP} ${CSS_SHEET} OEBPS/
|
|
||||||
.if defined(LOCAL_IMAGES_LIB) || defined(LOCAL_IMAGES_PNG)
|
.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
|
.endif
|
||||||
${ZIP} ${ZIPOPTS} ${DOC}.epub mimetype
|
${ZIP} ${ZIPOPTS} -r -X ${DOC}.epub mimetype OEBPS META-INF
|
||||||
${ZIP} ${ZIPOPTS} -Dr ${DOC}.epub OEBPS META-INF
|
|
||||||
|
|
||||||
# TXT --------------------------------------------------------------------
|
# TXT --------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
196
share/xml/docbook-epub.css.xml
Normal file
196
share/xml/docbook-epub.css.xml
Normal file
|
@ -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>ol>li>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>
|
|
@ -3,14 +3,61 @@
|
||||||
<!-- $FreeBSD$ -->
|
<!-- $FreeBSD$ -->
|
||||||
|
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<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'>
|
version='1.0'>
|
||||||
|
|
||||||
<!-- Pull in the base stylesheets -->
|
<!-- 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 -->
|
<!-- 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="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>
|
</xsl:stylesheet>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue