diff --git a/html.c b/html.c index aec8afc..d0d6b5e 100644 --- a/html.c +++ b/html.c @@ -456,7 +456,72 @@ xs_html *html_instance_head(void) } -xs_str *html_instance_header(xs_str *s, char *tag) +xs_html *html_instance_body(char *tag) +{ + char *host = xs_dict_get(srv_config, "host"); + char *sdesc = xs_dict_get(srv_config, "short_description"); + char *email = xs_dict_get(srv_config, "admin_email"); + char *acct = xs_dict_get(srv_config, "admin_account"); + + xs *blurb = xs_replace(snac_blurb, "%host%", host); + + xs_html *dl; + + xs_html *body = xs_html_tag("body", + xs_html_tag("div", + xs_html_attr("class", "snac-instance-blurb"), + xs_html_raw(blurb), /* pure html */ + dl = xs_html_tag("dl", NULL))); + + if (sdesc && *sdesc) { + xs_html_add(dl, + xs_html_tag("di", + xs_html_tag("dt", + xs_html_text(L("Site description"))), + xs_html_tag("dd", + xs_html_text(sdesc)))); + } + if (email && *email) { + xs *mailto = xs_fmt("mailto:%s", email); + + xs_html_add(dl, + xs_html_tag("di", + xs_html_tag("dt", + xs_html_text(L("Admin email"))), + xs_html_tag("dd", + xs_html_tag("a", + xs_html_attr("href", mailto), + xs_html_text(email))))); + } + if (acct && *acct) { + xs *url = xs_fmt("%s/%s", srv_baseurl, acct); + xs *handle = xs_fmt("@%s@%s", acct, host); + + xs_html_add(dl, + xs_html_tag("di", + xs_html_tag("dt", + xs_html_text(L("Admin account"))), + xs_html_tag("dd", + xs_html_tag("a", + xs_html_attr("href", url), + xs_html_text(handle))))); + } + + { + xs *l = tag ? xs_fmt(L("Search results for #%s"), tag) : + xs_dup(L("Recent posts by users in this instance")); + + xs_html_add(body, + xs_html_tag("h2", + xs_html_attr("class", "snac-header"), + xs_html_text(l))); + } + + return body; +} + + +static xs_str *html_instance_header(xs_str *s, char *tag) { xs_html *head = html_instance_head();