summaryrefslogtreecommitdiff
path: root/html.c
diff options
context:
space:
mode:
Diffstat (limited to 'html.c')
-rw-r--r--html.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/html.c b/html.c
index c7feff0..263a888 100644
--- a/html.c
+++ b/html.c
@@ -1899,23 +1899,25 @@ int html_get_handler(const xs_dict *req, const char *q_path,
if (!xs_startswith(id, snac.actor))
continue;
- xs *es1 = sanitize(xs_dict_get(msg, "content"));
- xs *content = encode_html(es1);
+ xs *content = sanitize(xs_dict_get(msg, "content"));
+
+ // We SHOULD only use sanitized one for description.
+ // So, only encode for feed title, while the description just keep it sanitized as is.
+ xs *es_title_enc = encode_html(xs_dict_get(msg, "content"));
+ xs *es_title = xs_replace(es_title_enc, "<br>", "\n");
xs *title = xs_str_new(NULL);
int i;
- for (i = 0; content[i] && content[i] != '<' && content[i] != '&' && i < 40; i++)
- title = xs_append_m(title, &content[i], 1);
+ for (i = 0; es_title[i] && es_title[i] != '\n' && i < 50; i++)
+ title = xs_append_m(title, &es_title[i], 1);
- xs *es11 = encode_html(title);
- xs *es12 = encode_html(content);
xs *s = xs_fmt(
"<item>\n"
"<title>%s...</title>\n"
"<link>%s</link>\n"
"<description>%s</description>\n"
"</item>\n",
- es11, id, es12
+ title, id, content
);
rss = xs_str_cat(rss, s);