mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-09-21 12:01:55 +12:00
Adds #233: highlighter for CriticMarkup
This commit is contained in:
parent
d27ce4dec6
commit
6193dfe8f5
3 changed files with 59 additions and 13 deletions
|
@ -79,7 +79,13 @@ class MarkdownTokenType:
|
||||||
TokenTablePipe = 34
|
TokenTablePipe = 34
|
||||||
TokenSuperScript = 35
|
TokenSuperScript = 35
|
||||||
TokenSubScript = 36
|
TokenSubScript = 36
|
||||||
TokenLast = 37
|
# CriticMarkup
|
||||||
|
TokenCMAddition = 37 # {++ ++}
|
||||||
|
TokenCMDeletion = 38 # {-- --}
|
||||||
|
TokenCMSubstitution = 39 #{~~ ~> ~~}
|
||||||
|
TokenCMComment = 40 # {>> <<}
|
||||||
|
TokenCMHighlight = 41 # {== ==}{>> <<}
|
||||||
|
TokenLast = 42
|
||||||
|
|
||||||
TITLES = [TokenAtxHeading1, TokenAtxHeading2, TokenAtxHeading3,
|
TITLES = [TokenAtxHeading1, TokenAtxHeading2, TokenAtxHeading3,
|
||||||
TokenAtxHeading4, TokenAtxHeading5, TokenAtxHeading6,
|
TokenAtxHeading4, TokenAtxHeading5, TokenAtxHeading6,
|
||||||
|
|
|
@ -329,6 +329,31 @@ class MarkdownHighlighter(BasicHighlighter):
|
||||||
theme[MTT.TokenTablePipe] = {
|
theme[MTT.TokenTablePipe] = {
|
||||||
"color": markup, "monospace":True}
|
"color": markup, "monospace":True}
|
||||||
|
|
||||||
|
# CriticMarkup
|
||||||
|
theme[MTT.TokenCMAddition] = {
|
||||||
|
"color": QColor("#00bb00"),
|
||||||
|
"markupColor": QColor(F.mixColors("#00bb00", background, .4)),
|
||||||
|
"markupMonospace": True,}
|
||||||
|
theme[MTT.TokenCMDeletion] = {
|
||||||
|
"color": QColor("#dd0000"),
|
||||||
|
"markupColor": QColor(F.mixColors("#dd0000", background, .4)),
|
||||||
|
"markupMonospace": True,
|
||||||
|
"strike": True}
|
||||||
|
theme[MTT.TokenCMSubstitution] = {
|
||||||
|
"color": QColor("#ff8600"),
|
||||||
|
"markupColor": QColor(F.mixColors("#ff8600", background, .4)),
|
||||||
|
"markupMonospace": True,}
|
||||||
|
theme[MTT.TokenCMComment] = {
|
||||||
|
"color": QColor("#0000bb"),
|
||||||
|
"markupColor": QColor(F.mixColors("#0000bb", background, .4)),
|
||||||
|
"markupMonospace": True,}
|
||||||
|
theme[MTT.TokenCMHighlight] = {
|
||||||
|
"color": QColor("#aa53a9"),
|
||||||
|
"background": QColor(F.mixColors("#aa53a9", background, .1)),
|
||||||
|
"markupBackground": QColor(F.mixColors("#aa53a9", background, .1)),
|
||||||
|
"markupColor": QColor(F.mixColors("#aa53a9", background, .5)),
|
||||||
|
"markupMonospace": True,}
|
||||||
|
|
||||||
return theme
|
return theme
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
|
@ -112,6 +112,16 @@ class MarkdownTokenizer(HighlightTokenizer):
|
||||||
htmlInlineCommentRegex.setMinimal(True)
|
htmlInlineCommentRegex.setMinimal(True)
|
||||||
mentionRegex = QRegExp("\\B@\\w+(\\-\\w+)*(/\\w+(\\-\\w+)*)?")
|
mentionRegex = QRegExp("\\B@\\w+(\\-\\w+)*(/\\w+(\\-\\w+)*)?")
|
||||||
pipeTableDividerRegex = QRegExp("^ {0,3}(\\|[ :]?)?-{3,}([ :]?\\|[ :]?-{3,}([ :]?\\|)?)+\\s*$")
|
pipeTableDividerRegex = QRegExp("^ {0,3}(\\|[ :]?)?-{3,}([ :]?\\|[ :]?-{3,}([ :]?\\|)?)+\\s*$")
|
||||||
|
CMAdditionRegex = QRegExp("(\\{\\+\\+.*\\+\\+\\})")
|
||||||
|
CMAdditionRegex.setMinimal(True)
|
||||||
|
CMDeletionRegex = QRegExp("(\\{--.*--\\})")
|
||||||
|
CMDeletionRegex.setMinimal(True)
|
||||||
|
CMSubstitutionRegex = QRegExp("(\\{~~.*~>.*~~\\})")
|
||||||
|
CMSubstitutionRegex.setMinimal(True)
|
||||||
|
CMCommentRegex = QRegExp("(\\{>>.*<<\\})")
|
||||||
|
CMCommentRegex.setMinimal(True)
|
||||||
|
CMHighlightRegex = QRegExp("(\\{==.*==\\})")
|
||||||
|
CMHighlightRegex.setMinimal(True)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
HighlightTokenizer.__init__(self)
|
HighlightTokenizer.__init__(self)
|
||||||
|
@ -601,13 +611,18 @@ class MarkdownTokenizer(HighlightTokenizer):
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenReferenceLink, escapedText, self.referenceLinkRegex, 0, 0, False, True)
|
escapedText = self.tokenizeMatches(MTT.TokenReferenceLink, escapedText, self.referenceLinkRegex, 0, 0, False, True)
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenHtmlEntity, escapedText, self.htmlEntityRegex)
|
escapedText = self.tokenizeMatches(MTT.TokenHtmlEntity, escapedText, self.htmlEntityRegex)
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenAutomaticLink, escapedText, self.automaticLinkRegex, 0, 0, False, True)
|
escapedText = self.tokenizeMatches(MTT.TokenAutomaticLink, escapedText, self.automaticLinkRegex, 0, 0, False, True)
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenStrikethrough, escapedText, self.strikethroughRegex, 2, 2, True)
|
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenStrong, escapedText, self.strongRegex, 2, 2, True)
|
escapedText = self.tokenizeMatches(MTT.TokenStrong, escapedText, self.strongRegex, 2, 2, True)
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenEmphasis, escapedText, self.emphasisRegex, 1, 1, True)
|
escapedText = self.tokenizeMatches(MTT.TokenEmphasis, escapedText, self.emphasisRegex, 1, 1, True)
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenSuperScript, escapedText, self.superScriptRegex, 1, 1, True)
|
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenSubScript, escapedText, self.subScriptRegex, 1, 1, True)
|
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenHtmlTag, escapedText, self.htmlTagRegex)
|
|
||||||
escapedText = self.tokenizeMatches(MTT.TokenMention, escapedText, self.mentionRegex, 0, 0, False, True)
|
escapedText = self.tokenizeMatches(MTT.TokenMention, escapedText, self.mentionRegex, 0, 0, False, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenCMAddition, escapedText, self.CMAdditionRegex, 3, 3, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenCMDeletion, escapedText, self.CMDeletionRegex, 3, 3, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenCMSubstitution, escapedText, self.CMSubstitutionRegex, 3, 3, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenCMComment, escapedText, self.CMCommentRegex, 3, 3, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenCMHighlight, escapedText, self.CMHighlightRegex, 3, 3, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenStrikethrough, escapedText, self.strikethroughRegex, 2, 2, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenHtmlTag, escapedText, self.htmlTagRegex)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenSubScript, escapedText, self.subScriptRegex, 1, 1, True)
|
||||||
|
escapedText = self.tokenizeMatches(MTT.TokenSuperScript, escapedText, self.superScriptRegex, 1, 1, True)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue