| MKD_FUNCTIONS(3) | Library Functions Manual | MKD_FUNCTIONS(3) |
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).
BUGS
Error handling is minimal at best.
| January 18, 2008 | Mastodon |