summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-11-28 10:35:57 +0100
committerdefault <nobody@localhost>2023-11-28 10:35:57 +0100
commit645a27d4eeb36041f4a0091307d8fdadbac97ea7 (patch)
treebff0107ba8a8efeff9a377cd21417f09a3046cd8
parent179a7ae014bae0c995f34b446d3868dd42a2207c (diff)
Converted public user into to xs_html.
-rw-r--r--html.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/html.c b/html.c
index 95541d2..2fd0bbd 100644
--- a/html.c
+++ b/html.c
@@ -774,34 +774,50 @@ xs_str *html_user_header(snac *snac, xs_str *s, int local)
xs *bio1 = not_really_markdown(es1, NULL);
xs *tags = xs_list_new();
xs *bio2 = process_tags(snac, bio1, &tags);
- xs *s1 = xs_fmt("<div class=\"p-note snac-top-user-bio\">%s</div>\n", bio2);
- s = xs_str_cat(s, s1);
+ xs_html *top_user_bio = xs_html_tag("div",
+ xs_html_attr("class", "p-note snac-top-user-bio"),
+ xs_html_raw(bio2)); /* already sanitized */
+
+ {
+ xs *s1 = xs_html_render(top_user_bio);
+ s = xs_str_cat(s, s1);
+ }
xs_dict *metadata = xs_dict_get(snac->config, "metadata");
if (xs_type(metadata) == XSTYPE_DICT) {
xs_str *k;
xs_str *v;
- s = xs_str_cat(s, "<br><div class=\"snac-metadata\">\n");
+ xs_html *snac_metadata = xs_html_tag("div",
+ xs_html_attr("class", "snac-metadata"));
while (xs_dict_iter(&metadata, &k, &v)) {
- xs *k2 = encode_html(k);
- xs *v2 = encode_html(v);
- xs *v3 = NULL;
+ xs_html *value;
if (xs_startswith(v, "https:/" "/"))
- v3 = xs_fmt("<a href=\"%s\">%s</a>", v2, v2);
+ value = xs_html_tag("a",
+ xs_html_attr("href", v),
+ xs_html_text(v));
else
- v3 = xs_dup(v2);
-
- xs *s1 = xs_fmt("<span class=\"snac-property-name\">%s</span>:<br>"
- "<span class=\"snac-property-value\">%s</span><br>\n", k2, v3);
+ value = xs_html_text(v);
+
+ xs_html_add(snac_metadata,
+ xs_html_tag("span",
+ xs_html_attr("class", "snac-property-name"),
+ xs_html_text(k)),
+ xs_html_text(":"),
+ xs_html_sctag("br", NULL),
+ xs_html_tag("span",
+ xs_html_attr("class", "snac-property-value"),
+ value),
+ xs_html_sctag("br", NULL));
+ }
+ {
+ xs *s1 = xs_html_render(snac_metadata);
s = xs_str_cat(s, s1);
}
-
- s = xs_str_cat(s, "</div>\n");
}
}