diff options
Diffstat (limited to 'mammoth/styles/parser')
| -rw-r--r-- | mammoth/styles/parser/document_matcher_parser.py | 15 |
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") |
