From adddbc16ded8cd4ea6a485ee4b7e9702830170ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20St=C4=99pniowski?= Date: Mon, 10 Aug 2009 16:29:58 +0200 Subject: [PATCH] =?utf8?q?=C5=81amanie=20wierszy=20przy=20konwersji=20do?= =?utf8?q?=20TXT.=20Szeroko=C5=9B=C4=87=20=C5=82amu=20wyznacza=20sta=C5=82?= =?utf8?q?a=20MAX=5FLINE=5FLENGTH=20w=20module=20librarian.text.=20Obecnie?= =?utf8?q?=20jest=20ona=20r=C3=B3wna=2080.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- lib/librarian/book2txt.xslt | 2 +- lib/librarian/text.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/librarian/book2txt.xslt b/lib/librarian/book2txt.xslt index ba07aa29e..d3658a3f7 100644 --- a/lib/librarian/book2txt.xslt +++ b/lib/librarian/book2txt.xslt @@ -158,7 +158,7 @@ Wersja lektury w opracowaniu merytorycznym i krytycznym (przypisy i motywy) dost - + diff --git a/lib/librarian/text.py b/lib/librarian/text.py index 09dc9a9ef..21fab8e33 100644 --- a/lib/librarian/text.py +++ b/lib/librarian/text.py @@ -18,6 +18,9 @@ ENTITY_SUBSTITUTIONS = [ ] +MAX_LINE_LENGTH = 80 + + def substitute_entities(context, text): """XPath extension function converting all entites in passed text.""" if isinstance(text, list): @@ -27,9 +30,28 @@ def substitute_entities(context, text): return text +def wrap_words(context, text): + """XPath extension function automatically wrapping words in passed text""" + if isinstance(text, list): + text = ''.join(text) + words = re.split(r'\s', text) + + line_length = 0 + lines = [[]] + for word in words: + line_length += len(word) + 1 + if line_length > MAX_LINE_LENGTH: + # Max line length was exceeded. We create new line + lines.append([]) + line_length = len(word) + lines[-1].append(word) + return '\n'.join(' '.join(line) for line in lines) + + # Register substitute_entities function with lxml ns = etree.FunctionNamespace('http://wolnelektury.pl/functions') ns['substitute_entities'] = substitute_entities +ns['wrap_words'] = wrap_words def transform(input_filename, output_filename): -- 2.20.1