diff --git a/src/window.py b/src/window.py index c9c37dc..48e6836 100644 --- a/src/window.py +++ b/src/window.py @@ -217,6 +217,8 @@ class AlpacaWindow(Adw.ApplicationWindow): normal_text = text[pos:] if normal_text.strip(): parts.append({"type": "normal", "text": normal_text.strip()}) + bold_pattern = re.compile(r'\*\*(.*?)\*\*') #**text** + code_pattern = re.compile(r'`(.*?)`') #`text` for part in parts: if part['type'] == 'normal': message_text = Gtk.TextView( @@ -231,13 +233,19 @@ class AlpacaWindow(Adw.ApplicationWindow): css_classes=["flat"] ) message_buffer = message_text.get_buffer() + + footer = None if part['text'].split("\n")[-1] == parts[-1]['text'].split("\n")[-1]: footer = "\n\n" + part['text'].split('\n')[-1] + "" part['text'] = '\n'.join(part['text'].split("\n")[:-1]) - message_buffer.insert(message_buffer.get_end_iter(), part['text']) - message_buffer.insert_markup(message_buffer.get_end_iter(), footer, len(footer)) - else: - message_buffer.insert(message_buffer.get_end_iter(), part['text']) + + part['text'] = code_pattern.sub(r'\1', part['text']) + part['text'] = bold_pattern.sub(r'\1', part['text']) + message_buffer.insert_markup(message_buffer.get_end_iter(), part['text'], len(part['text'])) + #message_buffer.insert(message_buffer.get_end_iter(), part['text']) + + if footer: message_buffer.insert_markup(message_buffer.get_end_iter(), footer, len(footer)) + self.bot_message_box.append(message_text) else: language = GtkSource.LanguageManager.get_default().get_language(part['language'])