diff options
author | default <nobody@localhost> | 2022-11-20 05:24:11 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-20 05:24:11 +0100 |
commit | 86aa0ff4b6b0c7fe054e027be6492f07f9a3d7f2 (patch) | |
tree | dfd7980cb6b90c0e028be6798133528b6663ee05 | |
parent | 50d73a6e94c528693155466d4b5c374939fe20f5 (diff) |
More RSS tweaks.
-rw-r--r-- | html.c | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -1129,19 +1129,32 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char * continue; xs *content = sanitize(xs_dict_get(msg, "content")); - char *title = xs_dict_get(msg, "published"); + xs *title = xs_dup(content); + int i = -1; /* escape tags */ content = xs_replace_i(content, "<", "<"); content = xs_replace_i(content, ">", ">"); + if (strlen(title) > 40) + title[i = 40] = '\0'; + + if ((v = strchr(title, '<'))) + title[i = (v - title)] = '\0'; + + if ((v = strchr(title, '&'))) + title[i = (v - title)] = '\0'; + + if (i != -1) + title = xs_str_cat(xs_strip(title), "..."); + xs *s = xs_fmt( "<item>\n" "<title>%s</title>\n" "<link>%s</link>\n" "<description>%s</description>\n" "</item>\n", - xs_is_null(title) ? "..." : title, id, content + title, id, content ); rss = xs_str_cat(rss, s); |