Some prelim work on builder api.
[librarian.git] / src / librarian / builders / txt.py
index b796c9b..69ddbe2 100644 (file)
@@ -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:
@@ -45,10 +37,14 @@ class TxtFragment:
 class TxtBuilder:
     """
     """
+    build_method_fn = 'txt_build'
     file_extension = "txt"
     identifier = "txt"
+    after_child_fn = 'txt_after_child'
 
+    debug = False
     orphans = False
+    normalize_whitespace = True
     
     default_license_description = {
         "pol": (
@@ -59,7 +55,7 @@ class TxtBuilder:
             "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 "
+            "Fundacja Wolne Lektury zastrzega sobie prawa do wydania "
             "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich "
             "i prawach pokrewnych.\nWykorzystując zasoby z Wolnych Lektur, "
             "należy pamiętać o zapisach licencji oraz zasadach, które "
@@ -78,7 +74,7 @@ class TxtBuilder:
             "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 "
+            "Fundacja Wolne Lektury zastrzega sobie prawa do wydania "
             "krytycznego zgodnie z art. Art.99(2) Ustawy o prawach autorskich "
             "i prawach pokrewnych.\nWykorzystując zasoby z Wolnych Lektur, "
             "należy pamiętać o zapisach licencji oraz zasadach, które "
@@ -107,9 +103,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
@@ -123,27 +116,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:
@@ -169,7 +161,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: