NAME
lowdown_file
—
parse a Markdown file into formatted
output
LIBRARY
library “liblowdown”
SYNOPSIS
#include
<sys/queue.h>
#include <stdio.h>
#include <lowdown.h>
int
lowdown_file
(const struct lowdown_opts
*opts, FILE *in, char
**ret, size_t *retsz, struct
lowdown_metaq *metaq);
DESCRIPTION
Parses a lowdown(5) file stream in into an output buffer
ret of size retsz according to
configuration opts. The output format is specified by
opts->type. If
LOWDOWN_METADATA
is set in
opts->feat and metaq is not
NULL
, metaq is filled with
metadata rendered in the given output format.
On success, the caller is responsible for freeing ret and metaq.
RETURN VALUES
Returns zero on failure, non-zero on success. On failure, the values pointed to by res and rsz are undefined.
EXAMPLES
The following parses standard input into a standalone HTML5 document. It enables footnotes, autolinks, tables, superscript, strikethrough, fenced codeblocks, commonmark, definition lists, extended image attributes, and metadata processing. The output passes through raw HTML and has smart typography.
struct lowdown_opts opts; char *buf; size_t bufsz; memset(&opts, 0, sizeof(struct lowdown_opts)); opts.type = LOWDOWN_HTML; opts.feat = LOWDOWN_FOOTNOTES | LOWDOWN_AUTOLINK | LOWDOWN_TABLES | LOWDOWN_SUPER | LOWDOWN_STRIKE | LOWDOWN_FENCED | LOWDOWN_COMMONMARK | LOWDOWN_DEFLIST | LOWDOWN_IMG_EXT | LOWDOWN_METADATA; opts.oflags = LOWDOWN_HTML_HEAD_IDS | LOWDOWN_HTML_NUM_ENT | LOWDOWN_HTML_OWASP | LOWDOWN_SMARTY | LOWDOWN_STANDALONE; if (!lowdown_file(&opts, stdin, &buf, &bufsz, NULL)) errx(1, "lowdown_file"); fwrite(buf, 1, bufsz, stdout); free(buf);