From: Jan Szejko Date: Tue, 16 May 2017 13:18:53 +0000 (+0200) Subject: ISBN in epub/mobi X-Git-Tag: 1.7~52 X-Git-Url: https://git.mdrn.pl/librarian.git/commitdiff_plain/c5a372b4595e9ee280ca38b5f361a3a22141fb38 ISBN in epub/mobi --- diff --git a/librarian/epub.py b/librarian/epub.py index cb2f2f4..3e9056c 100644 --- a/librarian/epub.py +++ b/librarian/epub.py @@ -113,11 +113,13 @@ def node_name(node): return tempnode.text -def xslt(xml, sheet): +def xslt(xml, sheet, **kwargs): if isinstance(xml, etree._Element): xml = etree.ElementTree(xml) with open(sheet) as xsltf: - return xml.xslt(etree.parse(xsltf)) + transform = etree.XSLT(etree.parse(xsltf)) + params = dict((key, transform.strparam(value)) for key, value in kwargs.iteritems()) + return transform(xml, **params) def replace_characters(node): @@ -409,7 +411,7 @@ def transform_chunk(chunk_xml, chunk_no, annotations, empty=False, _empty_html_s def transform(wldoc, verbose=False, style=None, html_toc=False, - sample=None, cover=None, flags=None, hyphenate=False, ilustr_path=''): + sample=None, cover=None, flags=None, hyphenate=False, ilustr_path='', output_type='epub'): """ produces a EPUB file sample=n: generate sample e-book (with at least n paragraphs) @@ -431,7 +433,7 @@ def transform(wldoc, verbose=False, style=None, html_toc=False, chars = set() if first: # write book title page - html_tree = xslt(wldoc.edoc, get_resource('epub/xsltTitle.xsl')) + html_tree = xslt(wldoc.edoc, get_resource('epub/xsltTitle.xsl'), outputtype=output_type) chars = used_chars(html_tree.getroot()) zip.writestr( 'OPS/title.html', @@ -648,7 +650,7 @@ def transform(wldoc, verbose=False, style=None, html_toc=False, '')) spine.append(etree.fromstring( '')) - html_tree = xslt(document.edoc, get_resource('epub/xsltLast.xsl')) + html_tree = xslt(document.edoc, get_resource('epub/xsltLast.xsl'), outputtype=output_type) chars.update(used_chars(html_tree.getroot())) zip.writestr('OPS/last.html', etree.tostring( html_tree, pretty_print=True, xml_declaration=True, @@ -675,7 +677,8 @@ def transform(wldoc, verbose=False, style=None, html_toc=False, print "Running font-optimizer" subprocess.check_call(optimizer_call) else: - subprocess.check_call(optimizer_call, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + dev_null = open(os.devnull, 'w') + subprocess.check_call(optimizer_call, stdout=dev_null, stderr=dev_null) zip.write(os.path.join(tmpdir, fname), os.path.join('OPS', fname)) manifest.append(etree.fromstring( '' % (fname, fname))) diff --git a/librarian/epub/xsltLast.xsl b/librarian/epub/xsltLast.xsl index 6e64a0c..9c5463d 100644 --- a/librarian/epub/xsltLast.xsl +++ b/librarian/epub/xsltLast.xsl @@ -8,6 +8,7 @@ + @@ -93,6 +94,12 @@

+ + + +

ISBN

+
+

 

Plik wygenerowany dnia . diff --git a/librarian/epub/xsltTitle.xsl b/librarian/epub/xsltTitle.xsl index 3d734be..0a7279b 100644 --- a/librarian/epub/xsltTitle.xsl +++ b/librarian/epub/xsltTitle.xsl @@ -7,6 +7,7 @@ + @@ -60,6 +61,12 @@ Utwór opracowany został w ramach projektu Wolne Lektury przez fundację Nowoczesna Polska.

+ + + +

ISBN

+
+ diff --git a/librarian/mobi.py b/librarian/mobi.py index 65f2598..c3c8f28 100644 --- a/librarian/mobi.py +++ b/librarian/mobi.py @@ -27,7 +27,7 @@ def transform(wldoc, verbose=False, sample=None, cover=None, epub = document.as_epub(verbose=verbose, sample=sample, html_toc=True, cover=cover or True, flags=flags, - hyphenate=hyphenate, ilustr_path=ilustr_path) + hyphenate=hyphenate, ilustr_path=ilustr_path, output_type='mobi') if verbose: kwargs = {} else: