aboutsummaryrefslogtreecommitdiff
path: root/mammoth/styles/parser/document_matcher_parser.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-06-13 12:16:25 +0100
committerMichael Williamson <mike@zwobble.org>2024-06-13 12:16:25 +0100
commit4a779b8d4fe83a80d99324a947b714c76468a88f (patch)
tree71e9cd15e8a76beb4d7ec4145234ae70ec4c8dae /mammoth/styles/parser/document_matcher_parser.py
parent0d5b27652c119dfaf99fae5f4e624c9efec408b5 (diff)
Support style mapping for highlights
Diffstat (limited to 'mammoth/styles/parser/document_matcher_parser.py')
-rw-r--r--mammoth/styles/parser/document_matcher_parser.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/mammoth/styles/parser/document_matcher_parser.py b/mammoth/styles/parser/document_matcher_parser.py
index 9891e4b..e0eb4e1 100644
--- a/mammoth/styles/parser/document_matcher_parser.py
+++ b/mammoth/styles/parser/document_matcher_parser.py
@@ -52,6 +52,9 @@ def parse_document_matcher(tokens):
elif tokens.try_skip(TokenType.IDENTIFIER, "small-caps"):
return document_matchers.small_caps
+ elif tokens.try_skip(TokenType.IDENTIFIER, "highlight"):
+ return _parse_highlight(tokens)
+
elif tokens.try_skip(TokenType.IDENTIFIER, "comment-reference"):
return document_matchers.comment_reference
@@ -98,6 +101,18 @@ def _parse_list_type(tokens):
raise LineParseError("Unrecognised list type: {0}".format(list_type))
+def _parse_highlight(tokens):
+ if tokens.try_skip(TokenType.SYMBOL, "["):
+ tokens.skip(TokenType.IDENTIFIER, "color")
+ tokens.skip(TokenType.SYMBOL, "=")
+ color = parse_string(tokens)
+ tokens.skip(TokenType.SYMBOL, "]");
+ else:
+ color = None
+
+ return document_matchers.highlight(color=color)
+
+
def _parse_break(tokens):
tokens.skip(TokenType.SYMBOL, "[")
tokens.skip(TokenType.IDENTIFIER, "type")