diff options
Diffstat (limited to 'format.c')
-rw-r--r-- | format.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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("<a href=\"%s\">%s</a>", + xs *l = xs_split_n(w, "](", 1); + + if (xs_list_len(l) == 2) { + xs *link = xs_fmt("<a href=\"%s\">%s</a>", 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); |