commit 3b818f557ae3c1073f1464fe0a7319a0e025ba86
parent 3aeae5e60219611df7ad59bd739bcfd2e5a25d4a
Author: Eirik Oeverby <ltning-codeberg@anduin.net>
Date: Mon, 6 Jan 2025 20:03:00 +0100
Add short_description_raw option
Diffstat:
3 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/doc/snac.8 b/doc/snac.8
@@ -205,6 +205,8 @@ The email address of the instance administrator (optional).
The user name of the instance administrator (optional).
.It Ic short_description
A textual short description about the instance (optional).
+.It Ic short_description_raw
+Whether to interpret short_descript as raw string or convert to HTML (optional)
.It Ic fastcgi
If set to true,
.Nm
diff --git a/html.c b/html.c
@@ -537,10 +537,11 @@ xs_html *html_instance_head(void)
static xs_html *html_instance_body(void)
{
- const char *host = xs_dict_get(srv_config, "host");
- const char *sdesc = xs_dict_get(srv_config, "short_description");
- const char *email = xs_dict_get(srv_config, "admin_email");
- const char *acct = xs_dict_get(srv_config, "admin_account");
+ const char *host = xs_dict_get(srv_config, "host");
+ const char *sdesc = xs_dict_get(srv_config, "short_description");
+ const char *sdescraw = xs_dict_get(srv_config, "short_description_raw");
+ const char *email = xs_dict_get(srv_config, "admin_email");
+ const char *acct = xs_dict_get(srv_config, "admin_account");
xs *blurb = xs_replace(snac_blurb, "%host%", host);
@@ -553,12 +554,21 @@ static xs_html *html_instance_body(void)
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 (!xs_is_null(sdescraw) && xs_type(sdescraw) == XSTYPE_TRUE) {
+ xs_html_add(dl,
+ xs_html_tag("di",
+ xs_html_tag("dt",
+ xs_html_text(L("Site description"))),
+ xs_html_tag("dd",
+ xs_html_raw(sdesc))));
+ } else {
+ 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);
diff --git a/utils.c b/utils.c
@@ -36,6 +36,7 @@ static const char *default_srv_config = "{"
"\"admin_account\": \"\","
"\"title\": \"\","
"\"short_description\": \"\","
+ "\"short_description_raw\": false,"
"\"protocol\": \"https\","
"\"fastcgi\": false"
"}";