Some prelim work on builder api.
[librarian.git] / src / librarian / elements / poetry / wers_wciety.py
1 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
3 #
4 from .wers import Wers
5
6
7 class WersWciety(Wers):
8     HTML_CLASS = Wers.HTML_CLASS + ' verse-indent'
9
10     @property
11     def typ(self):
12         v = self.attrib.get('typ')
13         return int(v) if v else 1
14
15     def txt_build_inner(self, builder):
16         ## Temporary legacy compatibility fix.
17         typ = min(self.typ, 2)
18
19         builder.push_text('  ' * self.typ, prepared=True)
20         super().txt_build_inner(builder)
21
22     def get_html_attr(self, builder):
23         attr = super().get_html_attr(builder)
24         attr['class'] += f" verse-indent-{self.typ}"
25         return attr
26
27     def get_epub_attr(self, builder):
28         attr = super().get_html_attr(builder)
29         attr['style'] = "margin-left: {}em".format(self.typ)
30         return attr