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) | |||
| 144 | if (*v == '[') { | 144 | if (*v == '[') { |
| 145 | /* markdown-like links [label](url) */ | 145 | /* markdown-like links [label](url) */ |
| 146 | xs *w = xs_strip_chars_i(xs_dup(v), "[)"); | 146 | xs *w = xs_strip_chars_i(xs_dup(v), "[)"); |
| 147 | xs *l = xs_split(w, "]("); | 147 | xs *l = xs_split_n(w, "](", 1); |
| 148 | xs *link = xs_fmt("<a href=\"%s\">%s</a>", | 148 | |
| 149 | if (xs_list_len(l) == 2) { | ||
| 150 | xs *link = xs_fmt("<a href=\"%s\">%s</a>", | ||
| 149 | xs_list_get(l, 1), xs_list_get(l, 0)); | 151 | xs_list_get(l, 1), xs_list_get(l, 0)); |
| 150 | 152 | ||
| 151 | s = xs_str_cat(s, link); | 153 | s = xs_str_cat(s, link); |
| 154 | } | ||
| 155 | else | ||
| 156 | s = xs_str_cat(s, v); | ||
| 152 | } | 157 | } |
| 153 | else | 158 | else |
| 154 | s = xs_str_cat(s, v); | 159 | s = xs_str_cat(s, v); |