aboutsummaryrefslogtreecommitdiff
path: root/mammoth/conversion.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-09-13 15:25:42 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-13 15:25:42 +0100
commit71c395e312f45eca71189d3a5ce912459e20bcd0 (patch)
tree0da2210d581b3216fc3f701744e0b47740e8e5ac /mammoth/conversion.py
parentd5c24755671fa0d5ec80ef61418214c32f5bc3f5 (diff)
Find default value for convert_image outside of class
Diffstat (limited to 'mammoth/conversion.py')
-rw-r--r--mammoth/conversion.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py
index b460f9a..7ffa896 100644
--- a/mammoth/conversion.py
+++ b/mammoth/conversion.py
@@ -23,6 +23,9 @@ def convert_document_element_to_html(element,
if id_prefix is None:
id_prefix = str(random.randint(0, 1000000000000000))
+ if convert_image is None:
+ convert_image = images.inline(_generate_image_attributes)
+
html_generator = HtmlGenerator(lambda: writers.writer(output_format))
converter = _DocumentConverter(style_map,
convert_image=convert_image,
@@ -34,6 +37,15 @@ def convert_document_element_to_html(element,
converter.visit(element)
html_generator.end_all()
return results.Result(html_generator.as_string(), converter.messages)
+
+
+def _generate_image_attributes(image):
+ with image.open() as image_bytes:
+ encoded_src = base64.b64encode(image_bytes.read()).decode("ascii")
+
+ return {
+ "src": "data:{0};base64,{1}".format(image.content_type, encoded_src)
+ }
class _DocumentConverter(documents.ElementVisitor):
@@ -44,7 +56,7 @@ class _DocumentConverter(documents.ElementVisitor):
self._ignore_empty_paragraphs = ignore_empty_paragraphs
self._note_references = note_references
self._convert_underline = convert_underline or self._default_convert_underline
- self._convert_image = convert_image or images.inline(self._generate_image_attributes)
+ self._convert_image = convert_image
self._html_generator = html_generator
def _with_html_generator(self, html_generator):
@@ -168,15 +180,6 @@ class _DocumentConverter(documents.ElementVisitor):
def visit_line_break(self, line_break):
self._html_generator.self_closing("br")
-
- def _generate_image_attributes(self, image):
- with image.open() as image_bytes:
- encoded_src = base64.b64encode(image_bytes.read()).decode("ascii")
-
- return {
- "src": "data:{0};base64,{1}".format(image.content_type, encoded_src)
- }
-
def visit_note_reference(self, note_reference):
self._html_generator.start("sup")
self._html_generator.start("a", {