X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/5938bc78f11ebad067eae86f51b4f5243003f946..890a8fb6adbf3a3d4eb2a8594baff30a9ec366b9:/librarian/html.py diff --git a/librarian/html.py b/librarian/html.py index 92fc134..3912fbc 100644 --- a/librarian/html.py +++ b/librarian/html.py @@ -11,16 +11,11 @@ import copy from lxml import etree from librarian.parser import WLDocument from librarian import XHTMLNS, ParseError +from librarian import functions from lxml.etree import XMLSyntaxError, XSLTApplyError -ENTITY_SUBSTITUTIONS = [ - (u'---', u'—'), - (u'--', u'–'), - (u'...', u'…'), - (u',,', u'„'), - (u'"', u'”'), -] +functions.reg_substitute_entities() STYLESHEETS = { 'legacy': 'xslt/book2html.xslt', @@ -31,18 +26,6 @@ STYLESHEETS = { def get_stylesheet(name): return os.path.join(os.path.dirname(__file__), STYLESHEETS[name]) -def substitute_entities(context, text): - """XPath extension function converting all entites in passed text.""" - if isinstance(text, list): - text = ''.join(text) - for entity, substitutution in ENTITY_SUBSTITUTIONS: - text = text.replace(entity, substitutution) - return text - -# Register substitute_entities function with lxml -ns = etree.FunctionNamespace('http://wolnelektury.pl/functions') -ns['substitute_entities'] = substitute_entities - def html_has_content(text): return etree.ETXPath('//p|//{%(ns)s}p|//h1|//{%(ns)s}h1' % {'ns': str(XHTMLNS)})(text)