import subprocess
from StringIO import StringIO
from copy import deepcopy
+from mimetypes import guess_type
+
from lxml import etree
import zipfile
from tempfile import mkdtemp, NamedTemporaryFile
return output_html, toc, chars
-def transform(wldoc, verbose=False,
- style=None, html_toc=False,
- sample=None, cover=None, flags=None):
+def transform(wldoc, verbose=False, style=None, html_toc=False,
+ sample=None, cover=None, flags=None, ilustr_path=''):
""" produces a EPUB file
sample=n: generate sample e-book (with at least n paragraphs)
output_file = NamedTemporaryFile(prefix='librarian', suffix='.epub', delete=False)
zip = zipfile.ZipFile(output_file, 'w', zipfile.ZIP_DEFLATED)
+ if os.path.isdir(ilustr_path):
+ for i, filename in enumerate(os.listdir(ilustr_path)):
+ file_path = os.path.join(ilustr_path, filename)
+ zip.write(file_path, os.path.join('OPS', filename))
+ image_id = 'image%s' % i
+ manifest.append(etree.fromstring(
+ '<item id="%s" href="%s" media-type="%s" />' % (image_id, filename, guess_type(file_path)[0])))
+
# write static elements
mime = zipfile.ZipInfo()
mime.filename = 'mimetype'
</div>
</xsl:template>
+ <xsl:template match="ilustr" mode="inline">
+ <xsl:apply-templates select="." />
+ </xsl:template>
+
+ <xsl:template match="ilustr">
+ <img>
+ <xsl:attribute name="src">
+ <xsl:value-of select="@src" />
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alt" />
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="@alt" />
+ </xsl:attribute>
+ </img>
+ </xsl:template>
+
<!--===========================================================-->
<!-- Tagi PARAGRAFOWE -->
<!--===========================================================-->
def transform(wldoc, verbose=False,
- sample=None, cover=None, flags=None):
+ sample=None, cover=None, flags=None, ilustr_path=None):
""" produces a MOBI file
wldoc: a WLDocument
if not flags:
flags = []
flags = list(flags) + ['without-fonts']
- epub = document.as_epub(verbose=verbose, sample=sample, html_toc=True,
- flags=flags, style=get_resource('mobi/style.css'))
+ epub = document.as_epub(
+ verbose=verbose, sample=sample, html_toc=True,
+ flags=flags, style=get_resource('mobi/style.css'), ilustr_path=ilustr_path)
if verbose:
kwargs = {}
parse_creator(document.edoc)
substitute_hyphens(document.edoc)
fix_hanging(document.edoc)
- fix_tables(document.edoc)
+ fix_tables(document.edoc)
# wl -> TeXML
style_filename = get_stylesheet("wl2tex")