From 8e0ccc6d76af26c83e5adebfaa18aef364e59975 Mon Sep 17 00:00:00 2001
From: default
Date: Sun, 26 May 2024 09:27:36 +0200
Subject: Added markdown-like links.
---
format.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
(limited to 'format.c')
diff --git a/format.c b/format.c
index b021f55..0a8b72c 100644
--- a/format.c
+++ b/format.c
@@ -87,7 +87,12 @@ static xs_str *format_line(const char *line, xs_list **attach)
/* split by markup */
xs *sm = xs_regex_split(line,
- "(`[^`]+`|\\*\\*?[^\\*]+\\*?\\*|https?:/" "/[^[:space:]]+)");
+ "("
+ "`[^`]+`" "|"
+ "\\*\\*?[^\\*]+\\*?\\*" "|"
+ "\\[[^]]+\\]\\([^\\)]+\\)" "|"
+ "https?:/" "/[^[:space:]]+"
+ ")");
int n = 0;
p = sm;
@@ -135,6 +140,16 @@ static xs_str *format_line(const char *line, xs_list **attach)
s = xs_str_cat(s, s1);
}
}
+ else
+ if (*v == '[') {
+ /* markdown-like links [label](url) */
+ xs *w = xs_strip_chars_i(xs_dup(v), "[)");
+ xs *l = xs_split(w, "](");
+ xs *link = xs_fmt("%s",
+ xs_list_get(l, 1), xs_list_get(l, 0));
+
+ s = xs_str_cat(s, link);
+ }
else
s = xs_str_cat(s, v);
}
--
cgit v1.2.3
From 36764b8ade5ee4686b04acb251f586eec4dacfad Mon Sep 17 00:00:00 2001
From: default
Date: Mon, 27 May 2024 05:49:29 +0200
Subject: Minor tweak to markdown-like links.
---
format.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
(limited to 'format.c')
diff --git a/format.c b/format.c
index 0a8b72c..1020ddd 100644
--- a/format.c
+++ b/format.c
@@ -144,11 +144,16 @@ static xs_str *format_line(const char *line, xs_list **attach)
if (*v == '[') {
/* markdown-like links [label](url) */
xs *w = xs_strip_chars_i(xs_dup(v), "[)");
- xs *l = xs_split(w, "](");
- xs *link = xs_fmt("%s",
+ xs *l = xs_split_n(w, "](", 1);
+
+ if (xs_list_len(l) == 2) {
+ xs *link = xs_fmt("%s",
xs_list_get(l, 1), xs_list_get(l, 0));
- s = xs_str_cat(s, link);
+ s = xs_str_cat(s, link);
+ }
+ else
+ s = xs_str_cat(s, v);
}
else
s = xs_str_cat(s, v);
--
cgit v1.2.3