X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/0604bdd5f693da9f1c78f9d9fa2276f0c7b6c17b..23d025c8875cca1404f274aca7170c9db5e980e7:/src/librarian/elements/poetry/wers.py?ds=sidebyside diff --git a/src/librarian/elements/poetry/wers.py b/src/librarian/elements/poetry/wers.py index e164b1d..c188845 100644 --- a/src/librarian/elements/poetry/wers.py +++ b/src/librarian/elements/poetry/wers.py @@ -1,3 +1,6 @@ +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. +# from ..base import WLElement @@ -6,8 +9,45 @@ class Wers(WLElement): TXT_TOP_MARGIN = 1 TXT_BOTTOM_MARGIN = 1 - TXT_LEGACY_TOP_MARGIN = 1 - TXT_LEGACY_BOTTOM_MARGIN = 0 - HTML_TAG = 'div' - HTML_ATTRIB = {"class": "verse"} + EPUB_TAG = HTML_TAG = 'div' + EPUB_CLASS = 'verse' + HTML_CLASS = 'wl verse' + FB2_TAG = 'v' + + NUMBERING = 'main' + + @property + def meta(self): + if hasattr(self, 'stanza'): + return self.stanza.meta + return super(Wers, self).meta + + def epub_build_inner(self, builder): + super().epub_build_inner(builder) + builder.push_text('''\u00a0''') + + @property + def has_visible_numbering(self): + try: + number = int(self.attrib['_visible_numbering']) + except: + return False + return number == 1 or not(number % 5) + + @property + def is_stretched(self): + return self.find('.//tab[@szer="*"]') is not None + + def get_html_attr(self, builder): + attr = super().get_html_attr(builder) + if self.is_stretched: + attr['class'] += ' verse-stretched' + return attr + + def html_build_inner(self, builder): + if self.is_stretched: + builder.start_element('span') + super().html_build_inner(builder) + if self.is_stretched: + builder.end_element()