improve Link, Image, LinkRef

This commit is contained in:
un-pogaz 2023-04-30 14:28:59 +02:00
parent 9b7216b4ff
commit c67cdd02bc

View File

@ -20,8 +20,9 @@ class MarkdownHighlighter(QSyntaxHighlighter):
'uItalic': re.compile('(?P<delim>_)(?P<text>([^_]{2,}?|[^_]))(?P=delim)'), 'uItalic': re.compile('(?P<delim>_)(?P<text>([^_]{2,}?|[^_]))(?P=delim)'),
'BoldItalic': re.compile(r'(?P<delim>\*\*\*)(?P<text>([^*]{2,}?|[^*]))(?P=delim)'), 'BoldItalic': re.compile(r'(?P<delim>\*\*\*)(?P<text>([^*]{2,}?|[^*]))(?P=delim)'),
'uBoldItalic': re.compile(r'(?P<delim>___)(?P<text>([^_]{2,}?|[^_]))(?P=delim)'), 'uBoldItalic': re.compile(r'(?P<delim>___)(?P<text>([^_]{2,}?|[^_]))(?P=delim)'),
'Link': re.compile(r'(?u)(^|(?P<pre>[^!]))\[.*?\]:?[ ''\t'r']*\(?[^)]+\)?'), 'Link': re.compile(r'(?u)(?<!!)\[.*?\](\[.+?\]|\(.+?\))'),
'Image': re.compile(r'(?u)!\[.*?\]\(.+?\)'), 'Image': re.compile(r'(?u)!\[.*?\](\[.+?\]|\(.+?\))'),
'LinkRef': re.compile(r'(?u)^ *\[.*?\]:[ \t]*.*$'),
'HeaderAtx': re.compile(r'(?u)^\#{1,6}(.*?)\#*(''\n|$)'), 'HeaderAtx': re.compile(r'(?u)^\#{1,6}(.*?)\#*(''\n|$)'),
'Header': re.compile('^(.+)[ \t]*\n(=+|-+)[ \t]*\n+'), 'Header': re.compile('^(.+)[ \t]*\n(=+|-+)[ \t]*\n+'),
'CodeBlock': re.compile('^([ ]{4,}|\t).*'), 'CodeBlock': re.compile('^([ ]{4,}|\t).*'),
@ -45,6 +46,7 @@ class MarkdownHighlighter(QSyntaxHighlighter):
'uBoldItalic': "boldemphasis", 'uBoldItalic': "boldemphasis",
'Link': "link", 'Link': "link",
'Image': "image", 'Image': "image",
'LinkRef': "link",
'HeaderAtx': "header", 'HeaderAtx': "header",
'Header': "header", 'Header': "header",
'HeaderLine': "header", 'HeaderLine': "header",
@ -219,9 +221,11 @@ class MarkdownHighlighter(QSyntaxHighlighter):
def highlightLink(self, text, cursor, bf, strt): def highlightLink(self, text, cursor, bf, strt):
found = False found = False
for mo in re.finditer(self.MARKDOWN_KEYS_REGEX['Link'],text): for mo in re.finditer(self.MARKDOWN_KEYS_REGEX['Link'],text):
start_bracket = mo.group()[0][0] == '[' self.setFormat(mo.start() + strt, mo.end() - mo.start() - strt, self.MARKDOWN_KWS_FORMAT['Link'])
self.setFormat(mo.start() + strt + (0 if start_bracket else 1), found = True
mo.end() - mo.start() - strt - (0 if start_bracket else 1), self.MARKDOWN_KWS_FORMAT['Link'])
for mo in re.finditer(self.MARKDOWN_KEYS_REGEX['LinkRef'],text):
self.setFormat(mo.start() + strt, mo.end() - mo.start() - strt, self.MARKDOWN_KWS_FORMAT['LinkRef'])
found = True found = True
return found return found