commit 4e01a3b
default
·
2023-11-20 19:53:57 +0000 UTC
parent 73b1ef1
Some xs_html refactoring.
1 files changed,
+21,
-13
M
html.c
M
html.c
+21,
-13
1@@ -1692,7 +1692,8 @@ xs_str *html_people_list(snac *snac, xs_str *os, xs_list *list, const char *head
2 xs *s = xs_str_new(NULL);
3 xs *es1 = encode_html(header);
4 xs *h = xs_fmt("<h2 class=\"snac-header\">%s</h2>\n", es1);
5- char *p, *actor_id;
6+ xs_list *p;
7+ char *actor_id;
8
9 s = xs_str_cat(s, h);
10
11@@ -1704,31 +1705,38 @@ xs_str *html_people_list(snac *snac, xs_str *os, xs_list *list, const char *head
12 xs *actor = NULL;
13
14 if (valid_status(actor_get(actor_id, &actor))) {
15- s = xs_str_cat(s, "<div class=\"snac-post\">\n<div class=\"snac-post-header\">\n");
16+ s = xs_str_cat(s, "<div class=\"snac-post\">\n");
17+
18+ xs_html *snac_post_header = xs_html_tag("div",
19+ xs_html_attr("class", "snac-post-header"),
20+ html_actor_icon(actor, xs_dict_get(actor, "published"), NULL, NULL, 0));
21
22 {
23- xs_html *actor_icon = html_actor_icon(actor,
24- xs_dict_get(actor, "published"), NULL, NULL, 0);
25- xs *s1 = xs_html_render(actor_icon);
26- s = xs_str_cat(s, s1, "</div>\n");
27+ xs *s1 = xs_html_render(snac_post_header);
28+ s = xs_str_cat(s, s1);
29 }
30
31 /* content (user bio) */
32 char *c = xs_dict_get(actor, "summary");
33
34 if (!xs_is_null(c)) {
35- s = xs_str_cat(s, "<div class=\"snac-content\">\n");
36-
37 xs *sc = sanitize(c);
38
39+ xs_html *snac_content = xs_html_tag("div",
40+ xs_html_attr("class", "snac-content"));
41+
42 if (xs_startswith(sc, "<p>"))
43- s = xs_str_cat(s, sc);
44- else {
45- xs *s1 = xs_fmt("<p>%s</p>", sc);
46+ xs_html_add(snac_content,
47+ xs_html_raw(sc)); /* already sanitized */
48+ else
49+ xs_html_add(snac_content,
50+ xs_html_tag("p",
51+ xs_html_raw(sc))); /* already sanitized */
52+
53+ {
54+ xs *s1 = xs_html_render(snac_content);
55 s = xs_str_cat(s, s1);
56 }
57-
58- s = xs_str_cat(s, "</div>\n");
59 }
60
61