From: Radek Czajka
Date: Mon, 20 Dec 2021 10:50:38 +0000 (+0100)
Subject: New mobi builder.
X-Git-Tag: 2.3~2
X-Git-Url: https://git.mdrn.pl/librarian.git/commitdiff_plain/eae370b75207e1dc15f5f3f7ee7a402c7721d9a8?ds=sidebyside;hp=37e7d9e4f5de0efd1f2d1568d8a455905843cc80
New mobi builder.
---
diff --git a/src/librarian/builders/__init__.py b/src/librarian/builders/__init__.py
index e359cd6..d8acb82 100644
--- a/src/librarian/builders/__init__.py
+++ b/src/librarian/builders/__init__.py
@@ -4,6 +4,7 @@ from .html import HtmlBuilder, StandaloneHtmlBuilder, DaisyHtmlBuilder
from .sanitize import Sanitizer
from .daisy import DaisyBuilder
from .epub import EpubBuilder
+from .mobi import MobiBuilder
from .pdf import PdfBuilder
@@ -16,5 +17,6 @@ builders = OrderedDict([
("sanitizer", Sanitizer),
("epub", EpubBuilder),
+ ("mobi", MobiBuilder),
("pdf", PdfBuilder),
])
diff --git a/src/librarian/builders/epub.py b/src/librarian/builders/epub.py
index 4471e30..401136f 100644
--- a/src/librarian/builders/epub.py
+++ b/src/librarian/builders/epub.py
@@ -29,10 +29,11 @@ class Xhtml:
class Builder:
file_extension = None
- def __init__(self, base_url=None, fundraising=None):
+ def __init__(self, base_url=None, fundraising=None, cover=None):
self._base_url = base_url or 'file:///home/rczajka/for/fnp/librarian/temp~/maly/img/'
self.fundraising = fundraising
self.footnotes = etree.Element('div', id='footnotes')
+ self.make_cover = cover or make_cover
self.cursors = {
# None: None,
@@ -78,6 +79,7 @@ class Builder:
class EpubBuilder(Builder):
file_extension = 'epub'
+ isbn_field = 'isbn_epub'
def __init__(self, *args, **kwargs):
self.chars = set()
@@ -109,7 +111,6 @@ class EpubBuilder(Builder):
self.set_metadata()
-
self.add_cover()
self.add_title_page()
@@ -212,10 +213,10 @@ class EpubBuilder(Builder):
e = self.document.tree.find('//autor_utworu')
if e is not None:
- etree.SubElement(tp, 'h2', **{'class': 'author'}).text = e.raw_printable_text()
+ etree.SubElement(tp, 'h2', **{'class': 'author'}).text = e.raw_printable_text(self)
e = self.document.tree.find('//nazwa_utworu')
if e is not None:
- etree.SubElement(tp, 'h1', **{'class': 'title'}).text = e.raw_printable_text()
+ etree.SubElement(tp, 'h1', **{'class': 'title'}).text = e.raw_printable_text(self)
if not len(tp):
for author in self.document.meta.authors:
@@ -251,8 +252,8 @@ class EpubBuilder(Builder):
"""))
- if self.document.meta.isbn_epub:
- etree.SubElement(tp, 'p', **{"class": "info"}).text = self.document.meta.isbn_epub
+ if getattr(self.document.meta, self.isbn_field):
+ etree.SubElement(tp, 'p', **{"class": "info"}).text = getattr(self.document.meta, self.isbn_field)
tp.append(etree.XML("""