SOLDOUT_RENDERERS(3)

NAME
soldout_renderers, lus_attr_escape, lus_body_escape - various markdown to (X)HTML renderers for soldout

SYNOPSIS
#include <renderers.h>
void
lus_attr_escape(struct buf *ob, const char *str, size_t len);
void
lus_body_escape(struct buf *ob, const char *str, size_t len);
extern const struct mkd_renderer mkd_html;
extern const struct mkd_renderer mkd_xhtml;
extern const struct mkd_renderer discount_html;
extern const struct mkd_renderer discount_xhtml;
extern const struct mkd_renderer nat_html;
extern const struct mkd_renderer nat_xhtml;

DESCRIPTION
The lus_attr_escape() and lus_body_escape() functions escape all problematic characters in (X)HTML: ‘<’, ‘>’, ‘&’, ‘"’; and ‘<’, ‘>’, ‘&’ respectively. They accept a string str of the length len and output into ob buffer.

All provided renderers come with two flavors, “_html” producing HTML code (self-closing tags are rendered like this: <hr>), and “_xhtml” producing XHTML code (self-closing tags like <hr />).

mkd_html and mkd_xhtml implement standard markdown to (X)HTML translation without any extensions.

discount_html and discount_xhtml implement on top of the standard markdown some of the extensions found in Discount plus PHP-Markdown-like tables. Here is a list of all extensions included in these renderers:

•   image size specification, by appending “=(width)x(height)” to the link

•   pseudo-protocols in links:

    •   “abbr:description” for <abbr title="description">...</abbr>

    •   “class:name” for <span class="name">...</span>

    •   “id:name” for <span id="name">...</span>

    •   “raw:text” for verbatim unprocessed text inclusion

•   class blocks: blockquotes beginning with “%class%” will be rendered as a div of the given class(es)

nat_html and nat_xhtml implement on top of the Discount extensions Natasha's own extensions. Here is a list of these extensions:

•   id attribute for headers, using the syntax “id#Header text”

•   class attribute for paragraphs, by putting class name(s) between parenthesis at the very beginning of the paragraph

•   <ins> and <del> spans, using respectively “++” and “--” as delimiters (with emphasis-like restrictions, i.e. an opening delimiter cannot be followed by a whitespace, and a closing delimiter cannot be preceded by a whitespace)

•   plain <span> without attribute, using emphasis-like delimiter ‘|’

SEE ALSO
soldout_buffer(3), soldout_markdown(3), HTML specification: https://www.w3.org/TR/html/, Discount: http://www.pell.portland.or.us/~orc/Code/discount/, PHP-Markdown tables: https://michelf.ca/projects/php-markdown/extra/#table

AUTHORS
-nosplit The soldout library was written by Natasha "Kerensikova" Porte <natacha@instinctive.eu>. Manual page was originally written by Massimo Manghi <mxmanghi@apache.org>, and rewritten to mdoc format by Svyatoslav Mishyn <juef@openmailbox.org>.