MKD_FUNCTIONS(3) Library Functions Manual MKD_FUNCTIONS(3)

mkd_functionsaccess and process Markdown documents.

Markdown (libmarkdown, -lmarkdown)

#include <mkdio.h>

int
mkd_compile(MMIOT *document, int flags);

int
mkd_css(MMIOT *document, char **doc);

int
mkd_generatecss(MMIOT *document, FILE *output);

int
mkd_document(MMIOT *document, char **doc);

int
mkd_generatehtml(MMIOT *document, FILE *output);

int
mkd_xhtmlpage(MMIOT *document, int flags, FILE *output);

int
mkd_toc(MMIOT *document, char **doc);

void
mkd_generatetoc(MMIOT *document, FILE *output);

void
mkd_cleanup(MMIOT*);

char*
mkd_doc_title(MMIOT*);

char*
mkd_doc_author(MMIOT*);

char*
mkd_doc_date(MMIOT*);

The markdown format supported in this implementation includes Pandoc-style header and inline <style> blocks, and the standard markdown(3) functions do not provide access to the data provided by either of those extensions. These functions give you access to that data, plus they provide a finer-grained way of converting documents into HTML.

Given a MMIOT* generated by () or (), mkd_compile() compiles the document into <style>, , and sections.

Once compiled, the document can be examined and written by the (), (), mkd_generatecss(), (), mkd_generatetoc(), mkd_toc(), mkd_xhtmlpage(), mkd_doc_title(), mkd_doc_author(), and mkd_doc_date() functions.

() allocates a string and populates it with any <style> sections provided in the document, () writes any <style> sections to the output, mkd_document() points text to the text of the document and returns the size of the document, () writes the rest of the document to the output, and (), (), () are used to read the contents of a Pandoc header, if any.

() writes a xhtml page containing the document. The regular set of flags can be passed.

() writes a document outline, in the form of a collection of nested lists with links to each header in the document, into a string allocated with (), and returns the size.

() is like mkd_toc(), except that it writes the document outline to the given FILE* argument.

() deletes a MMIOT* after processing is done.

() accepts the same flags that () and mkd_string() do;

MKD_NOIMAGE
Do not process `![]' and remove <img> tags from the output.
MKD_NOLINKS
Do not process `[]' and remove <a> tags from the output.
MKD_NOPANTS
Do not do Smartypants-style mangling of quotes, dashes, or ellipses.
MKD_TAGTEXT
Process the input as if you were inside a html tag. This means that no html tags will be generated, and mkd_compile() will attempt to escape anything that might terribly confuse a web browser.
MKD_NO_EXT
Do not process any markdown pseudo-protocols when handing [][] links.
MKD_NOHEADER
Do not attempt to parse any Pandoc-style headers.
MKD_TOC
Label all headers for use with the mkd_generatetoc() function.
MKD_1_COMPAT
MarkdownTest_1.0 compatibility flag; trim trailing spaces from the first line of code blocks and disable implicit reference links.
MKD_NOSTRIKETHROUGH
Disable strikethrough support.

The function mkd_compile() returns 1 in the case of success, or 0 if the document is already compiled. The function mkd_generatecss() returns the number of bytes written in the case of success, or EOF if an error occurred. The function mkd_generatehtml() returns 0 on success, -1 on failure.

markdown(1), markdown(3), mkd-line(3), markdown(7), mkd-extensions(7), mmap(2).

http://daringfireball.net/projects/markdown/syntax

Error handling is minimal at best.

January 18, 2008 Mastodon