From 154f6179095b95f4b21cf607ef625e68f10a498b Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 7 May 2019 22:08:15 +0100 Subject: [PATCH] wiki: Handle email addresses Signed-off-by: Michael Tremer --- src/backend/blog.py | 3 --- src/backend/wiki.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/backend/blog.py b/src/backend/blog.py index e79dd308..9aa39922 100644 --- a/src/backend/blog.py +++ b/src/backend/blog.py @@ -17,9 +17,6 @@ link_patterns = ( # Find bug reports (re.compile(r"(?:#(\d+))", re.I), r"https://bugzilla.ipfire.org/show_bug.cgi?id=\1"), - # Email Addresses - (re.compile(r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"), r"mailto:\1"), - # CVE Numbers (re.compile(r"(?:CVE)[\s\-](\d{4}\-\d+)"), r"https://cve.mitre.org/cgi-bin/cvename.cgi?name=\1"), ) diff --git a/src/backend/wiki.py b/src/backend/wiki.py index c445529d..eb889bad 100644 --- a/src/backend/wiki.py +++ b/src/backend/wiki.py @@ -210,6 +210,9 @@ class Page(misc.Object): # Interwiki links e.g. [[wp>IPFire]] interwiki_link = re.compile(r"\[\[(\w+)>(.+?)(?:\|(.+?))?\]\]") + # Mail link + email_link = re.compile(r"\[\[([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)(?:\|(.+?))?\]\]") + def init(self, id, data=None): self.id = id self.data = data @@ -321,6 +324,12 @@ class Page(misc.Object): return " ".join(s) + def _render_email_link(self, m): + address, alias = m.groups() + + return """%s""" \ + % (address, alias or address) + def _render(self, text): logging.debug("Rendering %s" % self) @@ -363,14 +372,13 @@ class Page(misc.Object): # Handle external links text = self.external_link.sub(self._render_external_link, text) + # Handle email links + text = self.email_link.sub(self._render_email_link, text) + # Add wiki links patterns = ( (r"\[\[([\w\d\/\-\.]+)(?:\|(.+?))\]\]", r"\1", r"\2", None, True), (r"\[\[([\w\d\/\-\.]+)\]\]", r"\1", r"\1", self.backend.wiki.get_page_title, True), - - # Mail - (r"\[\[([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)\]\]", - r"\1", r"\1", None, False), ) for pattern, link, title, repl, internal in patterns: -- 2.47.3