aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/conversion.py13
-rw-r--r--tests/conversion_tests.py11
2 files changed, 16 insertions, 8 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py
index dca86aa..78994e9 100644
--- a/mammoth/conversion.py
+++ b/mammoth/conversion.py
@@ -110,7 +110,7 @@ class _DocumentConverter(documents.ElementVisitor):
if html_path:
satisfy_html_path(run_generator, html_path)
if run.is_bold:
- run_generator.start("strong")
+ self._convert_run_property(run_generator, "bold", default="strong")
if run.is_italic:
run_generator.start("em")
if run.vertical_alignment == documents.VerticalAlignment.superscript:
@@ -120,7 +120,7 @@ class _DocumentConverter(documents.ElementVisitor):
if run.is_underline:
self._convert_underline(run_generator)
if run.is_strikethrough:
- self._convert_strikethrough(run_generator)
+ self._convert_run_property(run_generator, "strikethrough", default="s")
self._with_html_generator(run_generator)._visit_all(run.children)
run_generator.end_all()
self._html_generator.append(run_generator)
@@ -132,13 +132,12 @@ class _DocumentConverter(documents.ElementVisitor):
append_html_path(run_generator, style.html_path)
- def _convert_strikethrough(self, run_generator):
- style = self._find_style(None, "strikethrough")
+ def _convert_run_property(self, run_generator, element_type, default):
+ style = self._find_style(None, element_type)
if style is None:
- run_generator.start("s")
+ run_generator.start(default)
else:
append_html_path(run_generator, style.html_path)
-
def visit_text(self, text):
@@ -258,7 +257,7 @@ class _DocumentConverter(documents.ElementVisitor):
def _document_matcher_matches(matcher, element, element_type):
- if matcher.element_type in ["underline", "strikethrough"]:
+ if matcher.element_type in ["underline", "strikethrough", "bold"]:
return matcher.element_type == element_type
else:
return (
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index a5ae9cb..78530a9 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -148,7 +148,7 @@ def bulleted_styles_dont_match_plain_paragraph():
@istest
-def bold_runs_are_wrapped_in_strong_tags():
+def bold_runs_are_wrapped_in_strong_tags_by_default():
result = convert_document_element_to_html(
documents.run(children=[documents.text("Hello")], is_bold=True),
)
@@ -156,6 +156,15 @@ def bold_runs_are_wrapped_in_strong_tags():
@istest
+def bold_runs_can_be_configured_with_style_mapping():
+ result = convert_document_element_to_html(
+ documents.run(children=[documents.text("Hello")], is_bold=True),
+ style_map=[_style_mapping("b => b")]
+ )
+ assert_equal("<b>Hello</b>", result.value)
+
+
+@istest
def italic_runs_are_wrapped_in_emphasis_tags():
result = convert_document_element_to_html(
documents.run(children=[documents.text("Hello")], is_italic=True),