1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Thu, 21 Jul 2022 23:02:22 +0200
Subject: Convert markdown links to html hyperlinks
The following is an example of the regex:
>>> orig
'some text about [debian](https://debian.org "woohoo") yay!'
>>> re.sub("\[([^]]+?)\]\(([^)\s]+?)(?:\s.*?)?\)", r'<a href="\2">\1</a>', orig)
'some text about <a href="https://debian.org">debian</a> yay!'
Closes #19
---
src/pages.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/pages.py b/src/pages.py
index be772f5..caa4932 100644
--- a/src/pages.py
+++ b/src/pages.py
@@ -37,6 +37,10 @@ from .config import APP_NAME, APP_ID, APP_VERSION, FMT_DAY_LIST
from . import models
+def _convert_markdown_links(text):
+ """converts markdown links to html hyperlinks"""
+ return re.sub("\[([^]]+?)\]\(([^)\s]+?)(?:\s.*?)?\)", r'<a href="\2">\1</a>', text)
+
def _clean_markup(text):
"""remove unsupported markup from text to use in label"""
text = text.replace("<p>", "").replace("</p>", "\n\n")
@@ -481,12 +485,12 @@ class EventDetailPage(BasePage):
# By now just filter out, but a more in-depth look should be taken
if obj.abstract is not None and obj.abstract != "" and obj.abstract != "None":
label = Gtk.Label(**LBL_PROPS)
- label.set_markup(_clean_markup(obj.abstract))
+ label.set_markup(_clean_markup(_convert_markdown_links(obj.abstract)))
box.pack_start(label, False, False, 16)
if obj.description is not None and obj.description != "" and obj.description != "None":
label = Gtk.Label(**LBL_PROPS)
- label.set_markup(_clean_markup(obj.description))
+ label.set_markup(_clean_markup(_convert_markdown_links(obj.description)))
box.pack_start(label, False, False, 16)
## links
|