commit c963a29
default
·
2023-11-28 09:55:12 +0000 UTC
parent 645a27d
More xs_html refactoring.
1 files changed,
+28,
-25
M
html.c
M
html.c
+28,
-25
1@@ -745,29 +745,33 @@ xs_str *html_user_header(snac *snac, xs_str *s, int local)
2
3 /* user info */
4 {
5- s = xs_str_cat(s, "<div class=\"h-card snac-top-user\">\n");
6+ xs_html *top_user = xs_html_tag("div",
7+ xs_html_attr("class", "h-card snac-top-user"));
8
9 if (local) {
10- const char *header = xs_dict_get(snac->config, "header");
11+ char *header = xs_dict_get(snac->config, "header");
12 if (header && *header) {
13- xs *h = encode_html(header);
14- xs *s1 = xs_fmt("<div class=\"snac-top-user-banner\" style=\"clear: both\">"
15- "<br><img src=\"%s\"/></div>\n", h);
16- s = xs_str_cat(s, s1);
17+ xs_html_add(top_user,
18+ xs_html_tag("div",
19+ xs_html_attr("class", "snac-top-user-banner"),
20+ xs_html_attr("style", "clear: both"),
21+ xs_html_sctag("br", NULL),
22+ xs_html_sctag("img",
23+ xs_html_attr("src", header))));
24 }
25 }
26
27- const char *_tmpl =
28- "<p class=\"p-name snac-top-user-name\">%s</p>\n"
29- "<p class=\"snac-top-user-id\">@%s@%s</p>\n";
30-
31- xs *es1 = encode_html(xs_dict_get(snac->config, "name"));
32- xs *es2 = encode_html(xs_dict_get(snac->config, "uid"));
33- xs *es3 = encode_html(xs_dict_get(srv_config, "host"));
34-
35- xs *s1 = xs_fmt(_tmpl, es1, es2, es3);
36+ xs *handle = xs_fmt("@%s@%s",
37+ xs_dict_get(snac->config, "uid"),
38+ xs_dict_get(srv_config, "host"));
39
40- s = xs_str_cat(s, s1);
41+ xs_html_add(top_user,
42+ xs_html_tag("p",
43+ xs_html_attr("class", "p-name snac-top-user-name"),
44+ xs_html_text(xs_dict_get(snac->config, "name"))),
45+ xs_html_tag("p",
46+ xs_html_attr("class", "snac-top-user-id"),
47+ xs_html_text(handle)));
48
49 if (local) {
50 xs *es1 = encode_html(xs_dict_get(snac->config, "bio"));
51@@ -779,10 +783,8 @@ xs_str *html_user_header(snac *snac, xs_str *s, int local)
52 xs_html_attr("class", "p-note snac-top-user-bio"),
53 xs_html_raw(bio2)); /* already sanitized */
54
55- {
56- xs *s1 = xs_html_render(top_user_bio);
57- s = xs_str_cat(s, s1);
58- }
59+ xs_html_add(top_user,
60+ top_user_bio);
61
62 xs_dict *metadata = xs_dict_get(snac->config, "metadata");
63 if (xs_type(metadata) == XSTYPE_DICT) {
64@@ -814,14 +816,15 @@ xs_str *html_user_header(snac *snac, xs_str *s, int local)
65 xs_html_sctag("br", NULL));
66 }
67
68- {
69- xs *s1 = xs_html_render(snac_metadata);
70- s = xs_str_cat(s, s1);
71- }
72+ xs_html_add(top_user,
73+ snac_metadata);
74 }
75 }
76
77- s = xs_str_cat(s, "</div>\n");
78+ {
79+ xs *s1 = xs_html_render(top_user);
80+ s = xs_str_cat(s, s1);
81+ }
82 }
83
84 return s;