LOWDOWN_DOC_NEW(3)

NAME
lowdown_doc_new - allocate a Markdown parser

LIBRARY
liblowdown

SYNOPSIS
#include <sys/queue.h>
#include <stdio.h>
#include <lowdown.h>
struct lowdown_doc *
lowdown_doc_new(const struct lowdown_opts *opts);

DESCRIPTION
Allocates a Markdown parser instance with configuration opts. If opts is NULL, all values are assumed to be zero except for the maximum parse depth, which is fixed at 128.

The returned instance may be used with multiple invocations of lowdown_doc_parse(3).

RETURN VALUES
Returns a pointer to the parser or NULL on memory allocation failure. The returned pointer must be freed with a call to lowdown_doc_free(3).

Any pointer values in opts, such as those in meta and metaovr, are copied over, so they need not persist after being passed to lowdown_doc_new().

EXAMPLES
The following parses a document in the NUL-terminated string data and throws away the result.

    struct lowdown_doc *doc;
    struct lowdown_node *n;
    doc = lowdown_doc_new(NULL);
    if (doc == NULL)
      err(1, NULL);
    n = lowdown_doc_parse(doc, NULL, data, strlen(data));
    if (n == NULL)
      err(1, NULL);
    lowdown_node_free(n);
    lowdown_doc_free(doc);

SEE ALSO
lowdown(3), lowdown_doc_free(3), lowdown_doc_parse(3)