2 from __future__ import unicode_literals
5 from librarian import OutputFile, get_resource
8 with io.open(get_resource("res/text/template.txt")) as f:
15 self.current_margin = 0
16 self.starting_block = True
18 def push_legacy_margin(self, margin):
21 self.pieces[-1] = self.pieces[-1].rstrip(' ')
22 self.pieces.append('\r\n' * margin)
23 self.current_margin += margin
24 self.starting_block = True
26 def push_margin(self, margin):
29 self.pieces[-1] = self.pieces[-1].rstrip(' ')
30 if margin > self.current_margin:
31 self.pieces.append('\r\n' * (margin - self.current_margin))
32 self.current_margin = margin
33 self.starting_block = True
35 def push_text(self, text, prepared=False):
37 if self.starting_block and not prepared:
39 self.pieces.append(text)
40 self.current_margin = 0
42 self.starting_block = False
48 file_extension = "txt"
51 default_license_description = {
53 "Wszystkie zasoby Wolnych Lektur możesz swobodnie wykorzystywać, "
54 "publikować i rozpowszechniać pod warunkiem zachowania warunków "
55 "licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur.\n"
56 "Ten utwór jest w domenie publicznej. "
57 "Wszystkie materiały dodatkowe (przypisy, motywy literackie) są "
58 "udostępnione na Licencji Wolnej Sztuki 1.3 "
59 "(https://artlibre.org/licence/lal/pl/).\n"
60 "Fundacja Nowoczesna Polska zastrzega sobie prawa do wydania "
61 "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich "
62 "i prawach pokrewnych. Wykorzystując zasoby z Wolnych Lektur, "
63 "należy pamiętać o zapisach licencji oraz zasadach, które "
64 "spisaliśmy w Zasadach wykorzystania Wolnych Lektur "
65 "(https://wolnelektury.pl/info/zasady-wykorzystania/). Zapoznaj "
66 "się z nimi, zanim udostępnisz dalej nasze książki."
69 license_description = {
71 #"Ten utwór jest udostępniony na licencji {meta.license_description}: \n{meta.license}",
72 "Wszystkie zasoby Wolnych Lektur możesz swobodnie wykorzystywać, "
73 "publikować i rozpowszechniać pod warunkiem zachowania warunków "
74 "licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur.\n"
75 "Ten utwór jest jest udostępniony na licencji {meta.license_description} ({meta.license}). "
76 "Wszystkie materiały dodatkowe (przypisy, motywy literackie) są "
77 "udostępnione na Licencji Wolnej Sztuki 1.3 "
78 "(https://artlibre.org/licence/lal/pl/).\n"
79 "Fundacja Nowoczesna Polska zastrzega sobie prawa do wydania "
80 "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich "
81 "i prawach pokrewnych. Wykorzystując zasoby z Wolnych Lektur, "
82 "należy pamiętać o zapisach licencji oraz zasadach, które "
83 "spisaliśmy w Zasadach wykorzystania Wolnych Lektur "
84 "(https://wolnelektury.pl/info/zasady-wykorzystania/). Zapoznaj "
85 "się z nimi, zanim udostępnisz dalej nasze książki."
92 'header': TxtFragment()
94 self.current_fragments = [self.fragments[None]]
96 def enter_fragment(self, fragment):
97 self.current_fragments.append(self.fragments[fragment])
99 def exit_fragment(self):
100 self.current_fragments.pop()
102 def push_text(self, text, prepared=False):
103 self.current_fragments[-1].push_text(text, prepared=prepared)
105 def push_margin(self, margin):
106 self.current_fragments[-1].push_margin(margin)
108 def push_legacy_margin(self, margin, where=None):
109 self.current_fragments[-1].push_legacy_margin(margin)
111 def build(self, document, raw_text=False, **kwargs):
112 document.tree.getroot().txt_build(self)
115 self.enter_fragment('header')
117 self.push_text("tłum. ")
120 translator.readable()
121 for translator in meta.translators
124 #builder.push_margin(2)
125 self.push_legacy_margin(1)
128 #builder.push_margin(2)
129 self.push_legacy_margin(1)
131 if isbn.startswith(('ISBN-' , 'ISBN ')):
133 self.push_text('ISBN {isbn}'.format(isbn=isbn))
134 #builder.push_margin(5)
136 #builder.push_margin(4)
137 self.push_legacy_margin(1)
140 text = ''.join(self.fragments['header'].pieces) + ''.join(self.fragments[None].pieces)
146 license_description = self.license_description['pol'].format(meta=meta)
148 license_description = self.default_license_description['pol']
151 source = "\n\nTekst opracowany na podstawie: " + meta.source_name
155 contributors = ', '.join(
157 for person in sorted(set(
159 meta.technical_editors + meta.editors
164 "\n\nOpracowanie redakcyjne i przypisy: %s."
168 funders = ', '.join(meta.funders)
170 funders = u"\n\nPublikację wsparli i wsparły: %s." % funders
172 isbn = getattr(meta, 'isbn_txt', None)
178 result = TEMPLATE % {
180 "description": meta.description,
182 "license_description": license_description,
184 "contributors": contributors,
186 "publisher": '\n\nWydawca: ' + ', '.join(meta.publisher),
190 result = '\r\n'.join(result.splitlines()) + '\r\n'
191 return OutputFile.from_bytes(result.encode('utf-8'))