Sorting escape rules to ensure an apply order.

This commit is contained in:
Christopher Ramírez 2014-07-20 13:11:12 -06:00
parent 94a8500848
commit 4067b17a59

View file

@ -22,6 +22,7 @@ import re
import sys
import logging
import zipfile
from collections import OrderedDict
from xml.dom.minidom import parseString
from jinja2 import Environment, Undefined
@ -287,6 +288,9 @@ class Renderer(object):
def _unescape_entities(self, xml_text):
# unescape XML entities gt and lt
if sys.version_info >= (2, 7):
unescape_rules = OrderedDict()
unescape_rules = {
r'(?is)({[{|%].*)(>)(.*[%|}]})': r'\1>\3',
r'(?is)({[{|%].*)(&lt;)(.*[%|}]})': r'\1<\3',
@ -299,6 +303,9 @@ class Renderer(object):
return xml_text
def _encode_escape_chars(self, xml_text):
if sys.version_info >= (2, 7):
encode_rules = OrderedDict()
encode_rules = {
'(?i)(<text:(?:[ahp]|ruby-base|span|meta|meta-field)>.*)(\n)(.*</text:(?:[ahp]|ruby-base|span|meta|meta-field)>)': r'\1<text:line-break/>\3',
'(?i)(<text:(?:[ahp]|ruby-base|span|meta|meta-field)>.*)(\u0009)(.*</text:(?:[ahp]|ruby-base|span|meta|meta-field)>)': r'\1<text:tab>\3',