X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/db91f942ce46e3af1420f3469a83257ef5aca4c2..ba9a8ba0da6fcf7e89b75774cd07aac9706215da:/src/librarian/builders/txt.py?ds=sidebyside diff --git a/src/librarian/builders/txt.py b/src/librarian/builders/txt.py index 8dba4ae..92ddb46 100644 --- a/src/librarian/builders/txt.py +++ b/src/librarian/builders/txt.py @@ -1,6 +1,6 @@ -# coding: utf-8 -from __future__ import unicode_literals - +# This file is part of Librarian, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Wolne Lektury. See NOTICE for more information. +# import io from librarian import OutputFile, get_resource @@ -15,14 +15,6 @@ class TxtFragment: self.current_margin = 0 self.starting_block = True - def push_legacy_margin(self, margin): - if margin: - if self.pieces: - self.pieces[-1] = self.pieces[-1].rstrip(' ') - self.pieces.append('\r\n' * margin) - self.current_margin += margin - self.starting_block = True - def push_margin(self, margin): if margin: if self.pieces: @@ -47,22 +39,27 @@ class TxtBuilder: """ file_extension = "txt" identifier = "txt" + after_child_fn = 'txt_after_child' + debug = False + orphans = False + normalize_whitespace = True + default_license_description = { "pol": ( "Wszystkie zasoby Wolnych Lektur możesz swobodnie wykorzystywać, " "publikować i rozpowszechniać pod warunkiem zachowania warunków " "licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur.\n" - "Ten utwór jest w domenie publicznej. " + "Ten utwór jest w domenie publicznej.\n" "Wszystkie materiały dodatkowe (przypisy, motywy literackie) są " - "udostępnione na Licencji Wolnej Sztuki 1.3 " - "(https://artlibre.org/licence/lal/pl/).\n" - "Fundacja Nowoczesna Polska zastrzega sobie prawa do wydania " + "udostępnione na Licencji Wolnej Sztuki 1.3: " + "https://artlibre.org/licence/lal/pl/\n" + "Fundacja Wolne Lektury zastrzega sobie prawa do wydania " "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich " - "i prawach pokrewnych. Wykorzystując zasoby z Wolnych Lektur, " + "i prawach pokrewnych.\nWykorzystując zasoby z Wolnych Lektur, " "należy pamiętać o zapisach licencji oraz zasadach, które " - "spisaliśmy w Zasadach wykorzystania Wolnych Lektur " - "(https://wolnelektury.pl/info/zasady-wykorzystania/). Zapoznaj " + "spisaliśmy w Zasadach wykorzystania Wolnych Lektur: " + "https://wolnelektury.pl/info/zasady-wykorzystania/\nZapoznaj " "się z nimi, zanim udostępnisz dalej nasze książki." ) } @@ -74,19 +71,19 @@ class TxtBuilder: "licencji i zgodnie z Zasadami wykorzystania Wolnych Lektur.\n" "Ten utwór jest jest udostępniony na licencji {meta.license_description} ({meta.license}). " "Wszystkie materiały dodatkowe (przypisy, motywy literackie) są " - "udostępnione na Licencji Wolnej Sztuki 1.3 " - "(https://artlibre.org/licence/lal/pl/).\n" - "Fundacja Nowoczesna Polska zastrzega sobie prawa do wydania " + "udostępnione na Licencji Wolnej Sztuki 1.3: " + "https://artlibre.org/licence/lal/pl/\n" + "Fundacja Wolne Lektury zastrzega sobie prawa do wydania " "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich " - "i prawach pokrewnych. Wykorzystując zasoby z Wolnych Lektur, " + "i prawach pokrewnych.\nWykorzystując zasoby z Wolnych Lektur, " "należy pamiętać o zapisach licencji oraz zasadach, które " - "spisaliśmy w Zasadach wykorzystania Wolnych Lektur " - "(https://wolnelektury.pl/info/zasady-wykorzystania/). Zapoznaj " + "spisaliśmy w Zasadach wykorzystania Wolnych Lektur: " + "https://wolnelektury.pl/info/zasady-wykorzystania/\nZapoznaj " "się z nimi, zanim udostępnisz dalej nasze książki." ) } - def __init__(self): + def __init__(self, base_url=None): self.fragments = { None: TxtFragment(), 'header': TxtFragment() @@ -105,9 +102,6 @@ class TxtBuilder: def push_margin(self, margin): self.current_fragments[-1].push_margin(margin) - def push_legacy_margin(self, margin, where=None): - self.current_fragments[-1].push_legacy_margin(margin) - def build(self, document, raw_text=False, **kwargs): document.tree.getroot().txt_build(self) meta = document.meta @@ -121,27 +115,26 @@ class TxtBuilder: for translator in meta.translators ) ) - #builder.push_margin(2) - self.push_legacy_margin(1) + self.push_margin(2) if meta.isbn_txt: - #builder.push_margin(2) - self.push_legacy_margin(1) + self.push_margin(2) isbn = meta.isbn_txt if isbn.startswith(('ISBN-' , 'ISBN ')): isbn = isbn[5:] self.push_text('ISBN {isbn}'.format(isbn=isbn)) #builder.push_margin(5) - #builder.push_margin(4) - self.push_legacy_margin(1) + self.push_margin(4) self.exit_fragment() - text = ''.join(self.fragments['header'].pieces) + ''.join(self.fragments[None].pieces) + text = ''.join(self.fragments[None].pieces).lstrip() if raw_text: result = text else: + text = ''.join(self.fragments['header'].pieces) + text + if meta.license: license_description = self.license_description['pol'].format(meta=meta) else: @@ -167,7 +160,7 @@ class TxtBuilder: funders = ', '.join(meta.funders) if funders: - funders = u"\n\nPublikację wsparli i wsparły: %s." % funders + funders = "\n\nPublikację wsparli i wsparły: %s." % funders isbn = getattr(meta, 'isbn_txt', None) if isbn: