diff options
Diffstat (limited to 'html.c')
| -rw-r--r-- | html.c | 67 |
1 files changed, 66 insertions, 1 deletions
| @@ -456,7 +456,72 @@ xs_html *html_instance_head(void) | |||
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | 458 | ||
| 459 | xs_str *html_instance_header(xs_str *s, char *tag) | 459 | xs_html *html_instance_body(char *tag) |
| 460 | { | ||
| 461 | char *host = xs_dict_get(srv_config, "host"); | ||
| 462 | char *sdesc = xs_dict_get(srv_config, "short_description"); | ||
| 463 | char *email = xs_dict_get(srv_config, "admin_email"); | ||
| 464 | char *acct = xs_dict_get(srv_config, "admin_account"); | ||
| 465 | |||
| 466 | xs *blurb = xs_replace(snac_blurb, "%host%", host); | ||
| 467 | |||
| 468 | xs_html *dl; | ||
| 469 | |||
| 470 | xs_html *body = xs_html_tag("body", | ||
| 471 | xs_html_tag("div", | ||
| 472 | xs_html_attr("class", "snac-instance-blurb"), | ||
| 473 | xs_html_raw(blurb), /* pure html */ | ||
| 474 | dl = xs_html_tag("dl", NULL))); | ||
| 475 | |||
| 476 | if (sdesc && *sdesc) { | ||
| 477 | xs_html_add(dl, | ||
| 478 | xs_html_tag("di", | ||
| 479 | xs_html_tag("dt", | ||
| 480 | xs_html_text(L("Site description"))), | ||
| 481 | xs_html_tag("dd", | ||
| 482 | xs_html_text(sdesc)))); | ||
| 483 | } | ||
| 484 | if (email && *email) { | ||
| 485 | xs *mailto = xs_fmt("mailto:%s", email); | ||
| 486 | |||
| 487 | xs_html_add(dl, | ||
| 488 | xs_html_tag("di", | ||
| 489 | xs_html_tag("dt", | ||
| 490 | xs_html_text(L("Admin email"))), | ||
| 491 | xs_html_tag("dd", | ||
| 492 | xs_html_tag("a", | ||
| 493 | xs_html_attr("href", mailto), | ||
| 494 | xs_html_text(email))))); | ||
| 495 | } | ||
| 496 | if (acct && *acct) { | ||
| 497 | xs *url = xs_fmt("%s/%s", srv_baseurl, acct); | ||
| 498 | xs *handle = xs_fmt("@%s@%s", acct, host); | ||
| 499 | |||
| 500 | xs_html_add(dl, | ||
| 501 | xs_html_tag("di", | ||
| 502 | xs_html_tag("dt", | ||
| 503 | xs_html_text(L("Admin account"))), | ||
| 504 | xs_html_tag("dd", | ||
| 505 | xs_html_tag("a", | ||
| 506 | xs_html_attr("href", url), | ||
| 507 | xs_html_text(handle))))); | ||
| 508 | } | ||
| 509 | |||
| 510 | { | ||
| 511 | xs *l = tag ? xs_fmt(L("Search results for #%s"), tag) : | ||
| 512 | xs_dup(L("Recent posts by users in this instance")); | ||
| 513 | |||
| 514 | xs_html_add(body, | ||
| 515 | xs_html_tag("h2", | ||
| 516 | xs_html_attr("class", "snac-header"), | ||
| 517 | xs_html_text(l))); | ||
| 518 | } | ||
| 519 | |||
| 520 | return body; | ||
| 521 | } | ||
| 522 | |||
| 523 | |||
| 524 | static xs_str *html_instance_header(xs_str *s, char *tag) | ||
| 460 | { | 525 | { |
| 461 | xs_html *head = html_instance_head(); | 526 | xs_html *head = html_instance_head(); |
| 462 | 527 | ||