Initial support for Pango Markup
This commit is contained in:
parent
ce18aa7de2
commit
b471ad70fe
@ -217,6 +217,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
normal_text = text[pos:]
|
normal_text = text[pos:]
|
||||||
if normal_text.strip():
|
if normal_text.strip():
|
||||||
parts.append({"type": "normal", "text": 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:
|
for part in parts:
|
||||||
if part['type'] == 'normal':
|
if part['type'] == 'normal':
|
||||||
message_text = Gtk.TextView(
|
message_text = Gtk.TextView(
|
||||||
@ -231,13 +233,19 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
css_classes=["flat"]
|
css_classes=["flat"]
|
||||||
)
|
)
|
||||||
message_buffer = message_text.get_buffer()
|
message_buffer = message_text.get_buffer()
|
||||||
|
|
||||||
|
footer = None
|
||||||
if part['text'].split("\n")[-1] == parts[-1]['text'].split("\n")[-1]:
|
if part['text'].split("\n")[-1] == parts[-1]['text'].split("\n")[-1]:
|
||||||
footer = "\n\n<small>" + part['text'].split('\n')[-1] + "</small>"
|
footer = "\n\n<small>" + part['text'].split('\n')[-1] + "</small>"
|
||||||
part['text'] = '\n'.join(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))
|
part['text'] = code_pattern.sub(r'<tt>\1</tt>', part['text'])
|
||||||
else:
|
part['text'] = bold_pattern.sub(r'<b>\1</b>', part['text'])
|
||||||
message_buffer.insert(message_buffer.get_end_iter(), 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)
|
self.bot_message_box.append(message_text)
|
||||||
else:
|
else:
|
||||||
language = GtkSource.LanguageManager.get_default().get_language(part['language'])
|
language = GtkSource.LanguageManager.get_default().get_language(part['language'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user