diff options
author | default <nobody@localhost> | 2022-10-07 18:30:54 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2022-10-07 18:30:54 +0200 |
commit | 9aec7c9fa8fe5396451aae608f8b9c58346f4b4e (patch) | |
tree | f5a76086ed506e3cf9fa6520b00e147ec4101123 /html.c | |
parent | 266207a9a5292d4eade365d3a4e2fe678af8189c (diff) |
Moved message formatting to format.c.
Diffstat (limited to 'html.c')
-rw-r--r-- | html.c | 110 |
1 files changed, 0 insertions, 110 deletions
@@ -12,116 +12,6 @@ #include "snac.h" -d_char *not_really_markdown(char *content, d_char **f_content) -/* formats a content using some Markdown rules */ -{ - d_char *s = NULL; - int in_pre = 0; - int in_blq = 0; - xs *list; - char *p, *v; - xs *wrk = xs_str_new(NULL); - - { - /* split by special markup */ - xs *sm = xs_regex_split(content, - "(`[^`]+`|\\*\\*?[^\\*]+\\*?\\*|https?:/" "/[^[:space:]]+)"); - int n = 0; - - p = sm; - while (xs_list_iter(&p, &v)) { - if ((n & 0x1)) { - /* markup */ - if (xs_startswith(v, "`")) { - xs *s1 = xs_crop(xs_dup(v), 1, -1); - xs *s2 = xs_fmt("<code>%s</code>", s1); - wrk = xs_str_cat(wrk, s2); - } - else - if (xs_startswith(v, "**")) { - xs *s1 = xs_crop(xs_dup(v), 2, -2); - xs *s2 = xs_fmt("<b>%s</b>", s1); - wrk = xs_str_cat(wrk, s2); - } - else - if (xs_startswith(v, "*")) { - xs *s1 = xs_crop(xs_dup(v), 1, -1); - xs *s2 = xs_fmt("<i>%s</i>", s1); - wrk = xs_str_cat(wrk, s2); - } - else - if (xs_startswith(v, "http")) { - xs *s1 = xs_fmt("<a href=\"%s\">%s</a>", v, v); - wrk = xs_str_cat(wrk, s1); - } - else - /* what the hell is this */ - wrk = xs_str_cat(wrk, v); - } - else - /* surrounded text, copy directly */ - wrk = xs_str_cat(wrk, v); - - n++; - } - } - - /* now work by lines */ - p = list = xs_split(wrk, "\n"); - - s = xs_str_new(NULL); - - while (xs_list_iter(&p, &v)) { - xs *ss = xs_strip(xs_dup(v)); - - if (xs_startswith(ss, "```")) { - if (!in_pre) - s = xs_str_cat(s, "<pre>"); - else - s = xs_str_cat(s, "</pre>"); - - in_pre = !in_pre; - continue; - } - - if (xs_startswith(ss, ">")) { - /* delete the > and subsequent spaces */ - ss = xs_strip(xs_crop(ss, 1, 0)); - - if (!in_blq) { - s = xs_str_cat(s, "<blockquote>"); - in_blq = 1; - } - - s = xs_str_cat(s, ss); - s = xs_str_cat(s, "<br>"); - - continue; - } - - if (in_blq) { - s = xs_str_cat(s, "</blockquote>"); - in_blq = 0; - } - - s = xs_str_cat(s, ss); - s = xs_str_cat(s, "<br>"); - } - - if (in_blq) - s = xs_str_cat(s, "</blockquote>"); - if (in_pre) - s = xs_str_cat(s, "</pre>"); - - /* some beauty fixes */ - s = xs_replace_i(s, "</blockquote><br>", "</blockquote>"); - - *f_content = s; - - return *f_content; -} - - int login(snac *snac, char *headers) /* tries a login */ { |