%PDF- %PDF-
Direktori : /proc/thread-self/root/usr/share/calibre/templates/ |
Current File : //proc/thread-self/root/usr/share/calibre/templates/lrf.xsl |
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:c="calibre" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata" extension-element-prefixes="c" xsl:version = "1.1" > <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <package xmlns="http://www.idpf.org/2007/opf" version="2.0"> <metadata> <xsl:call-template name="make-metadata"/> </metadata> <manifest> <xsl:call-template name="make-manifest"/> </manifest> <spine toc="ncx"> <xsl:call-template name="make-spine"/> </spine> </package> <xsl:call-template name="make-ncx"/> <xsl:call-template name="make-css"/> <xsl:for-each select="//Page"> <xsl:call-template name="make-page"/> </xsl:for-each> </xsl:template> <xsl:template name="make-css"> <xsl:for-each select="//TextStyle|//BlockStyle"> <c:styles/> </xsl:for-each> </xsl:template> <xsl:template name="make-page"> <xsl:variable name="pid" select="@objid"/> <xsl:document href="{$pid}.xhtml" method="xml" indent="yes"> <html> <head> <title><xsl:value-of select="//Title"/></title> <link rel="stylesheet" type="text/css" href="styles.css"/> </head> <body class="body"> <xsl:apply-templates /> </body> </html> </xsl:document> </xsl:template> <xsl:template match="RuledLine"> <c:ruled-line/> </xsl:template> <xsl:template match="TextBlock"> <c:text-block/> </xsl:template> <xsl:template match="ImageBlock"> <c:image-block/> </xsl:template> <xsl:template match="Canvas"> <c:canvas/> </xsl:template> <xsl:template name="make-metadata"> <xsl:for-each select='//BookInformation/Info/BookInfo'> <xsl:apply-templates select="Title"/> <xsl:apply-templates select="Author"/> <xsl:apply-templates select="Publisher"/> <xsl:apply-templates select="Category|Classification"/> </xsl:for-each> <xsl:for-each select='//BookInformation/Info/DocInfo'> <xsl:apply-templates select="Language"/> <xsl:apply-templates select="Producer"/> </xsl:for-each> </xsl:template> <xsl:template match="Title"> <xsl:element name="dc:title"> <xsl:if test="@reading and @reading != ''"> <xsl:attribute name="opf:file-as"><xsl:value-of select="@reading"/></xsl:attribute> </xsl:if> <xsl:value-of select="."/> </xsl:element> </xsl:template> <xsl:template match="Author"> <xsl:element name="dc:creator"> <xsl:attribute name="opf:role">aut</xsl:attribute> <xsl:if test="@reading and @reading != ''"> <xsl:attribute name="opf:file-as"><xsl:value-of select="@reading"/></xsl:attribute> </xsl:if> <xsl:value-of select="."/> </xsl:element> </xsl:template> <xsl:template match="Publisher"> <xsl:element name="dc:publisher"> <xsl:if test="@reading and @reading != ''"> <xsl:attribute name="opf:file-as"><xsl:value-of select="@reading"/></xsl:attribute> </xsl:if> <xsl:value-of select="."/> </xsl:element> </xsl:template> <xsl:template match="Producer"> <xsl:element name="dc:creator"> <xsl:attribute name="opf:role">bkp</xsl:attribute> <xsl:if test="@reading and @reading != ''"> <xsl:attribute name="opf:file-as"><xsl:value-of select="@reading"/></xsl:attribute> </xsl:if> <xsl:value-of select="."/> </xsl:element> </xsl:template> <xsl:template match="Language"> <xsl:element name="dc:language"> <xsl:value-of select="."/> </xsl:element> </xsl:template> <xsl:template match="Category|Classification"> <xsl:if test=".!=''"> <xsl:element name="dc:subject"> <xsl:value-of select="."/> </xsl:element> </xsl:if> </xsl:template> <xsl:template name="make-manifest"> <xsl:for-each select='//Page'> <xsl:element name="opf:item"> <xsl:attribute name="id"><xsl:value-of select="@objid"/></xsl:attribute> <xsl:attribute name="media-type"><xsl:text>application/xhtml+xml</xsl:text></xsl:attribute> <xsl:attribute name="href"><xsl:value-of select="@objid"/><xsl:text>.xhtml</xsl:text></xsl:attribute> </xsl:element> </xsl:for-each> <xsl:for-each select="//ImageStream"> <xsl:element name="opf:item"> <xsl:attribute name="id"><xsl:value-of select="@objid"/></xsl:attribute> <xsl:attribute name="media-type"><c:media-type/></xsl:attribute> <xsl:attribute name="href"><xsl:value-of select="@file"/></xsl:attribute> </xsl:element> </xsl:for-each> <xsl:for-each select="//RegistFont"> <xsl:element name="opf:item"> <xsl:attribute name="id"><xsl:value-of select="@objid"/></xsl:attribute> <xsl:attribute name="media-type"><c:media-type/></xsl:attribute> <xsl:attribute name="href"><xsl:value-of select="@file"/></xsl:attribute> </xsl:element> </xsl:for-each> <opf:item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" /> <opf:item id="styles" href="styles.css" media-type="text/css" /> </xsl:template> <xsl:template name="make-spine"> <xsl:for-each select='//Page'> <xsl:element name="opf:itemref"> <xsl:attribute name="idref"><xsl:value-of select="@objid"/></xsl:attribute> </xsl:element> </xsl:for-each> </xsl:template> <xsl:template match="*"> <xsl:message> <xsl:text>no match for element: "</xsl:text> <xsl:value-of select="name(.)"/> <xsl:text>" 
</xsl:text> </xsl:message> <xsl:apply-templates/> </xsl:template> <xsl:template name="make-ncx"> <xsl:document href="toc.ncx" method="xml" indent="yes"> <ncx version="2005-1" xmlns="http://www.daisy.org/z3986/2005/ncx/" xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata" > <head> <meta name="dtb:uid" content="uid"/> <meta name="dtb:depth" content="1"/> <meta name="dtb:generator" content="calibre"/> <meta name="dtb:totalPageCount" content="0"/> <meta name="dtb:maxPageNumber" content="0"/> </head> <docTitle><text>Table of Contents</text></docTitle> <navMap> <xsl:for-each select="//TOC/TocLabel"> <xsl:element name="navPoint"> <xsl:attribute name="id"><xsl:value-of select="count(preceding-sibling::*)"/></xsl:attribute> <xsl:attribute name="playOrder"><xsl:value-of select="count(preceding-sibling::*)+1"/></xsl:attribute> <navLabel><text><xsl:value-of select="."/></text></navLabel> <xsl:element name="content"> <xsl:attribute name="src"> <xsl:value-of select="@refpage"/>.xhtml#<xsl:value-of select="@refobj"/> </xsl:attribute> </xsl:element> </xsl:element> </xsl:for-each> </navMap> </ncx> </xsl:document> </xsl:template> </xsl:stylesheet>