From: <bob...@us...> - 2011-09-22 14:46:58
|
Revision: 9085 http://docbook.svn.sourceforge.net/docbook/?rev=9085&view=rev Author: bobstayton Date: 2011-09-22 14:46:52 +0000 (Thu, 22 Sep 2011) Log Message: ----------- epub:type for section changed to subchapter or division, depending on context. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-22 13:53:41 UTC (rev 9084) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-22 14:46:52 UTC (rev 9085) @@ -621,7 +621,6 @@ <xsl:template match="*" mode="epub.type" priority="-1"/> <xsl:template match="chapter - |section |appendix |epigraph |warning @@ -645,6 +644,18 @@ </xsl:if> </xsl:template> +<xsl:template match="section[parent::chapter]" mode="epub.type"> + <xsl:if test="$epub.output.epub.types != 0"> + <xsl:attribute name="epub:type">subchapter</xsl:attribute> + </xsl:if> +</xsl:template> + +<xsl:template match="section[not(parent::chapter)]" mode="epub.type"> + <xsl:if test="$epub.output.epub.types != 0"> + <xsl:attribute name="epub:type">division</xsl:attribute> + </xsl:if> +</xsl:template> + <!-- EPUB3: to add attributes to root output element --> <xsl:template name="root.attributes"> <!-- collect and output all namespace declarations --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2011-09-22 22:22:39
|
Revision: 9087 http://docbook.svn.sourceforge.net/docbook/?rev=9087&view=rev Author: kosek Date: 2011-09-22 22:22:33 +0000 (Thu, 22 Sep 2011) Log Message: ----------- Added new template user.manifest.items for specifying addtional items in manifest. For example reference to embeded font can be done using: <xsl:template name="user.manifest.items" xmlns="http://www.idpf.org/2007/opf"> <item id="font.dejavu.serif" href="fonts/DejaVuSerif.ttf" media-type="font/opentype"/> </xsl:template> Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-22 22:04:30 UTC (rev 9086) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-22 22:22:33 UTC (rev 9087) @@ -712,9 +712,12 @@ <xsl:call-template name="manifest.css"/> <xsl:call-template name="manifest.cover"/> <xsl:call-template name="manifest.content.items"/> + <xsl:call-template name="user.manifest.items"/> </xsl:element> </xsl:template> +<xsl:template name="user.manifest.items"/> + <xsl:template name="manifest.css"> <xsl:if test="$html.stylesheet != ''"> <xsl:element namespace="{$opf.namespace}" name="item"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2011-09-26 09:26:57
|
Revision: 9088 http://docbook.svn.sourceforge.net/docbook/?rev=9088&view=rev Author: bobstayton Date: 2011-09-26 07:56:31 +0000 (Mon, 26 Sep 2011) Log Message: ----------- Added more metadata elements, and added optional dc: elements for backwards compatibility, and param to turn them on. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-22 22:22:33 UTC (rev 9087) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-26 07:56:31 UTC (rev 9088) @@ -78,10 +78,12 @@ <!-- optional ncx for backwards compatibility --> <xsl:param name="epub.include.ncx" select="1"/> <xsl:param name="epub.ncx.depth">4</xsl:param> <!-- Not functional until http://code.google.com/p/epubcheck/issues/detail?id=70 is resolved --> -<!-- optional dcterms properties, for future compatibility --> +<!-- currently optional duplicate dcterms properties, may be required in future --> <xsl:param name="epub.include.metadata.dcterms" select="1"/> <!-- currently required, to be replaced in future version --> <xsl:param name="epub.include.metadata.dc.elements" select="1"/> +<!-- Some dc: elements will remain optional according to the spec --> +<xsl:param name="epub.include.optional.metadata.dc.elements" select="1"/> <xsl:param name="epub.autolabel" select="0"/> <xsl:param name="epub.vocabulary.profile.content">http://www.idpf.org/epub/30/profile/content/</xsl:param> @@ -379,13 +381,22 @@ <xsl:with-param name="date" select="$local.datetime"/> </xsl:call-template> </xsl:variable> - <xsl:if test="string-length($utc.datetime) != 0"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:modified</xsl:attribute> - <xsl:value-of select="$utc.datetime"/> - </xsl:element> - <xsl:comment>The preceding date value is actually local time (not UTC) in UTC format because there is no function in XSLT 1.0 to generate a correct UTC time</xsl:comment> - </xsl:if> + <xsl:choose> + <xsl:when test="string-length($utc.datetime) != 0"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:modified</xsl:attribute> + <xsl:value-of select="$utc.datetime"/> + </xsl:element> + <xsl:comment>The preceding date value is actually local time (not UTC) in UTC format because there is no function in XSLT 1.0 to generate a correct UTC time</xsl:comment> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + <xsl:text>ERROR: no last-modified date value could be determined, </xsl:text> + <xsl:text>so cannot output required meta element with </xsl:text> + <xsl:text>dcterms:modified attribute. Exiting.</xsl:text> + </xsl:message> + </xsl:otherwise> + </xsl:choose> </xsl:template> <xsl:template name="convert.date.to.utc"> @@ -423,18 +434,6 @@ </xsl:variable> <xsl:if test="string-length($n) != 0"> - <dc:creator> - <xsl:attribute name="id"> - <xsl:value-of select="concat($epub.dc.creator.id, position())"/> - </xsl:attribute> - <!-- - <xsl:attribute name="prefer"> - <xsl:value-of select="concat($epub.meta.creator.id, position())"/> - </xsl:attribute> - --> - <xsl:value-of select="$n"/> - </dc:creator> - <xsl:element name="meta" namespace="{$opf.namespace}"> <xsl:attribute name="id"> <xsl:value-of select="concat($epub.meta.creator.id, position())"/> @@ -442,22 +441,77 @@ <xsl:attribute name="property">dcterms:creator</xsl:attribute> <xsl:value-of select="normalize-space(string($n))"/> </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:creator> + <xsl:attribute name="id"> + <xsl:value-of select="concat($epub.dc.creator.id, position())"/> + </xsl:attribute> + <xsl:value-of select="$n"/> + </dc:creator> + </xsl:if> </xsl:if> </xsl:template> -<xsl:template match="date" mode="opf.metadata"> +<xsl:template match="editor" mode="opf.metadata"> <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:creator</xsl:attribute> + <xsl:value-of select="normalize-space(.)"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:creator> + <xsl:value-of select="normalize-space(.)"/> + </dc:creator> + </xsl:if> +</xsl:template> + +<xsl:template match="othercredit|collab" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:contributor</xsl:attribute> + <xsl:value-of select="normalize-space(.)"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:contributor> + <xsl:value-of select="normalize-space(.)"/> + </dc:contributor> + </xsl:if> + +</xsl:template> + +<xsl:template match="editor" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:creator</xsl:attribute> + <xsl:value-of select="normalize-space(.)"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:creator> + <xsl:value-of select="normalize-space(.)"/> + </dc:creator> + </xsl:if> + +</xsl:template> + +<xsl:template match="date|pubdate" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> <xsl:attribute name="property">dcterms:date</xsl:attribute> <xsl:value-of select="normalize-space(.)"/> </xsl:element> + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:date> + <xsl:value-of select="normalize-space(.)"/> + </dc:date> + </xsl:if> + </xsl:template> <!-- Space separate the compontents of the abstract (dropping the inline markup, sadly) --> <xsl:template match="abstract" mode="opf.metadata"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:description</xsl:attribute> + <xsl:variable name="content"> <xsl:for-each select="formalpara|para|simpara|title"> <xsl:choose> <xsl:when test="self::formalpara"> @@ -476,7 +530,18 @@ <xsl:text> </xsl:text> </xsl:if> </xsl:for-each> + </xsl:variable> + + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:description</xsl:attribute> + <xsl:copy-of select="$content"/> </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:description> + <xsl:copy-of select="$content"/> + </dc:description> + </xsl:if> </xsl:template> <xsl:template match="subjectset" mode="opf.metadata"> @@ -488,8 +553,31 @@ <xsl:attribute name="property">dcterms:subject</xsl:attribute> <xsl:value-of select="normalize-space(string(.))"/> </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:subject> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:subject> + </xsl:if> </xsl:template> +<xsl:template match="keywordset" mode="opf.metadata"> + <xsl:apply-templates select="keyword" mode="opf.metadata"/> +</xsl:template> + +<xsl:template match="keyword" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:subject</xsl:attribute> + <xsl:value-of select="normalize-space(string(.))"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:subject> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:subject> + </xsl:if> +</xsl:template> + <xsl:template match="publisher" mode="opf.metadata"> <xsl:apply-templates select="publishername" mode="opf.metadata"/> </xsl:template> @@ -499,8 +587,53 @@ <xsl:attribute name="property">dcterms:publisher</xsl:attribute> <xsl:value-of select="normalize-space(string(.))"/> </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:publisher> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:publisher> + </xsl:if> </xsl:template> +<xsl:template match="bibliocoverage" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:coverage</xsl:attribute> + <xsl:value-of select="normalize-space(string(.))"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:coverage> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:coverage> + </xsl:if> +</xsl:template> + +<xsl:template match="bibliorelation" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:relation</xsl:attribute> + <xsl:value-of select="normalize-space(string(.))"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:relation> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:relation> + </xsl:if> +</xsl:template> + +<xsl:template match="bibliosource" mode="opf.metadata"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:source</xsl:attribute> + <xsl:value-of select="normalize-space(string(.))"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:source> + <xsl:value-of select="normalize-space(string(.))"/> + </dc:source> + </xsl:if> +</xsl:template> + <xsl:template match="copyright" mode="opf.metadata"> <xsl:variable name="copyright.date"> <xsl:call-template name="copyright.years"> @@ -509,18 +642,28 @@ <xsl:with-param name="single.year.ranges" select="$make.single.year.ranges"/> </xsl:call-template> </xsl:variable> + + <!-- if no docbook date element, use copyright year for single date metadata --> <xsl:if test="not(../date)"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:date</xsl:attribute> + <xsl:variable name="date.content"> <xsl:call-template name="copyright.years"> <xsl:with-param name="years" select="year[last()]"/> <xsl:with-param name="print.ranges" select="0"/> <xsl:with-param name="single.year.ranges" select="0"/> </xsl:call-template> + </xsl:variable> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:date</xsl:attribute> + <xsl:copy-of select="$date.content"/> </xsl:element> + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:date> + <xsl:copy-of select="$date.content"/> + </dc:date> + </xsl:if> </xsl:if> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:rights</xsl:attribute> + + <xsl:variable name="rights.content"> <xsl:call-template name="gentext"> <xsl:with-param name="key" select="'Copyright'"/> </xsl:call-template> @@ -530,7 +673,18 @@ <xsl:value-of select="$copyright.date"/> <xsl:call-template name="gentext.space"/> <xsl:apply-templates select="holder" mode="titlepage.mode"/> + </xsl:variable> + + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:rights</xsl:attribute> + <xsl:copy-of select="$rights.content"/> </xsl:element> + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:rights> + <xsl:copy-of select="$rights.content"/> + </dc:rights> + </xsl:if> + <xsl:element name="meta" namespace="{$opf.namespace}"> <xsl:attribute name="property">dcterms:rightsHolder</xsl:attribute> <xsl:apply-templates select="holder" mode="titlepage.mode"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2011-09-28 10:09:26
|
Revision: 9090 http://docbook.svn.sourceforge.net/docbook/?rev=9090&view=rev Author: bobstayton Date: 2011-09-28 10:09:20 +0000 (Wed, 28 Sep 2011) Log Message: ----------- Many additions to metadata. Also added <guide> element for backwards compatibility. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-26 12:56:26 UTC (rev 9089) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-28 10:09:20 UTC (rev 9090) @@ -80,7 +80,9 @@ <xsl:param name="epub.ncx.depth">4</xsl:param> <!-- Not functional until http://code.google.com/p/epubcheck/issues/detail?id=70 is resolved --> <!-- currently optional duplicate dcterms properties, may be required in future --> <xsl:param name="epub.include.metadata.dcterms" select="1"/> -<!-- currently required, to be replaced in future version --> +<!-- optional guide element for backwards compatibility --> +<xsl:param name="epub.include.guide" select="1"/> +<!-- some dc: currently required, to be replaced in future version --> <xsl:param name="epub.include.metadata.dc.elements" select="1"/> <!-- Some dc: elements will remain optional according to the spec --> <xsl:param name="epub.include.optional.metadata.dc.elements" select="1"/> @@ -98,6 +100,7 @@ <xsl:param name="epub.container.filename" select="'container.xml'"/> <xsl:param name="epub.package.filename" select="'package.opf'"/> <xsl:param name="epub.cover.filename" select="concat('cover', $html.ext)"/> +<xsl:param name="epub.cover.linear" select="0" /> <!-- names of id attributes used in package files --> <xsl:param name="epub.meta.identifier.id">meta-identifier</xsl:param> @@ -115,7 +118,6 @@ <xsl:param name="epub.html.toc.id">htmltoc</xsl:param> <xsl:param name="epub.cover.filename.id" select="'cover'"/> <xsl:param name="epub.cover.image.id" select="'cover-image'"/> -<xsl:param name="epub.cover.linear" select="0" /> <xsl:param name="epub.embedded.fonts"></xsl:param> <xsl:param name="epub.namespace">http://www.idpf.org/2007/ops</xsl:param> @@ -249,8 +251,11 @@ <xsl:call-template name="package.metadata"/> <xsl:call-template name="package.manifest"/> <xsl:call-template name="package.spine"/> - <xsl:call-template name="package.guide"/> + <xsl:if test="$epub.include.guide != 0"> + <xsl:call-template name="package.guide"/> + </xsl:if> + </xsl:element> </xsl:variable> @@ -495,20 +500,60 @@ </xsl:template> <xsl:template match="date|pubdate" mode="opf.metadata"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:date</xsl:attribute> - <xsl:value-of select="normalize-space(.)"/> - </xsl:element> + <xsl:variable name="date"> + <xsl:call-template name="format.meta.date"> + <xsl:with-param name="string" select="normalize-space(.)"/> + </xsl:call-template> + </xsl:variable> - <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> - <dc:date> - <xsl:value-of select="normalize-space(.)"/> - </dc:date> + <xsl:if test="string-length($date) != 0"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="property">dcterms:date</xsl:attribute> + <xsl:value-of select="$date"/> + </xsl:element> + + <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> + <dc:date> + <xsl:value-of select="$date"/> + </dc:date> + </xsl:if> </xsl:if> </xsl:template> +<!-- EPUB3 meta date should be of the form: + YYYY, YYYY-MM or YYYY-MM-DD --> +<xsl:template name="format.meta.date"> + <xsl:param name="string" select="''"/> + + <xsl:variable name="date"> + <xsl:choose> + <xsl:when test="string-length($string) = 0"> + </xsl:when> + <xsl:otherwise> + <!-- construct a date one digit at a time until it fails to match format --> + <xsl:if test="contains('1234567890', substring($string,1,1))"> + <xsl:value-of select="substring($string,1,1)"/> + </xsl:if> + <xsl:if test="contains('1234567890', substring($string,2,1))"> + <xsl:value-of select="substring($string,2,1)"/> + </xsl:if> + <xsl:if test="contains('1234567890', substring($string,3,1))"> + <xsl:value-of select="substring($string,3,1)"/> + </xsl:if> + <xsl:if test="contains('1234567890', substring($string,4,1))"> + <xsl:value-of select="substring($string,4,1)"/> + </xsl:if> + <!-- FIXME: continue --> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:value-of select="$date"/> + +</xsl:template> + + <!-- Space separate the compontents of the abstract (dropping the inline markup, sadly) --> <xsl:template match="abstract" mode="opf.metadata"> <xsl:variable name="content"> @@ -646,10 +691,14 @@ <!-- if no docbook date element, use copyright year for single date metadata --> <xsl:if test="not(../date)"> <xsl:variable name="date.content"> - <xsl:call-template name="copyright.years"> - <xsl:with-param name="years" select="year[last()]"/> - <xsl:with-param name="print.ranges" select="0"/> - <xsl:with-param name="single.year.ranges" select="0"/> + <xsl:call-template name="format.meta.date"> + <xsl:with-param name="string"> + <xsl:call-template name="copyright.years"> + <xsl:with-param name="years" select="year[last()]"/> + <xsl:with-param name="print.ranges" select="0"/> + <xsl:with-param name="single.year.ranges" select="0"/> + </xsl:call-template> + </xsl:with-param> </xsl:call-template> </xsl:variable> <xsl:element name="meta" namespace="{$opf.namespace}"> @@ -691,8 +740,48 @@ </xsl:element> </xsl:template> -<xsl:template name="package.guide"/> +<xsl:template name="package.guide"> + <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/> + + <xsl:variable name="toc.params"> + <xsl:call-template name="find.path.params"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="table" select="normalize-space($generate.toc)"/> + </xsl:call-template> + </xsl:variable> + + <xsl:if test="contains($toc.params, 'toc') or + $info/cover or + $info//mediaobject[@role='cover' or ancestor::cover]"> + <xsl:element namespace="{$opf.namespace}" name="guide"> + <xsl:if test="$info/cover or + $info//mediaobject[@role='cover' or ancestor::cover]"> + <xsl:element namespace="{$opf.namespace}" name="reference"> + <xsl:attribute name="href"> + <xsl:value-of select="$epub.cover.filename" /> + </xsl:attribute> + <xsl:attribute name="type">cover</xsl:attribute> + <xsl:attribute name="title">Cover</xsl:attribute> + </xsl:element> + </xsl:if> + + <xsl:if test="contains($toc.params, 'toc')"> + <xsl:element namespace="{$opf.namespace}" name="reference"> + <xsl:attribute name="href"> + <xsl:call-template name="toc-href"> + <xsl:with-param name="node" select="."/> + </xsl:call-template> + </xsl:attribute> + <xsl:attribute name="type">toc</xsl:attribute> + <xsl:attribute name="title">Table of Contents</xsl:attribute> + </xsl:element> + </xsl:if> + </xsl:element> + </xsl:if> +</xsl:template> + + <xsl:template name="package-identifier"> <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2011-09-28 19:25:30
|
Revision: 9092 http://docbook.svn.sourceforge.net/docbook/?rev=9092&view=rev Author: bobstayton Date: 2011-09-28 19:25:24 +0000 (Wed, 28 Sep 2011) Log Message: ----------- add stub for other metadata items. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-28 12:11:02 UTC (rev 9091) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-28 19:25:24 UTC (rev 9092) @@ -954,6 +954,7 @@ <xsl:call-template name="manifest.toc"/> <xsl:call-template name="manifest.css"/> <xsl:call-template name="manifest.cover"/> + <xsl:call-template name="manifest.other.items"/> <xsl:call-template name="manifest.content.items"/> <xsl:call-template name="user.manifest.items"/> </xsl:element> @@ -1016,8 +1017,12 @@ </xsl:template> <xsl:template name="manifest.fonts"/> -<xsl:template name="manifest.other.items"/> +<!--Misc items in the manifest based on content --> +<xsl:template name="manifest.other.items"> +</xsl:template> + + <xsl:template name="manifest.cover"> <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/> <xsl:variable name="cover.image" @@ -1219,6 +1224,7 @@ function-available('set:distinct')"> <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/*)"> <xsl:if test="string-length(href) != 0"> + <!-- convert the child elements to attributes --> <xsl:element name="item" namespace="{$opf.namespace}"> <xsl:attribute name="id"> <xsl:value-of select="generate-id()"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2011-09-29 18:58:33
|
Revision: 9093 http://docbook.svn.sourceforge.net/docbook/?rev=9093&view=rev Author: bobstayton Date: 2011-09-29 18:58:23 +0000 (Thu, 29 Sep 2011) Log Message: ----------- Generate properties="svg mathml" attribute on chunk item in .opf file for each chunk that has either svg or mathml. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-28 19:25:24 UTC (rev 9092) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-29 18:58:23 UTC (rev 9093) @@ -16,6 +16,7 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:date="http://exslt.org/dates-and-times" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:ncx="http://www.daisy.org/z3986/2005/ncx/" @@ -25,7 +26,7 @@ xmlns:xtext="xalan://com.nwalsh.xalan.Text" extension-element-prefixes="stext xtext" - exclude-result-prefixes="#default date db dc dcterms epub exsl m ncx opf pls set ssml stext str svg xtext" + exclude-result-prefixes="#default cf date db dc dcterms epub exsl m ncx opf pls set ssml stext str svg xtext" version="1.0"> <!-- $Id: epub3-element-mods.xsl,v 1.1 2011-09-16 21:43:45 bobs Exp $ --> @@ -141,7 +142,17 @@ select="concat($base.dir, $epub.cover.filename)"/> <xsl:param name="epub.mimetype.pathname" select="concat($epub.package.dir, $epub.mimetype.filename)"/> + <!--==============================================================--> +<!-- Internal variables used for computing certain metadata --> +<!--==============================================================--> +<xsl:variable name="epub3.chunk.hierarchy"> + <xsl:apply-templates select="/*" mode="find.chunks"/> +</xsl:variable> + +<xsl:variable name="chunkset" select="exsl:node-set($epub3.chunk.hierarchy)//cf:div"/> + +<!--==============================================================--> <!-- Template customizations --> <!--==============================================================--> @@ -526,6 +537,7 @@ <xsl:template name="format.meta.date"> <xsl:param name="string" select="''"/> + <!-- FIXME: this needs further work, so just return the date string for now --> <xsl:variable name="date"> <xsl:choose> <xsl:when test="string-length($string) = 0"> @@ -549,7 +561,7 @@ </xsl:choose> </xsl:variable> - <xsl:value-of select="$date"/> + <xsl:value-of select="$string"/> </xsl:template> @@ -1188,6 +1200,14 @@ <xsl:variable name="id" select="concat($epub.package.id.prefix, generate-id())"/> + <xsl:variable name="properties.set"> + <xsl:call-template name="svg.property"/> + <xsl:text> </xsl:text> + <xsl:call-template name="mathml.property"/> + </xsl:variable> + + <xsl:variable name="properties" select="normalize-space($properties.set)"/> + <xsl:element namespace="{$opf.namespace}" name="item"> <xsl:attribute name="id"> <xsl:value-of select="$id"/> @@ -1196,12 +1216,83 @@ <xsl:value-of select="$href"/> </xsl:attribute> <xsl:attribute name="media-type">application/xhtml+xml</xsl:attribute> + <xsl:if test="string-length($properties) != 0"> + <xsl:attribute name="properties"> + <xsl:value-of select="$properties"/> + </xsl:attribute> + </xsl:if> </xsl:element> </xsl:if> <xsl:apply-templates mode="package.manifest"/> </xsl:template> +<xsl:template name="svg.property"> + <xsl:param name="this.chunk" select="."/> + + <xsl:variable name="genid" select="generate-id($this.chunk)"/> + + <!-- get the chunkfast div element for this chunk --> + <xsl:variable name="div" select="$chunkset[@id=$genid or @xml:id=$genid]"/> + + <!-- get the chunkfast div element the next chunk --> + <xsl:variable name="nextdiv" + select="($div/following-sibling::cf:div| + $div/following::cf:div| + $div/cf:div)[1]"/> + + <!-- get the element corresponding to the next chunk --> + <xsl:variable name="next.chunk" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/> + + <xsl:variable name="this.imagedata" + select="$this.chunk//imagedata"/> + <xsl:variable name="before.next" + select="$next.chunk/preceding::imagedata"/> + + <!-- select for an SVG imagedata in the intersection of them --> + <xsl:variable name="intersection" + select="$this.imagedata[count(.|$before.next) = count($before.next)]"/> + + <xsl:variable name="svg.imagedata" + select="$intersection[contains( + substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> + + <xsl:if test="count($svg.imagedata) != 0"> + <xsl:text>svg</xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template name="mathml.property"> + <xsl:param name="this.chunk" select="."/> + + <xsl:variable name="genid" select="generate-id($this.chunk)"/> + + <!-- get the chunkfast div element for this chunk --> + <xsl:variable name="div" select="$chunkset[@id=$genid or @xml:id=$genid]"/> + + <!-- get the chunkfast div element the next chunk --> + <xsl:variable name="nextdiv" + select="($div/following-sibling::cf:div| + $div/following::cf:div| + $div/cf:div)[1]"/> + + <!-- get the element corresponding to the next chunk --> + <xsl:variable name="next.chunk" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/> + + <xsl:variable name="this.math" + select="$this.chunk//m:*"/> + <xsl:variable name="before.next" + select="$next.chunk/preceding::m:*"/> + + <!-- select for an SVG imagedata in the intersection of them --> + <xsl:variable name="intersection" + select="$this.math[count(.|$before.next) = count($before.next)]"/> + + <xsl:if test="count($intersection) != 0"> + <xsl:text>mathml</xsl:text> + </xsl:if> +</xsl:template> + <xsl:template name="manifest.image.item"> </xsl:template> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2011-09-30 11:20:54
|
Revision: 9094 http://docbook.svn.sourceforge.net/docbook/?rev=9094&view=rev Author: bobstayton Date: 2011-09-30 11:20:48 +0000 (Fri, 30 Sep 2011) Log Message: ----------- Add editor.property param so editor can be contributor or creator in metadata. Process all children of authorgroup, not just author. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-29 18:58:23 UTC (rev 9093) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2011-09-30 11:20:48 UTC (rev 9094) @@ -127,6 +127,8 @@ <xsl:param name="dc.namespace">http://purl.org/dc/elements/1.1/</xsl:param> <!-- prefix generated ids in package elements so they differ from content ids --> <xsl:param name="epub.package.id.prefix">id-</xsl:param> +<!-- editor is either a creator or contributor --> +<xsl:param name="editor.property">contributor</xsl:param> <!-- Generate full output path --> <xsl:param name="epub.package.dir" select="concat($base.dir, '../')"/> @@ -439,7 +441,7 @@ </xsl:template> <xsl:template match="authorgroup" mode="opf.metadata"> - <xsl:apply-templates select="author|corpauthor" mode="opf.metadata"/> + <xsl:apply-templates select="*" mode="opf.metadata"/> </xsl:template> <xsl:template match="author|corpauthor" mode="opf.metadata"> @@ -470,19 +472,48 @@ </xsl:template> <xsl:template match="editor" mode="opf.metadata"> + <xsl:variable name="name"> + <xsl:choose> + <xsl:when test="string-length($editor.property) != 0"> + <xsl:value-of select="$editor.property"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>contributor</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:creator</xsl:attribute> + <xsl:attribute name="property"> + <xsl:text>dcterms:</xsl:text> + <xsl:value-of select="$name"/> + </xsl:attribute> <xsl:value-of select="normalize-space(.)"/> </xsl:element> <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> - <dc:creator> - <xsl:value-of select="normalize-space(.)"/> - </dc:creator> + <xsl:choose> + <xsl:when test="$name = 'creator'"> + <dc:creator> + <xsl:value-of select="normalize-space(.)"/> + </dc:creator> + </xsl:when> + <xsl:when test="$name = 'contributor'"> + <dc:contributor> + <xsl:value-of select="normalize-space(.)"/> + </dc:contributor> + </xsl:when> + <xsl:otherwise> + <xsl:element namespace="{$dc.namespace}" name="{$name}"> + <xsl:value-of select="normalize-space(.)"/> + </xsl:element> + </xsl:otherwise> + </xsl:choose> </xsl:if> + </xsl:template> -<xsl:template match="othercredit|collab" mode="opf.metadata"> +<xsl:template match="othercredit|corpcredit|collab" mode="opf.metadata"> <xsl:element name="meta" namespace="{$opf.namespace}"> <xsl:attribute name="property">dcterms:contributor</xsl:attribute> <xsl:value-of select="normalize-space(.)"/> @@ -496,20 +527,6 @@ </xsl:template> -<xsl:template match="editor" mode="opf.metadata"> - <xsl:element name="meta" namespace="{$opf.namespace}"> - <xsl:attribute name="property">dcterms:creator</xsl:attribute> - <xsl:value-of select="normalize-space(.)"/> - </xsl:element> - - <xsl:if test="$epub.include.optional.metadata.dc.elements != 0"> - <dc:creator> - <xsl:value-of select="normalize-space(.)"/> - </dc:creator> - </xsl:if> - -</xsl:template> - <xsl:template match="date|pubdate" mode="opf.metadata"> <xsl:variable name="date"> <xsl:call-template name="format.meta.date"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-01-30 21:54:26
|
Revision: 9208 http://docbook.svn.sourceforge.net/docbook/?rev=9208&view=rev Author: bobstayton Date: 2012-01-30 21:54:20 +0000 (Mon, 30 Jan 2012) Log Message: ----------- Added support for lists of figures, tables, examples, etc. Fixed generation of epub CSS file. Added epub:type attributes to glossterm, glossdef, sect1-6, admonitions, lists. Now includes in the opf file the image filenames for admonitions, callouts. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-30 21:50:19 UTC (rev 9207) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-30 21:54:20 UTC (rev 9208) @@ -33,7 +33,9 @@ <xsl:import href="titlepage.templates.xsl"/> +<!-- <xsl:key name="image-filerefs" match="graphic|inlinegraphic|imagedata" use="@fileref"/> +--> <!--==============================================================--> <!-- DocBook XSL Parameter settings --> @@ -42,8 +44,9 @@ <xsl:param name="chunk.tocs.and.lots" select="1"/> <xsl:param name="toc.section.depth" select="2"/> <xsl:param name="generate.toc"> -book toc,title +book toc,title,figure,table,example,equation </xsl:param> +<xsl:param name="generate.manifest" select="0"/> <xsl:param name="manifest.in.base.dir" select="1"/> <xsl:param name="base.dir" select="'OEBPS/'"/> <xsl:param name="index.links.to.section" select="0"/> @@ -68,7 +71,7 @@ <!-- generate the css file from a source file --> <xsl:param name="make.clean.html" select="1"/> <!-- specify the default epub3 stylesheet --> -<xsl:param name="docbook.css.source">docbook.css.xml</xsl:param> +<xsl:param name="docbook.css.source">docbook-epub.css.xml</xsl:param> <!-- for custom CSS, use the custom.css.source param --> <xsl:param name="custom.css.source"></xsl:param> @@ -905,6 +908,8 @@ |dedication |sidebar |footnote + |glossterm + |glossdef |bridgehead |part" mode="epub.type"> <xsl:variable name="type" select="local-name()"/> @@ -916,18 +921,41 @@ </xsl:if> </xsl:template> -<xsl:template match="section[parent::chapter]" mode="epub.type"> +<xsl:template match="section[parent::chapter] | sect1" mode="epub.type"> <xsl:if test="$epub.output.epub.types != 0"> <xsl:attribute name="epub:type">subchapter</xsl:attribute> </xsl:if> </xsl:template> -<xsl:template match="section[not(parent::chapter)]" mode="epub.type"> +<xsl:template match="section[not(parent::chapter)] | + sect2 | + sect3 | + sect4 | + sect5 | + sect6" mode="epub.type"> <xsl:if test="$epub.output.epub.types != 0"> <xsl:attribute name="epub:type">division</xsl:attribute> </xsl:if> </xsl:template> +<xsl:template match="note|tip|caution|important" mode="epub.type"> + <xsl:if test="$epub.output.epub.types != 0"> + <xsl:attribute name="epub:type">notice</xsl:attribute> + </xsl:if> +</xsl:template> + +<xsl:template match="orderedlist|itemizedlist|variablelist|simplelist" mode="epub.type"> + <xsl:if test="$epub.output.epub.types != 0"> + <xsl:attribute name="epub:type">list</xsl:attribute> + </xsl:if> +</xsl:template> + +<xsl:template match="listitem" mode="epub.type"> + <xsl:if test="$epub.output.epub.types != 0"> + <xsl:attribute name="epub:type">list-item</xsl:attribute> + </xsl:if> +</xsl:template> + <!-- EPUB3: to add attributes to root output element --> <xsl:template name="root.attributes"> <!-- collect and output all namespace declarations --> @@ -1429,6 +1457,68 @@ </xsl:if> </xsl:template> +<!-- Add in the generated images --> +<xsl:template match="note|caution|warning|important|tip" mode="enumerate-images"> + <xsl:if test="$admon.graphics != 0"> + <xsl:variable name="image.filename"> + <xsl:call-template name="admon.graphic"/> + </xsl:variable> + + <xsl:variable name="image.type"> + <xsl:call-template name="graphic.format.content-type"> + <xsl:with-param name="format" select="translate( + substring-after($admon.graphics.extension,'.'), + &lowercase;, &uppercase;)"/> + </xsl:call-template> + </xsl:variable> + + <xsl:element name="filename" namespace=""> + <xsl:element name="href" namespace=""> + <xsl:value-of select="$image.filename"/> + </xsl:element> + <xsl:element name="media-type" namespace=""> + <xsl:value-of select="$image.type"/> + </xsl:element> + </xsl:element> + + </xsl:if> +</xsl:template> + +<xsl:template match="callout" mode="enumerate-images"> + <!-- process arearefs to get name of callout bug image files --> + <xsl:if test="$callout.graphics != 0"> + <xsl:variable name="arearefs"> + <xsl:call-template name="callout.arearefs"> + <xsl:with-param name="arearefs" select="@arearefs"/> + </xsl:call-template> + </xsl:variable> + + <xsl:variable name="nodes" select="exsl:node-set($arearefs)"/> + + <xsl:for-each select="$nodes//*[@src]"> + <xsl:variable name="image.filename" select="@src"/> + + <xsl:variable name="image.type"> + <xsl:call-template name="graphic.format.content-type"> + <xsl:with-param name="format" select="translate( + substring-after($callout.graphics.extension,'.'), + &lowercase;, &uppercase;)"/> + </xsl:call-template> + </xsl:variable> + + <xsl:element name="filename" namespace=""> + <xsl:element name="href" namespace=""> + <xsl:value-of select="$image.filename"/> + </xsl:element> + <xsl:element name="media-type" namespace=""> + <xsl:value-of select="$image.type"/> + </xsl:element> + </xsl:element> + </xsl:for-each> + + </xsl:if> +</xsl:template> + <!-- ======================================================== --> <!-- NCX templates are for backwards compatibility with EPUB2 --> <!-- ======================================================== --> @@ -1891,6 +1981,50 @@ </xsl:choose> </xsl:template> +<xsl:template name="list.of.titles"> + <xsl:param name="toc-context" select="."/> + <xsl:param name="titles" select="'table'"/> + <xsl:param name="nodes" select=".//table"/> + + <xsl:variable name="epub.type"> + <xsl:choose> + <xsl:when test="$titles='table'">lot</xsl:when> + <xsl:when test="$titles='figure'">loi</xsl:when> + <xsl:when test="$titles='equation'">loi</xsl:when> + <xsl:when test="$titles='example'">loi</xsl:when> + <xsl:when test="$titles='procedure'">loi</xsl:when> + <xsl:otherwise>loi</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:if test="$nodes"> + <div class="list-of-{$titles}s"> + <nav epub:type="{$epub.type}"> + <h4 class="toc-title"> + <xsl:call-template name="gentext"> + <xsl:with-param name="key"> + <xsl:choose> + <xsl:when test="$titles='table'">ListofTables</xsl:when> + <xsl:when test="$titles='figure'">ListofFigures</xsl:when> + <xsl:when test="$titles='equation'">ListofEquations</xsl:when> + <xsl:when test="$titles='example'">ListofExamples</xsl:when> + <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when> + <xsl:otherwise>ListofUnknown</xsl:otherwise> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </h4> + + <xsl:element name="{$toc.list.type}"> + <xsl:apply-templates select="$nodes" mode="toc"> + <xsl:with-param name="toc-context" select="$toc-context"/> + </xsl:apply-templates> + </xsl:element> + </nav> + </div> + </xsl:if> +</xsl:template> + <!-- EPUB3: add hidden="" for sections below toc.section.depth --> <xsl:template name="subtoc"> <xsl:param name="toc-context" select="."/> @@ -1991,12 +2125,18 @@ </xsl:element> </xsl:template> +<!-- Inserted when a title is blank to avoid epubcheck error --> +<xsl:param name="toc.entry.default.text"> </xsl:param> + <!-- EPUB3: either <a> or <span>, but not both --> <xsl:template name="toc.line"> <xsl:param name="toc-context" select="."/> <xsl:param name="depth" select="1"/> <xsl:param name="depth.from.context" select="8"/> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> <a> <xsl:attribute name="href"> @@ -2018,8 +2158,109 @@ </xsl:if> </xsl:if> - <xsl:apply-templates select="." mode="title.markup"/> + <xsl:choose> + <xsl:when test="string-length(normalize-space($title)) != 0"> + <xsl:copy-of select="$title"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$toc.entry.default.text"/> + </xsl:otherwise> + </xsl:choose> </a> </xsl:template> +<!-- Make sure all text is inside the <a> element for epub3 --> +<xsl:template match="figure|table|example|equation|procedure" mode="toc"> + <xsl:param name="toc-context" select="."/> + + <xsl:element name="{$toc.listitem.type}"> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="toc-context" select="$toc-context"/> + </xsl:call-template> + </xsl:attribute> + <xsl:variable name="label"> + <xsl:apply-templates select="." mode="label.markup"/> + </xsl:variable> + <xsl:copy-of select="$label"/> + <xsl:if test="$label != ''"> + <xsl:value-of select="$autotoc.label.separator"/> + </xsl:if> + <xsl:apply-templates select="." mode="titleabbrev.markup"/> + </a> + </xsl:element> +</xsl:template> + +<!-- Remove spans from refentry TOC lines for epub3check --> +<xsl:template match="refentry" mode="toc"> + <xsl:param name="toc-context" select="."/> + + <xsl:variable name="refmeta" select=".//refmeta"/> + <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/> + <xsl:variable name="refnamediv" select=".//refnamediv"/> + <xsl:variable name="refname" select="$refnamediv//refname"/> + <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/> + <xsl:variable name="title"> + <xsl:choose> + <xsl:when test="$refentrytitle"> + <xsl:apply-templates select="$refentrytitle[1]" mode="titleabbrev.markup"/> + </xsl:when> + <xsl:when test="$refdesc"> + <xsl:apply-templates select="$refdesc" mode="titleabbrev.markup"/> + </xsl:when> + <xsl:when test="$refname"> + <xsl:apply-templates select="$refname[1]" mode="titleabbrev.markup"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml"> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="toc-context" select="$toc-context"/> + </xsl:call-template> + </xsl:attribute> + <xsl:copy-of select="$title"/> + <xsl:if test="$annotate.toc != 0"> + <!-- * DocBook 5 says inlinemediaobject (among other things) --> + <!-- * is allowed in refpurpose; so we need to run --> + <!-- * apply-templates on refpurpose here, instead of value-of --> + <xsl:apply-templates select="refnamediv/refpurpose" mode="title.markup"> + <xsl:with-param name="allow-anchors" select="0"/> + </xsl:apply-templates> + </xsl:if> + </a> + </xsl:element> +</xsl:template> + +<!-- Copy these here so relative document() open gets the correct css source --> +<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:call-template name="generate.css.file"> + <xsl:with-param name="src" select="$docbook.css.source"/> + <xsl:with-param name="css.node" select="$css.node"/> + </xsl:call-template> + </xsl:if> +</xsl:template> + +<xsl:template name="generate.custom.css.file"> + <xsl:if test="$custom.css.source != '' and + $generate.css.header = 0"> + <!-- Select custom file relative to document --> + <xsl:variable name="css.node" select="document($custom.css.source,.)/*[1]"/> + + <xsl:call-template name="generate.css.file"> + <xsl:with-param name="src" select="$custom.css.source"/> + <xsl:with-param name="css.node" select="$css.node"/> + </xsl:call-template> + </xsl:if> +</xsl:template> + </xsl:stylesheet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-01-30 23:58:15
|
Revision: 9210 http://docbook.svn.sourceforge.net/docbook/?rev=9210&view=rev Author: bobstayton Date: 2012-01-30 23:58:09 +0000 (Mon, 30 Jan 2012) Log Message: ----------- Just added a comment. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-30 23:54:48 UTC (rev 9209) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-30 23:58:09 UTC (rev 9210) @@ -2227,6 +2227,7 @@ <!-- * DocBook 5 says inlinemediaobject (among other things) --> <!-- * is allowed in refpurpose; so we need to run --> <!-- * apply-templates on refpurpose here, instead of value-of --> + <!-- Set allow-anchors=0 to avoid indexterms and other links --> <xsl:apply-templates select="refnamediv/refpurpose" mode="title.markup"> <xsl:with-param name="allow-anchors" select="0"/> </xsl:apply-templates> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-01-31 05:09:19
|
Revision: 9218 http://docbook.svn.sourceforge.net/docbook/?rev=9218&view=rev Author: bobstayton Date: 2012-01-31 05:09:13 +0000 (Tue, 31 Jan 2012) Log Message: ----------- Fix handling of enumerate-images while in DocBook namespace. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 04:28:23 UTC (rev 9217) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 05:09:13 UTC (rev 9218) @@ -1359,14 +1359,14 @@ <xsl:when test="$exsl.node.set.available != 0 and function-available('set:distinct')"> <xsl:for-each select="set:distinct(exsl:node-set($imagelist)/*)"> - <xsl:if test="string-length(href) != 0"> + <xsl:if test="string-length(tmp-href) != 0"> <!-- convert the child elements to attributes --> <xsl:element name="item" namespace="{$opf.namespace}"> <xsl:attribute name="id"> <xsl:value-of select="generate-id()"/> </xsl:attribute> <xsl:attribute name="href"> - <xsl:value-of select="href"/> + <xsl:value-of select="tmp-href"/> </xsl:attribute> <xsl:attribute name="media-type"> <xsl:value-of select="media-type"/> @@ -1381,7 +1381,12 @@ <xsl:attribute name="id"> <xsl:value-of select="generate-id()"/> </xsl:attribute> - <xsl:copy-of select="@*"/> + <xsl:attribute name="href"> + <xsl:value-of select="tmp-href"/> + </xsl:attribute> + <xsl:attribute name="media-type"> + <xsl:value-of select="media-type"/> + </xsl:attribute> </xsl:element> </xsl:for-each> </xsl:when> @@ -1445,8 +1450,8 @@ </xsl:call-template> </xsl:variable> - <xsl:element name="filename" namespace=""> - <xsl:element name="href" namespace=""> + <xsl:element name="tmp-filename" namespace=""> + <xsl:element name="tmp-href" namespace=""> <xsl:value-of select="$image.filename"/> </xsl:element> <xsl:element name="media-type" namespace=""> @@ -1472,8 +1477,8 @@ </xsl:call-template> </xsl:variable> - <xsl:element name="filename" namespace=""> - <xsl:element name="href" namespace=""> + <xsl:element name="tmp-filename" namespace=""> + <xsl:element name="tmp-href" namespace=""> <xsl:value-of select="$image.filename"/> </xsl:element> <xsl:element name="media-type" namespace=""> @@ -1506,8 +1511,8 @@ </xsl:call-template> </xsl:variable> - <xsl:element name="filename" namespace=""> - <xsl:element name="href" namespace=""> + <xsl:element name="tmp-filename" namespace=""> + <xsl:element name="tmp-href" namespace=""> <xsl:value-of select="$image.filename"/> </xsl:element> <xsl:element name="media-type" namespace=""> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-01-31 05:40:02
|
Revision: 9220 http://docbook.svn.sourceforge.net/docbook/?rev=9220&view=rev Author: bobstayton Date: 2012-01-31 05:39:56 +0000 (Tue, 31 Jan 2012) Log Message: ----------- Fix handling of refpurpose in TOC entries for refentry. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 05:33:40 UTC (rev 9219) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 05:39:56 UTC (rev 9220) @@ -2233,9 +2233,9 @@ <!-- * is allowed in refpurpose; so we need to run --> <!-- * apply-templates on refpurpose here, instead of value-of --> <!-- Set allow-anchors=0 to avoid indexterms and other links --> - <xsl:apply-templates select="refnamediv/refpurpose" mode="title.markup"> - <xsl:with-param name="allow-anchors" select="0"/> - </xsl:apply-templates> + < + <xsl:text> - </xsl:text> + <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/> </xsl:if> </a> </xsl:element> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-01-31 06:11:21
|
Revision: 9221 http://docbook.svn.sourceforge.net/docbook/?rev=9221&view=rev Author: bobstayton Date: 2012-01-31 06:11:15 +0000 (Tue, 31 Jan 2012) Log Message: ----------- Fix typo Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 05:39:56 UTC (rev 9220) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-01-31 06:11:15 UTC (rev 9221) @@ -2233,7 +2233,6 @@ <!-- * is allowed in refpurpose; so we need to run --> <!-- * apply-templates on refpurpose here, instead of value-of --> <!-- Set allow-anchors=0 to avoid indexterms and other links --> - < <xsl:text> - </xsl:text> <xsl:apply-templates select="refnamediv/refpurpose" mode="no.anchor.mode"/> </xsl:if> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-02-09 03:52:44
|
Revision: 9231 http://docbook.svn.sourceforge.net/docbook/?rev=9231&view=rev Author: bobstayton Date: 2012-02-09 03:52:38 +0000 (Thu, 09 Feb 2012) Log Message: ----------- Add article to generate.toc so an article can become an ebook. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-08 06:03:39 UTC (rev 9230) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-09 03:52:38 UTC (rev 9231) @@ -45,6 +45,7 @@ <xsl:param name="toc.section.depth" select="2"/> <xsl:param name="generate.toc"> book toc,title,figure,table,example,equation +article toc,title,figure,table,example,equation </xsl:param> <xsl:param name="generate.manifest" select="0"/> <xsl:param name="manifest.in.base.dir" select="1"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-02-09 04:11:51
|
Revision: 9232 http://docbook.svn.sourceforge.net/docbook/?rev=9232&view=rev Author: bobstayton Date: 2012-02-09 04:11:45 +0000 (Thu, 09 Feb 2012) Log Message: ----------- Fix nav element for case of empty TOC (no chapters or sections). Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-09 03:52:38 UTC (rev 9231) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-09 04:11:45 UTC (rev 9232) @@ -1954,32 +1954,32 @@ <xsl:otherwise> <xsl:choose> <xsl:when test="$qanda.in.toc != 0"> - <xsl:if test="$nodes.plus"> - <div class="toc"> - <xsl:copy-of select="$toc.title"/> - <nav epub:type="toc"> - <xsl:element name="{$toc.list.type}"> + <div class="toc"> + <xsl:copy-of select="$toc.title"/> + <nav epub:type="toc"> + <xsl:element name="{$toc.list.type}"> + <xsl:if test="$nodes.plus"> <xsl:apply-templates select="$nodes.plus" mode="toc"> <xsl:with-param name="toc-context" select="$toc-context"/> </xsl:apply-templates> - </xsl:element> - </nav> - </div> - </xsl:if> + </xsl:if> + </xsl:element> + </nav> + </div> </xsl:when> <xsl:otherwise> - <xsl:if test="$nodes"> - <div class="toc"> - <xsl:copy-of select="$toc.title"/> - <nav epub:type="toc"> - <xsl:element name="{$toc.list.type}"> + <div class="toc"> + <xsl:copy-of select="$toc.title"/> + <nav epub:type="toc"> + <xsl:element name="{$toc.list.type}"> + <xsl:if test="$nodes"> <xsl:apply-templates select="$nodes" mode="toc"> <xsl:with-param name="toc-context" select="$toc-context"/> </xsl:apply-templates> - </xsl:element> - </nav> - </div> - </xsl:if> + </xsl:if> + </xsl:element> + </nav> + </div> </xsl:otherwise> </xsl:choose> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-02-09 06:13:43
|
Revision: 9233 http://docbook.svn.sourceforge.net/docbook/?rev=9233&view=rev Author: bobstayton Date: 2012-02-09 06:13:37 +0000 (Thu, 09 Feb 2012) Log Message: ----------- In svg.properties template, handle the case where there is no next.chunk. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-09 04:11:45 UTC (rev 9232) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-02-09 06:13:37 UTC (rev 9233) @@ -1290,22 +1290,37 @@ <!-- get the element corresponding to the next chunk --> <xsl:variable name="next.chunk" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/> - <xsl:variable name="this.imagedata" - select="$this.chunk//imagedata"/> - <xsl:variable name="before.next" - select="$next.chunk/preceding::imagedata"/> - - <!-- select for an SVG imagedata in the intersection of them --> - <xsl:variable name="intersection" - select="$this.imagedata[count(.|$before.next) = count($before.next)]"/> - - <xsl:variable name="svg.imagedata" - select="$intersection[contains( - substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> - - <xsl:if test="count($svg.imagedata) != 0"> - <xsl:text>svg</xsl:text> - </xsl:if> + <xsl:choose> + <xsl:when test="$next.chunk"> + <xsl:variable name="this.imagedata" + select="$this.chunk//imagedata"/> + <xsl:variable name="before.next" + select="$next.chunk/preceding::imagedata"/> + + <!-- select for an SVG imagedata in the intersection of them --> + <xsl:variable name="intersection" + select="$this.imagedata[count(.|$before.next) = count($before.next)]"/> + + <xsl:variable name="svg.imagedata" + select="$intersection[contains( + substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> + + <xsl:if test="count($svg.imagedata) != 0"> + <xsl:text>svg</xsl:text> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="this.imagedata" + select="$this.chunk//imagedata"/> + <xsl:variable name="svg.imagedata" + select="$this.imagedata[contains( + substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> + <xsl:if test="count($svg.imagedata) != 0"> + <xsl:text>svg</xsl:text> + </xsl:if> + + </xsl:otherwise> + </xsl:choose> </xsl:template> <xsl:template name="mathml.property"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-04-30 17:38:55
|
Revision: 9310 http://docbook.svn.sourceforge.net/docbook/?rev=9310&view=rev Author: bobstayton Date: 2012-04-30 17:38:48 +0000 (Mon, 30 Apr 2012) Log Message: ----------- Process <co> elements in mode="enumerate-images" also. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-04-30 13:10:36 UTC (rev 9309) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-04-30 17:38:48 UTC (rev 9310) @@ -1593,6 +1593,40 @@ </xsl:if> </xsl:template> +<xsl:template match="co" mode="enumerate-images"> + <!-- process co to get name of callout bug image file --> + <xsl:if test="$callout.graphics != 0"> + <xsl:variable name="result"> + <xsl:apply-templates select="." mode="callout-bug"/> + </xsl:variable> + + <xsl:variable name="nodes" select="exsl:node-set($result)"/> + + <xsl:for-each select="$nodes//*[@src]"> + <xsl:variable name="image.filename" select="@src"/> + + <xsl:variable name="image.type"> + <xsl:call-template name="graphic.format.content-type"> + <xsl:with-param name="format" select="translate( + substring-after($callout.graphics.extension,'.'), + &lowercase;, &uppercase;)"/> + </xsl:call-template> + </xsl:variable> + + <xsl:element name="tmp-filename" namespace=""> + <xsl:element name="tmp-href" namespace=""> + <xsl:value-of select="$image.filename"/> + </xsl:element> + <xsl:element name="media-type" namespace=""> + <xsl:value-of select="$image.type"/> + </xsl:element> + </xsl:element> + </xsl:for-each> + + </xsl:if> + +</xsl:template> + <!-- ======================================================== --> <!-- NCX templates are for backwards compatibility with EPUB2 --> <!-- ======================================================== --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-05-01 06:22:40
|
Revision: 9311 http://docbook.svn.sourceforge.net/docbook/?rev=9311&view=rev Author: bobstayton Date: 2012-05-01 06:22:34 +0000 (Tue, 01 May 2012) Log Message: ----------- Add support for <meta name="cover"> to support conversion with KindleGen. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-04-30 17:38:48 UTC (rev 9310) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-05-01 06:22:34 UTC (rev 9311) @@ -149,6 +149,8 @@ <xsl:param name="epub.mimetype.pathname" select="concat($epub.package.dir, $epub.mimetype.filename)"/> +<xsl:param name="kindle.extensions" select="0"/> + <!--==============================================================--> <!-- Internal variables used for computing certain metadata --> <!--==============================================================--> @@ -298,6 +300,7 @@ <xsl:call-template name="metadata.title"/> <xsl:call-template name="metadata.language"/> <xsl:call-template name="metadata.modified"/> + <xsl:call-template name="metadata.cover"/> <xsl:call-template name="metadata.other.info"/> </xsl:element> @@ -377,9 +380,11 @@ <xsl:if test="$epub.include.metadata.dc.elements != 0"> <dc:language> - <xsl:attribute name="id"> - <xsl:value-of select="$epub.dc.language.id"/> - </xsl:attribute> + <xsl:if test="$kindle.extensions = 0"> + <xsl:attribute name="id"> + <xsl:value-of select="$epub.dc.language.id"/> + </xsl:attribute> + </xsl:if> <xsl:value-of select="$lang"/> </dc:language> </xsl:if> @@ -433,6 +438,22 @@ <xsl:value-of select="concat(substring($date,1,19), 'Z')"/> </xsl:template> +<!-- This cover meta element used by kindlegen, at least --> +<xsl:template name="metadata.cover"> + <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/> + <xsl:variable name="cover.image" + select="$info//mediaobject[@role='cover' or ancestor::cover]"/> + + <xsl:if test="$cover.image"> + <xsl:element name="meta" namespace="{$opf.namespace}"> + <xsl:attribute name="content"> + <xsl:value-of select="$epub.cover.image.id"/> + </xsl:attribute> + <xsl:attribute name="name">cover</xsl:attribute> + </xsl:element> + </xsl:if> +</xsl:template> + <xsl:template name="metadata.other.info"> <!-- Take info relative to selected root element --> <xsl:variable name="info" select="./*[contains(local-name(.), 'info')][1]"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-05-06 15:49:53
|
Revision: 9332 http://docbook.svn.sourceforge.net/docbook/?rev=9332&view=rev Author: bobstayton Date: 2012-05-06 15:49:46 +0000 (Sun, 06 May 2012) Log Message: ----------- Handle case where para html.stylesheet has a space-separated list. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-05-06 06:58:58 UTC (rev 9331) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-05-06 15:49:46 UTC (rev 9332) @@ -1102,13 +1102,9 @@ <xsl:template name="manifest.css"> <xsl:if test="$html.stylesheet != ''"> - <xsl:element namespace="{$opf.namespace}" name="item"> - <xsl:attribute name="media-type">text/css</xsl:attribute> - <xsl:attribute name="id">html-css</xsl:attribute> - <xsl:attribute name="href"> - <xsl:value-of select="$html.stylesheet"/> - </xsl:attribute> - </xsl:element> + <xsl:call-template name="css.item"> + <xsl:with-param name="stylesheets" select="$html.stylesheet"/> + </xsl:call-template> </xsl:if> <xsl:if test="string-length($docbook.css.source) != 0"> <xsl:variable name="dfilename"> @@ -1140,6 +1136,52 @@ </xsl:if> </xsl:template> +<xsl:template name="css.item"> + <xsl:param name="stylesheets" select="''"/> + <xsl:param name="count" select="1"/> + + <xsl:choose> + <xsl:when test="contains($stylesheets, ' ')"> + <xsl:variable name="css.filename" select="substring-before($stylesheets, ' ')"/> + <xsl:if test="$css.filename != ''"> + <xsl:element namespace="{$opf.namespace}" name="item"> + <xsl:attribute name="media-type">text/css</xsl:attribute> + <xsl:attribute name="id"> + <xsl:text>html-css</xsl:text> + <xsl:if test="$count > 1"> + <xsl:value-of select="$count"/> + </xsl:if> + </xsl:attribute> + <xsl:attribute name="href"> + <xsl:value-of select="$css.filename"/> + </xsl:attribute> + </xsl:element> + </xsl:if> + + <xsl:call-template name="css.item"> + <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/> + <xsl:with-param name="count" select="$count + 1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$stylesheets != ''"> + <xsl:element namespace="{$opf.namespace}" name="item"> + <xsl:attribute name="media-type">text/css</xsl:attribute> + <xsl:attribute name="id"> + <xsl:text>html-css</xsl:text> + <xsl:if test="$count > 1"> + <xsl:value-of select="$count"/> + </xsl:if> + </xsl:attribute> + <xsl:attribute name="href"> + <xsl:value-of select="$stylesheets"/> + </xsl:attribute> + </xsl:element> + </xsl:if> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + <xsl:template name="manifest.ncx"> <xsl:element name="item" namespace="{$opf.namespace}"> <xsl:attribute name="id"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-10-22 22:43:37
|
Revision: 9645 http://docbook.svn.sourceforge.net/docbook/?rev=9645&view=rev Author: bobstayton Date: 2012-10-22 22:43:30 +0000 (Mon, 22 Oct 2012) Log Message: ----------- Fix bug #3558068 where svg property was set on a chunk when it should not be because a mediaobject contained multiple imageobjects and the svg was not selected for epub output. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-10-22 21:44:26 UTC (rev 9644) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-10-22 22:43:30 UTC (rev 9645) @@ -1399,34 +1399,60 @@ <xsl:choose> <xsl:when test="$next.chunk"> <xsl:variable name="this.imagedata" - select="$this.chunk//imagedata"/> + select="$this.chunk//mediaobject"/> <xsl:variable name="before.next" - select="$next.chunk/preceding::imagedata"/> + select="$next.chunk/preceding::mediaobject"/> <!-- select for an SVG imagedata in the intersection of them --> - <xsl:variable name="intersection" + <xsl:variable name="mediaobject.set" select="$this.imagedata[count(.|$before.next) = count($before.next)]"/> + <xsl:variable name="svg.imagedata"> + <xsl:for-each select="$mediaobject.set"> + <xsl:variable name="olist" select="imageobject[not(@role = 'poster')] | + imageobjectco"/> + <xsl:variable name="mediaobject.index"> + <xsl:call-template name="select.mediaobject.index"> + <xsl:with-param name="olist" select="$olist"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="object" select="$olist[position() = $mediaobject.index]"/> + <xsl:if test="$object/imagedata[contains( + substring(@fileref, string-length(@fileref)-3,4), '.svg')]"> + <xsl:text>svg</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> - <xsl:variable name="svg.imagedata" - select="$intersection[contains( - substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> - - <xsl:if test="count($svg.imagedata) != 0"> + <xsl:if test="contains($svg.imagedata, 'svg')"> <xsl:text>svg</xsl:text> </xsl:if> </xsl:when> <xsl:otherwise> - <xsl:variable name="this.imagedata" - select="$this.chunk//imagedata"/> - <xsl:variable name="svg.imagedata" - select="$this.imagedata[contains( - substring(@fileref, string-length(@fileref)-3,4), '.svg')]"/> - <xsl:if test="count($svg.imagedata) != 0"> + <xsl:variable name="mediaobject.set" + select="$this.chunk//mediaobject"/> + <xsl:variable name="svg.imagedata"> + <xsl:for-each select="$mediaobject.set"> + <xsl:variable name="olist" select="imageobject[not(@role = 'poster')] | + imageobjectco"/> + <xsl:variable name="mediaobject.index"> + <xsl:call-template name="select.mediaobject.index"> + <xsl:with-param name="olist" select="$olist"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="object" select="$olist[position() = $mediaobject.index]"/> + <xsl:if test="$object/imagedata[contains( + substring(@fileref, string-length(@fileref)-3,4), '.svg')]"> + <xsl:text>svg</xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + + <xsl:if test="contains($svg.imagedata, 'svg')"> <xsl:text>svg</xsl:text> </xsl:if> - </xsl:otherwise> </xsl:choose> + </xsl:template> <xsl:template name="mathml.property"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2012-11-03 05:35:36
|
Revision: 9662 http://docbook.svn.sourceforge.net/docbook/?rev=9662&view=rev Author: bobstayton Date: 2012-11-03 05:35:28 +0000 (Sat, 03 Nov 2012) Log Message: ----------- date strings now checked for valid format. Fix bug #3484378 so navMap pushes first level children to top level so included in nav progress bar. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-11-03 04:50:51 UTC (rev 9661) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2012-11-03 05:35:28 UTC (rev 9662) @@ -640,31 +640,41 @@ YYYY, YYYY-MM or YYYY-MM-DD --> <xsl:template name="format.meta.date"> <xsl:param name="string" select="''"/> + <xsl:param name="node" select="."/> - <!-- FIXME: this needs further work, so just return the date string for now --> - <xsl:variable name="date"> + <!-- FIXME: this needs further work, so just check the + string format and return the date string for now --> + <xsl:variable name="normalized" + select="translate($string, '0123456789', '##########')"/> + + <xsl:variable name="date.ok"> <xsl:choose> - <xsl:when test="string-length($string) = 0"> - </xsl:when> - <xsl:otherwise> - <!-- construct a date one digit at a time until it fails to match format --> - <xsl:if test="contains('1234567890', substring($string,1,1))"> - <xsl:value-of select="substring($string,1,1)"/> - </xsl:if> - <xsl:if test="contains('1234567890', substring($string,2,1))"> - <xsl:value-of select="substring($string,2,1)"/> - </xsl:if> - <xsl:if test="contains('1234567890', substring($string,3,1))"> - <xsl:value-of select="substring($string,3,1)"/> - </xsl:if> - <xsl:if test="contains('1234567890', substring($string,4,1))"> - <xsl:value-of select="substring($string,4,1)"/> - </xsl:if> - <!-- FIXME: continue --> - </xsl:otherwise> + <xsl:when test="string-length($string) = 4 and + $normalized = '####'">1</xsl:when> + <xsl:when test="string-length($string) = 7 and + $normalized = '####-##'">1</xsl:when> + <xsl:when test="string-length($string) = 10 and + $normalized = '####-##-##'">1</xsl:when> + <xsl:when test="string-length($string) = 10 and + $normalized = '####-##-##'">1</xsl:when> + <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:variable> + <xsl:if test="$date.ok = 0"> + <xsl:message> + <xsl:text>WARNING: wrong metadata date format: '</xsl:text> + <xsl:value-of select="$string"/> + <xsl:text>' in element </xsl:text> + <xsl:value-of select="local-name($node/..)"/> + <xsl:text>/</xsl:text> + <xsl:value-of select="local-name($node)"/> + <xsl:text>. It must be in one of these forms: </xsl:text> + <xsl:text>YYYY, YYYY-MM, or YYYY-MM-DD.</xsl:text> + </xsl:message> + </xsl:if> + + <!-- return the string anyway --> <xsl:value-of select="$string"/> </xsl:template> @@ -1814,6 +1824,7 @@ <xsl:choose> <xsl:when test="$root.is.a.chunk != '0'"> <xsl:apply-templates select="/*" mode="ncx" /> + <xsl:apply-templates select="/*/*" mode="ncx" /> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="/*/*" mode="ncx" /> @@ -1924,7 +1935,11 @@ <xsl:value-of select="$href"/> </xsl:attribute> </xsl:element> - <xsl:apply-templates select="book[parent::set]|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv[title]|setindex|index" mode="ncx"/> + <xsl:if test="$depth != 0"> + <!-- Don't recurse on root element, but treat it as a single point so + the progress bar shows all top level children --> + <xsl:apply-templates select="book[parent::set]|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv[title]|setindex|index" mode="ncx"/> + </xsl:if> </xsl:element> </xsl:template> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2013-01-05 19:20:56
|
Revision: 9702 http://docbook.svn.sourceforge.net/docbook/?rev=9702&view=rev Author: bobstayton Date: 2013-01-05 19:20:49 +0000 (Sat, 05 Jan 2013) Log Message: ----------- Remove errant apostrophe. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2012-12-27 00:28:47 UTC (rev 9701) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2013-01-05 19:20:49 UTC (rev 9702) @@ -2060,7 +2060,7 @@ </xsl:call-template> </xsl:template> -<xsl:template name="mimetype">' +<xsl:template name="mimetype"> <xsl:call-template name="write.text.chunk"> <xsl:with-param name="filename" select="$epub.mimetype.pathname"/> <xsl:with-param name="content" select="$epub.mimetype.value"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2013-01-15 19:33:53
|
Revision: 9705 http://docbook.svn.sourceforge.net/docbook/?rev=9705&view=rev Author: bobstayton Date: 2013-01-15 19:33:47 +0000 (Tue, 15 Jan 2013) Log Message: ----------- Fixed bug #3600123 where OEBPS seemed to be hardwired and base.dir not fully respected. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2013-01-08 15:31:46 UTC (rev 9704) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2013-01-15 19:33:47 UTC (rev 9705) @@ -138,17 +138,17 @@ <xsl:param name="editor.property">contributor</xsl:param> <!-- Generate full output path --> -<xsl:param name="epub.package.dir" select="concat($base.dir, '../')"/> +<xsl:param name="epub.package.dir" select="concat($chunk.base.dir, '../')"/> <xsl:param name="epub.ncx.pathname" - select="concat($base.dir, $epub.ncx.filename)"/> + select="concat($chunk.base.dir, $epub.ncx.filename)"/> <xsl:param name="epub.container.pathname" select="concat($epub.package.dir, $epub.metainf.dir, $epub.container.filename)"/> <xsl:param name="epub.package.pathname" - select="concat($base.dir, $epub.package.filename)"/> + select="concat($chunk.base.dir, $epub.package.filename)"/> <xsl:param name="epub.cover.pathname" - select="concat($base.dir, $epub.cover.filename)"/> + select="concat($chunk.base.dir, $epub.cover.filename)"/> <xsl:param name="epub.mimetype.pathname" select="concat($epub.package.dir, $epub.mimetype.filename)"/> @@ -2030,6 +2030,12 @@ </xsl:template> <xsl:template name="container"> + <!-- The path in rootfile does not include all of base.dir, only the last part --> + <xsl:variable name="full-path-dir"> + <xsl:call-template name="filename-basename"> + <xsl:with-param name="filename" select="$chunk.base.dir"/> + </xsl:call-template> + </xsl:variable> <xsl:call-template name="write.chunk"> <xsl:with-param name="filename"> <xsl:value-of select="$epub.container.pathname" /> @@ -2048,7 +2054,7 @@ <xsl:element namespace="urn:oasis:names:tc:opendocument:xmlns:container" name="rootfile"> <xsl:attribute name="full-path"> <xsl:value-of - select="concat($epub.oebps.dir, '/', $epub.package.filename)"/> + select="concat($full-path-dir, $epub.package.filename)"/> </xsl:attribute> <xsl:attribute name="media-type"> <xsl:text>application/oebps-package+xml</xsl:text> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2013-03-08 18:15:04
|
Revision: 9729 http://docbook.svn.sourceforge.net/docbook/?rev=9729&view=rev Author: bobstayton Date: 2013-03-08 18:14:57 +0000 (Fri, 08 Mar 2013) Log Message: ----------- Add support for param img.src.path to image items in opf manifest. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2013-03-08 00:16:41 UTC (rev 9728) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2013-03-08 18:14:57 UTC (rev 9729) @@ -1237,12 +1237,20 @@ <xsl:variable name="object" select="$olist[position() = $object.index]"/> - <xsl:variable name="image.filename"> + <xsl:variable name="output_filename"> <xsl:call-template name="mediaobject.filename"> <xsl:with-param name="object" select="$object"/> </xsl:call-template> </xsl:variable> + <xsl:variable name="image.filename"> + <xsl:if test="$img.src.path != '' and + not(starts-with($output_filename, '/')) and + not(contains($output_filename, '://'))"> + <xsl:value-of select="$img.src.path"/> + </xsl:if> + <xsl:value-of select="$output_filename"/> + </xsl:variable> <xsl:variable name="image.extension"> <xsl:call-template name="filename-extension"> <xsl:with-param name="filename" select="$image.filename"/> @@ -1602,12 +1610,21 @@ <xsl:param name="object" select="."/> <xsl:if test="$object"> - <xsl:variable name="image.filename"> + <xsl:variable name="output_filename"> <xsl:call-template name="mediaobject.filename"> <xsl:with-param name="object" select="$object"/> </xsl:call-template> </xsl:variable> + <xsl:variable name="image.filename"> + <xsl:if test="$img.src.path != '' and + not(starts-with($output_filename, '/')) and + not(contains($output_filename, '://'))"> + <xsl:value-of select="$img.src.path"/> + </xsl:if> + <xsl:value-of select="$output_filename"/> + </xsl:variable> + <xsl:variable name="image.extension"> <xsl:call-template name="filename-extension"> <xsl:with-param name="filename" select="$image.filename"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2013-04-10 20:43:50
|
Revision: 9740 http://docbook.svn.sourceforge.net/docbook/?rev=9740&view=rev Author: bobstayton Date: 2013-04-10 20:43:43 +0000 (Wed, 10 Apr 2013) Log Message: ----------- Add the epub.base.dir param to use instead of base.dir for indicating the directory to contain OEBPS and other epub files. Change a few xsl:params with constant values to xsl:variables. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2013-04-05 23:21:57 UTC (rev 9739) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2013-04-10 20:43:43 UTC (rev 9740) @@ -49,7 +49,34 @@ </xsl:param> <xsl:param name="generate.manifest" select="0"/> <xsl:param name="manifest.in.base.dir" select="1"/> -<xsl:param name="base.dir" select="'OEBPS/'"/> +<!-- assemble base.dir from two epub params --> +<xsl:variable name="default.base.dir"> + <xsl:choose> + <xsl:when test="string-length($epub.base.dir) = 0"></xsl:when> + <!-- make sure to add trailing slash if omitted by user --> + <xsl:when test="substring($epub.base.dir, string-length($epub.base.dir), 1) = '/'"> + <xsl:value-of select="$epub.base.dir"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="concat($epub.base.dir, '/')"/> + </xsl:otherwise> + </xsl:choose> + <xsl:value-of select="$epub.oebps.dir"/> +</xsl:variable> + +<!-- This setup allows comparison to a base.dir set on the command line --> +<xsl:param name="base.dir" select="$default.base.dir"/> +<!-- This param only has a side effect of checking for base.dir usage --> +<xsl:param name="debug.base.dir"> + <xsl:if test="$base.dir != $default.base.dir"> + <xsl:message terminate="yes"> + <xsl:text>ERROR: for epub output, set the $epub.base.dir parameter </xsl:text> + <xsl:text>instead of $base.dir. Exiting. </xsl:text> + <xsl:text>Set $epub.base.dir to the directory that is to contain OEBPS.</xsl:text> + </xsl:message> + </xsl:if> +</xsl:param> + <xsl:param name="index.links.to.section" select="0"/> <!-- Epub does not yet support external links --> @@ -100,11 +127,12 @@ <xsl:param name="epub.vocabulary.profile.package">http://www.idpf.org/epub/30/profile/package/</xsl:param> <xsl:param name="epub.output.epub.types" select="1"/> +<xsl:param name="epub.base.dir" select="''"/> <xsl:param name="epub.oebps.dir" select="'OEBPS'"/> -<xsl:param name="epub.metainf.dir" select="'META-INF/'"/> +<xsl:variable name="epub.metainf.dir" select="'META-INF/'"/> <xsl:param name="epub.ncx.filename" select="'toc.ncx'"/> -<xsl:param name="epub.mimetype.filename" select="'mimetype'"/> -<xsl:param name="epub.mimetype.value" select="'application/epub+zip'"/> +<xsl:variable name="epub.mimetype.filename" select="'mimetype'"/> +<xsl:variable name="epub.mimetype.value" select="'application/epub+zip'"/> <xsl:param name="epub.container.filename" select="'container.xml'"/> <xsl:param name="epub.package.filename" select="'package.opf'"/> <xsl:param name="epub.cover.filename" select="concat('cover', $html.ext)"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2013-04-11 22:09:40
|
Revision: 9742 http://docbook.svn.sourceforge.net/docbook/?rev=9742&view=rev Author: bobstayton Date: 2013-04-11 22:09:33 +0000 (Thu, 11 Apr 2013) Log Message: ----------- Imlement base.dir/OEBPS using internal chunk.base.dir instead of new param epub.base.dir. Modified Paths: -------------- trunk/xsl/epub3/epub3-element-mods.xsl Modified: trunk/xsl/epub3/epub3-element-mods.xsl =================================================================== --- trunk/xsl/epub3/epub3-element-mods.xsl 2013-04-11 21:57:59 UTC (rev 9741) +++ trunk/xsl/epub3/epub3-element-mods.xsl 2013-04-11 22:09:33 UTC (rev 9742) @@ -49,33 +49,32 @@ </xsl:param> <xsl:param name="generate.manifest" select="0"/> <xsl:param name="manifest.in.base.dir" select="1"/> -<!-- assemble base.dir from two epub params --> -<xsl:variable name="default.base.dir"> + +<!-- HTML chunk output goes to $base.dir/OEPBS --> +<xsl:variable name="chunk.base.dir"> + <xsl:if test="contains($base.dir, $epub.oebps.dir)"> + <xsl:message terminate="yes"> + <xsl:text>ERROR: the $base.dir param must not include the </xsl:text> + <xsl:value-of select="$epub.oebps.dir"/> + <xsl:text> directory in its path. Exiting.</xsl:text> + </xsl:message> + </xsl:if> <xsl:choose> - <xsl:when test="string-length($epub.base.dir) = 0"></xsl:when> + <xsl:when test="string-length($base.dir) = 0"></xsl:when> <!-- make sure to add trailing slash if omitted by user --> - <xsl:when test="substring($epub.base.dir, string-length($epub.base.dir), 1) = '/'"> - <xsl:value-of select="$epub.base.dir"/> + <xsl:when test="substring($base.dir, string-length($base.dir), 1) = '/'"> + <xsl:value-of select="$base.dir"/> </xsl:when> <xsl:otherwise> - <xsl:value-of select="concat($epub.base.dir, '/')"/> + <xsl:value-of select="concat($base.dir, '/')"/> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$epub.oebps.dir"/> + <xsl:if test="substring($epub.oebps.dir, string-length($epub.oebps.dir), 1) != '/'"> + <xsl:text>/</xsl:text> + </xsl:if> </xsl:variable> -<!-- This setup allows comparison to a base.dir set on the command line --> -<xsl:param name="base.dir" select="$default.base.dir"/> -<!-- This param only has a side effect of checking for base.dir usage --> -<xsl:param name="debug.base.dir"> - <xsl:if test="$base.dir != $default.base.dir"> - <xsl:message terminate="yes"> - <xsl:text>ERROR: for epub output, set the $epub.base.dir parameter </xsl:text> - <xsl:text>instead of $base.dir. Exiting. </xsl:text> - <xsl:text>Set $epub.base.dir to the directory that is to contain OEBPS.</xsl:text> - </xsl:message> - </xsl:if> -</xsl:param> <xsl:param name="index.links.to.section" select="0"/> @@ -127,7 +126,6 @@ <xsl:param name="epub.vocabulary.profile.package">http://www.idpf.org/epub/30/profile/package/</xsl:param> <xsl:param name="epub.output.epub.types" select="1"/> -<xsl:param name="epub.base.dir" select="''"/> <xsl:param name="epub.oebps.dir" select="'OEBPS'"/> <xsl:variable name="epub.metainf.dir" select="'META-INF/'"/> <xsl:param name="epub.ncx.filename" select="'toc.ncx'"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |