|
|
- .TH MARKDOWN 2
- .SH NAME
- mkd_in, mkd_string, markdown, mkd_compile, mkd_css, mkd_generatecss,
- mkd_document, mkd_generatehtml, mkd_xhtmlpage, mkd_toc, mkd_generatetoc,
- mkd_cleanup, mkd_doc_title, mkd_doc_author, mkd_doc_date, mkd_line,
- mkd_generateline \- convert Markdown text to HTML
- .SH SYNOPSIS
- .ta \w'MMIOT* 'u
- .B #include <mkdio.h>
- .PP
- .B
- MMIOT* mkd_in(FILE *input, int flags)
- .PP
- .B
- MMIOT* mkd_string(char *buf, int size, int flags)
- .PP
- .B
- int markdown(MMIOT *doc, FILE *output, int flags)
- .PP
- .B
- int mkd_compile(MMIOT *document, int flags)
- .PP
- .B
- int mkd_css(MMIOT *document, char **doc)
- .PP
- .B
- int mkd_generatecss(MMIOT *document, FILE *output)
- .PP
- .B
- int mkd_document(MMIOT *document, char **doc)
- .PP
- .B
- int mkd_generatehtml(MMIOT *document, FILE *output)
- .PP
- .B
- int mkd_xhtmlpage(MMIOT *document, int flags, FILE *output)
- .PP
- .B
- int mkd_toc(MMIOT *document, char **doc)
- .PP
- .B
- int mkd_generatetoc(MMIOT *document, FILE *output)
- .PP
- .B
- void mkd_cleanup(MMIOT*);
- .PP
- .B
- char* mkd_doc_title(MMIOT*)
- .PP
- .B
- char* mkd_doc_author(MMIOT*)
- .PP
- .B
- char* mkd_doc_date(MMIOT*)
- .PP
- .B
- int mkd_line(char *string, int size, char **doc, int flags)
- .PP
- .B
- int mkd_generateline(char *string, int size, FILE *output, int flags)
- .PD
- .PP
- .SH DESCRIPTION
- These functions convert
- .IR Markdown (6)
- text into
- .SM HTML
- markup.
- .PP
- .I Mkd_in
- reads the text referenced by pointer to
- .B FILE
- .I input
- and returns a pointer to an
- .B MMIOT
- structure of the form expected by
- .I markdown
- and the other converters.
- .I Mkd_string
- accepts one
- .I string
- and returns a pointer to
- .BR MMIOT .
- .PP
- After such preparation,
- .I markdown
- converts
- .I doc
- and writes the result to
- .IR output ,
- while
- .I mkd_compile
- transforms
- .I document
- in-place.
- .PP
- One or more of the following
- .I flags
- (combined with
- .BR OR )
- control
- .IR markdown 's
- processing of
- .IR doc :
- .TF MKD_NOIMAGE
- .TP
- .B MKD_NOIMAGE
- Do not process
- .B ![]
- and remove
- .B <img>
- tags from the output.
- .TP
- .B MKD_NOLINKS
- Do not process
- .B []
- and remove
- .B <a>
- tags from the output.
- .TP
- .B MKD_NOPANTS
- Suppress Smartypants-style replacement of quotes, dashes, or ellipses.
- .TP
- .B MKD_STRICT
- Disable superscript and relaxed emphasis processing if configured; otherwise a no-op.
- .TP
- .B MKD_TAGTEXT
- Process as inside an
- .SM HTML
- tag: no
- .BR <em> ,
- no
- .BR <bold> ,
- no
- .SM HTML
- or
- .B []
- expansion.
- .TP
- .B MKD_NO_EXT
- Don't process pseudo-protocols (in
- .IR markdown (6)).
- .TP
- .B MKD_CDATA
- Generate code for
- .SM XML
- .B ![CDATA[...]]
- element.
- .TP
- .B MKD_NOHEADER
- Don't process Pandoc-style headers.
- .TP
- .B MKD_TABSTOP
- When reading documents, expand tabs to 4 spaces, overriding any compile-time configuration.
- .TP
- .B MKD_TOC
- Label headings for use with the
- .I mkd_generatetoc
- and
- .I mkd_toc
- functions.
- .TP
- .B MKD_1_COMPAT
- MarkdownTest_1.0 compatibility. Trim trailing spaces from first line of code blocks and disable implicit reference links (in
- .IR markdown (6)).
- .TP
- .B MKD_AUTOLINK
- Greedy
- .SM URL
- generation. When set, any
- .SM URL
- is converted to a hyperlink, even those not encased in
- .BR <> .
- .TP
- .B MKD_SAFELINK
- Don't make hyperlinks from
- .B [][]
- links that have unknown
- .SM URL
- protocol types.
- .TP
- .B MKD_NOTABLES
- Do not process the syntax extension for tables (in
- .IR markdown (6)).
- .TP
- .B MKD_EMBED
- All of
- .BR MKD_NOLINKS ,
- .BR MKD_NOIMAGE ,
- and
- .BR MKD_TAGTEXT .
- .PD
- .PP
- This implementation supports
- Pandoc-style
- headers and inline
- .SM CSS
- .B <style>
- blocks, but
- .I markdown
- does not access the data provided by these extensions.
- The following functions do, and allow other manipulations.
- .PP
- Given a pointer to
- .B MMIOT
- prepared by
- .I mkd_in
- or
- .IR mkd_string ,
- .I mkd_compile
- compiles the
- .I document
- into
- .BR <style> ,
- Pandoc, and
- .SM HTML
- sections. It accepts the
- .I flags
- described for
- .IR markdown ,
- above.
- .PP
- Once compiled, the document particulars can be read and written:
- .PP
- .I Mkd_css
- allocates a string and populates it with any
- .B <style>
- sections from the document.
- .I Mkd_generatecss
- writes any
- .B <style>
- sections to
- .IR output .
- .PP
- .I Mkd_document
- points
- .I doc
- to the
- .B MMIOT
- .IR document ,
- returning
- .IR document 's
- size.
- .PP
- .I Mkd_generatehtml
- writes the rest of the
- .I document
- to the
- .IR output .
- .PP
- .IR Mkd_doc_title ,
- .IR mkd_doc_author ,
- and
- .I mkd_doc_date
- read the contents of any Pandoc header.
- .PP
- .I Mkd_xhtmlpage
- writes an
- .SM XHTML
- page representation of the document.
- It accepts the
- .I flags
- described for
- .IR markdown ,
- above.
- .PP
- .I Mkd_toc
- .IR malloc s
- a buffer into which it writes an outline, in the form of a
- .B <ul>
- element populated with
- .BR <li> s
- each containing a link to successive headings in the
- .IR document .
- It returns the size of that string.
- .I Mkd_generatetoc
- is similar,
- but writes the outline to the
- .I output
- referenced by a pointer to
- .BR FILE .
- .PP
- .I Mkd_cleanup
- deletes a processed
- .BR MMIOT .
- .PP
- The last two functions convert a single line of markdown source, for example a page title or a signature.
- .I Mkd_line
- allocates a buffer into which it writes an
- .SM HTML
- fragment representation of the
- .IR string .
- .I Mkd_generateline
- writes the result to
- .IR output .
- .SH SOURCE
- .B /sys/src/cmd/discount
- .SH SEE ALSO
- .IR markdown (1),
- .IR markdown (6)
- .SH DIAGNOSTICS
- The
- .I mkd_in
- and
- .I mkd_string
- functions return a pointer to
- .B MMIOT
- on success, null on failure.
- .IR Markdown ,
- .IR mkd_compile ,
- .IR mkd_style ,
- and
- .I mkd_generatehtml
- return
- .B 0
- on success,
- .B -1
- otherwise.
- .SH BUGS
- Error handling is minimal at best.
- .PP
- The
- .B MMIOT
- created by
- .I mkd_string
- is deleted by the
- .I markdown
- function.
- .PP
- This is an
- .SM APE
- library.
|