Toggle markdown parsing with matrix.look.markdown_input

This commit is contained in:
Tom Smeding 2020-08-25 22:31:02 +02:00
parent 2b21c0cb5c
commit e74a5a2041
2 changed files with 16 additions and 2 deletions

View file

@ -88,6 +88,9 @@ class Formatted(object):
substrings = [] # type: List[FormattedString] substrings = [] # type: List[FormattedString]
attributes = DEFAULT_ATTRIBUTES.copy() attributes = DEFAULT_ATTRIBUTES.copy()
# If this is false, only IRC formatting characters will be parsed.
do_markdown = G.CONFIG.look.markdown_input
# Disallow backticks in URLs so that code blocks are unaffected by the # Disallow backticks in URLs so that code blocks are unaffected by the
# URL handling # URL handling
url_regex = r"\b[a-z]+://[^\s`]+" url_regex = r"\b[a-z]+://[^\s`]+"
@ -169,7 +172,8 @@ class Formatted(object):
in_url = True in_url = True
# Markdown escape # Markdown escape
if i + 1 < len(line) and line[i] == "\\" \ if do_markdown and \
i + 1 < len(line) and line[i] == "\\" \
and (line[i + 1] in escapable_chars and (line[i + 1] in escapable_chars
if not attributes["code"] if not attributes["code"]
else line[i + 1] == "`") \ else line[i + 1] == "`") \
@ -235,7 +239,7 @@ class Formatted(object):
attributes["bgcolor"] = None attributes["bgcolor"] = None
# Markdown wrapper (emphasis/bold/code) # Markdown wrapper (emphasis/bold/code)
elif line[i] in wrapper_init_chars and not in_url: elif do_markdown and line[i] in wrapper_init_chars and not in_url:
for l in range(wrapper_max_len, 0, -1): for l in range(wrapper_max_len, 0, -1):
if i + l <= len(line) and line[i : i + l] in wrappers: if i + l <= len(line) and line[i : i + l] in wrappers:
descriptor = wrappers[line[i : i + l]] descriptor = wrappers[line[i : i + l]]

View file

@ -597,6 +597,16 @@ class MatrixConfig(WeechatConfig):
"since conflicts can happen otherwise " "since conflicts can happen otherwise "
"(requires a script reload)."), "(requires a script reload)."),
), ),
Option(
"markdown_input",
"boolean",
"",
0,
0,
"on",
("If turned on, markdown usage in messages will be converted "
"to actual markup (**bold**, *italic*, _italic_, `code`)."),
),
] ]
network_options = [ network_options = [