import locale import sys import re def handle_stream(stream, prefix): stream.reconfigure(encoding=locale.getpreferredencoding(), errors="replace") for msg in stream: if ( prefix == "[!]" and ("it/s]" in msg or "s/it]" in msg) and ("%|" in msg or "it [" in msg) ): if msg.startswith("100%"): print("\r" + msg, end="", file=sys.stderr), else: print("\r" + msg[:-1], end="", file=sys.stderr), else: if prefix == "[!]": print(prefix, msg, end="", file=sys.stderr) else: print(prefix, msg, end="") def convert_markdown_to_html(input_text): pattern_a = re.compile(r"\[a/([^]]+)]\(([^)]+)\)") pattern_w = re.compile(r"\[w/([^]]+)]") pattern_i = re.compile(r"\[i/([^]]+)]") pattern_bold = re.compile(r"\*\*([^*]+)\*\*") pattern_white = re.compile(r"%%([^*]+)%%") def replace_a(match): return f"{match.group(1)}" def replace_w(match): return f"

{match.group(1)}

" def replace_i(match): return f"

{match.group(1)}

" def replace_bold(match): return f"{match.group(1)}" def replace_white(match): return f"{match.group(1)}" input_text = ( input_text.replace("\\[", "[") .replace("\\]", "]") .replace("<", "<") .replace(">", ">") ) result_text = re.sub(pattern_a, replace_a, input_text) result_text = re.sub(pattern_w, replace_w, result_text) result_text = re.sub(pattern_i, replace_i, result_text) result_text = re.sub(pattern_bold, replace_bold, result_text) result_text = re.sub(pattern_white, replace_white, result_text) return result_text.replace("\n", "
")