From 79994ed2c8ea2fb2a3dc604d0b66e4d734344e34 Mon Sep 17 00:00:00 2001 From: Eric Lapouyade Date: Mon, 9 Nov 2020 09:12:16 +0100 Subject: [PATCH] fix #323 --- CHANGES.rst | 4 ++++ docxtpl/__init__.py | 6 +++--- tests/escape.py | 1 + tests/templates/escape_tpl.docx | Bin 9910 -> 9693 bytes 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 891eaf9..c5dd815 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,7 @@ +0.11.2 (2020-11-09) +------------------- +- fix #323 + 0.11.1 (2020-10-27) ------------------- - fix #320 diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index 4bb4b80..dc8b2e1 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -4,7 +4,7 @@ Created : 2015-03-12 @author: Eric Lapouyade """ -__version__ = '0.11.1' +__version__ = '0.11.2' import functools import io @@ -246,14 +246,14 @@ class DocxTemplate(object): return xml def resolve_run(paragraph_properties, m): - run_properties = re.search(r'.*', m.group(0)) + run_properties = re.search(r'.*?', m.group(0)) run_properties = run_properties.group(0) if run_properties else '' return re.sub(r']*)?>.*?', lambda x: resolve_text(run_properties, paragraph_properties, x), m.group(0), flags=re.DOTALL) def resolve_paragraph(m): - paragraph_properties = re.search(r'.*', m.group(0)) + paragraph_properties = re.search(r'.*?', m.group(0)) paragraph_properties = paragraph_properties.group(0) if paragraph_properties else '' return re.sub(r']*)?>.*?', lambda x: resolve_run(paragraph_properties, x), diff --git a/tests/escape.py b/tests/escape.py index c4281a5..76f3a8a 100644 --- a/tests/escape.py +++ b/tests/escape.py @@ -21,6 +21,7 @@ Here is a new paragraph\a Here is a page break : \f That's it """, + 'some_html' : 'HTTP/1.1 200 OK\nServer: Apache-Coyote/1.1\nCache-Control: no-store\nExpires: Thu, 01 Jan 1970 00:00:00 GMT\nPragma: no-cache\nContent-Type: text/html;charset=UTF-8\nContent-Language: zh-CN\nDate: Thu, 22 Oct 2020 10:59:40 GMT\nContent-Length: 9866\n\n\n\n Struts Problem Report\n \n\n\n...\n\n', } tpl.render(context) diff --git a/tests/templates/escape_tpl.docx b/tests/templates/escape_tpl.docx index d377494f5c3abf9bcbe00d0f79cd80c38dc8f650..1f74645edfdac595a78f99f20814ffc51f7d4b99 100644 GIT binary patch delta 7667 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 delta 7940 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 HUjKgppU;;Y