default 3 лет назад
Родитель
Сommit
86aa0ff4b6
1 измененных файлов с 15 добавлено и 2 удалено
  1. 15 2
      html.c

+ 15 - 2
html.c

@@ -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, "<", "&lt;");
             content = xs_replace_i(content, ">", "&gt;");
 
+            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);