NAME¶
mkd_functions
—
access and process Markdown documents.
LIBRARY¶
Markdown (libmarkdown, -lmarkdown)
SYNOPSIS¶
#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*);
DESCRIPTION¶
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
Markdown documents into HTML.
Given a
MMIOT* generated by
mkd_in
() or
mkd_string
(),
mkd_compile
() compiles the document into
<style>,
Pandoc, and
html
sections.
Once compiled, the document can be examined and written by the
mkd_css
(),
mkd_document
(),
mkd_generatecss
(),
mkd_generatehtml
(),
mkd_generatetoc
(),
mkd_toc
(),
mkd_xhtmlpage
(),
mkd_doc_title
(),
mkd_doc_author
(), and
mkd_doc_date
() functions.
mkd_css
() allocates a string and populates it
with any <style> sections provided in the document,
mkd_generatecss
() writes any <style>
sections to the output,
mkd_document
()
points
text to the text of the document and
returns the size of the document,
mkd_generatehtml
() writes the rest of the
document to the output, and
mkd_doc_title
(),
mkd_doc_author
(),
mkd_doc_date
() are used to read the
contents of a Pandoc header, if any.
mkd_xhtmlpage
() writes a xhtml page
containing the document. The regular set of flags can be passed.
mkd_toc
() 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
malloc
(), and returns the size.
mkd_generatetoc
() is like
mkd_toc
(), except that it writes the
document outline to the given
FILE*
argument.
mkd_cleanup
() deletes a
MMIOT* after processing is done.
mkd_compile
() accepts the same flags that
markdown
() 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.
RETURN VALUES¶
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.
SEE ALSO¶
markdown(1),
markdown(3),
mkd-line(3),
markdown(7),
mkd-extensions(7),
mmap(2).
http://daringfireball.net/projects/markdown/syntax
BUGS¶
Error handling is minimal at best.