GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
LOWDOWN_BUF(3) FreeBSD Library Functions Manual LOWDOWN_BUF(3)

lowdown_buf
parse a Markdown buffer into formatted output

library “liblowdown”

#include <sys/queue.h>
#include <stdio.h>
#include <lowdown.h>

int
lowdown_buf(const struct lowdown_opts *opts, const char *buf, size_t bufsz, char **ret, size_t *retsz, struct lowdown_metaq *metaq);

Parses a lowdown(5) buffer buf of size bufsz into an output buffer ret of size retsz according to a 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.

The caller is responsible for freeing ret and metaq.

Returns zero on failure, non-zero on success. On failure, the values pointed to by res and rsz are undefined.

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 = NULL, *obuf;
char rbuf[1024];
size_t sz, bufsz = 0, obufsz;

while (!(feof(stdin) || ferror(stdin))) {
	sz = fread(rbuf, 1, sizeof(rbuf), stdin);
	if (sz == 0)
		err(1, "fread");
	buf = realloc(buf, bufsz + sz);
	if (buf == NULL)
		err(1, NULL);
	memcpy(buf + bufsz, rbuf, sz);
	bufsz += sz;
}

if (ferror(stdin))
	err(1, "fread");

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_buf(&opts, buf, bufsz, &obuf, &obufsz, NULL))
	errx(1, "lowdown_buf");
fwrite(buf, 1, bufsz, stdout);
free(buf);
free(obuf);

lowdown(3), lowdown_metaq_free(3)
June 12, 2022 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.