Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 allo-
       cated 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 <kristaps@bsd.lv>.

FreeBSD	Ports 14.quarterly	  $Mdocdate$			   KCGIHTML(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kcgihtml&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help