kcgihtml - HTML output for kcgi


KCGIHTML(3) Library Functions Manual KCGIHTML(3)

NAME

kcgihtml — HTML output for kcgi

LIBRARY

library “libkcgihtml”

SYNOPSIS

#include <sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>
#include <kcgihtml.h>

DESCRIPTION

Produce output of XML-formed HTML5 content in a kcgi(3) context allocated with khttp_parse(3).

To compile and link, use pkg-config(1) as follows:

% cc ‘pkg-config --cflags kcgi-html‘ -c sample.c
% cc -o sample sample.o ‘pkg-config --libs kcgi-html‘

All of the kcgihtml functions accept a struct khtmlreq object. To use this properly, open a context with khtml_open(), output desired HTML content, then close the context with khtml_close().

EXAMPLES

The following outputs a simple HTML page. It assumes r is a struct kreq pointer. For completeness, this restricts all future writes to HTML.

khttp_head(r, kresps[KRESP_STATUS],
"%s", khttps[KHTTP_200]);
khttp_head(r, kresps[KRESP_CONTENT_TYPE],
"%s", kmimetypes[KMIME_TEXT_HTML]);
khttp_body(r);

khtml_open(&req, r, 0);
kcgi_writer_disable(r);

khtml_elem(&req, KELEM_DOCTYPE);
khtml_elem(&req, KELEM_HTML);

khtml_elem(&req, KELEM_HEAD);
khtml_elem(&req, KELEM_TITLE);
khtml_puts(&req, "Hello, world");
khtml_closeelem(&req, 1); /* title */
khtml_attr(&req, KELEM_LINK,
KATTR_REL, "stylesheet",
KATTR_HREF, "/style.css", KATTR__MAX);
khtml_closeelem(&req, 1); /* head */

khtml_elem(&req, KELEM_BODY);
khtml_elem(&req, KELEM_P);
khtml_puts(&req, "Hello, world");
khtml_entity(&req, KENTITY_mdash);
khtml_printf(&req, "%s", "how are you?");
khtml_putc(&req, ’ ’);
khtml_ncr(&req, 0x1F601); /* smiley */

khtml_close(&req); /* close all scopes */

The element name comment alongside html_closeelem() hints as to which scope is being closed.

SEE ALSO

khtml_attr(3), khtml_close(3), khtml_closeelem(3), khtml_closeto(3), khtml_double(3), khtml_elem(3), khtml_elemat(3), khtml_entity(3), khtml_int(3), khtml_ncr(3), khtml_open(3), khtml_printf(3), khtml_putc(3), khtml_puts(3), khtml_write(3)

STANDARDS

The referenced HTML5 standard is HTML5.2: https://www.w3.org/TR/html52.

AUTHORS

Written by Kristaps Dzonsons <[email protected]>. GNU $Mdocdate$ KCGIHTML(3)


Updated 2024-01-29 - jenkler.se | uex.se