GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
SOLDOUT_MARKDOWN(3) FreeBSD Library Functions Manual SOLDOUT_MARKDOWN(3)

soldout_markdown, markdown
parse markdown document

#include <markdown.h>


#define MKD_CELL_ALIGN_DEFAULT
#define MKD_CELL_ALIGN_LEFT
#define MKD_CELL_ALIGN_RIGHT
#define MKD_CELL_ALIGN_CENTER
#define MKD_CELL_ALIGN_MASK
#define MKD_CELL_HEAD
#define MKD_LIST_ORDERED
#define MKD_LI_BLOCK

void
markdown(struct buf *ob, struct buf *ib, const struct mkd_renderer *rndr);

The markdown() function parses the input buffer ib and renders it into the output buffer ob; rndr is a pointer to the renderer structure.

Function pointers in struct mkd_renderer can be NULL. A null block-level callback will make the corresponding block disappear from the output, as if the callback was an empty function. A null span-level callback will cause the corresponding element to be treated as normal characters, copied verbatim to the output. Moreover, span-level callbacks return an integer, which tells whether the renderer accepts to render the item (non-zero return value) or whether it should be copied verbatim (zero return value).

The first argument of a renderer function is always the output buffer, where the function is supposed to write its output. The last argument of a renderer function is always a private pointer, which is opaque member of struct mkd_renderer. libsoldout itself never does nothing with this data.

emph_chars is a zero-terminated string which contains the set of characters that trigger emphasis. In regular markdown, emphasis is only triggered by ‘_’ and ‘*’, but in some extensions it might be useful to add other characters to this list. The character that triggered the emphasis is then passed to emphasis, double_emphasis and triple_emphasis function callbacks through the parameter c.

The normal_text callback should perform whatever escape is needed to have the output looking like the input data.

libsoldout supports PHP-Markdown-like tables. It uses the following flags: MKD_CELL_ALIGN_DEFAULT, MKD_CELL_ALIGN_LEFT, MKD_CELL_ALIGN_RIGHT, MKD_CELL_ALIGN_CENTER, MKD_CELL_ALIGN_MASK, MKD_CELL_HEAD in these function callbacks: table_cell and table_row.

MKD_LIST_ORDERED, MKD_LI_BLOCK are used as flags in these function callbacks: list and listitem.

enum mkd_autolink
type of autolink:
MKDA_NOT_AUTOLINK
used internally when it is not an autolink.
MKDA_NORMAL
normal http/https/ftp link.
MKDA_EXPLICIT_EMAIL
e-mail link with explicit mailto.
MKDA_IMPLICIT_EMAIL
e-mail link without mailto.
struct mkd_renderer
consists of the following fields:
Document level callbacks
prolog
a pointer to a void function(struct buf *ob, void *opaque);
epilog
a pointer to a void function(struct buf *ob, void *opaque);
Block level callbacks (NULL skips the block)
blockcode
a pointer to a void function(struct buf *ob, struct buf *text, void *opaque);
blockquote
a pointer to a void function(struct buf *ob, struct buf *text, void *opaque);
blockhtml
a pointer to a void function(struct buf *ob, struct buf *text, void *opaque);
header
a pointer to a void function(struct buf *ob, struct buf *text, int level, void *opaque);
hrule
a pointer to a void function(struct buf *ob, void *opaque);
list
a pointer to a void function(struct buf *ob, struct buf *text, int flags, void *opaque);
listitem
a pointer to a void function(struct buf *ob, struct buf *text, int flags, void *opaque);
paragraph
a pointer to a void function(struct buf *ob, struct buf *text, void *opaque);
table
a pointer to a void function(struct buf *ob, struct buf *head_row, struct buf *rows, void *opaque);
table_cell
a pointer to a void function(struct buf *ob, struct buf *text, int flags, void *opaque);
table_row
a pointer to a void function(struct buf *ob, struct buf *cells, int flags, void *opaque);
Span level callbacks (NULL or return 0 prints the span verbatim)
autolink
a pointer to a int function(struct buf *ob, struct buf *link, enum mkd_autolink type, void *opaque);
codespan
a pointer to a int function(struct buf *ob, struct buf *text, void *opaque);
emphasis
a pointer to a int function(struct buf *ob, struct buf *text, char c, void *opaque);
double_emphasis
a pointer to a int function(struct buf *ob, struct buf *text, char c, void *opaque);
triple_emphasis
a pointer to a int function(struct buf *ob, struct buf *text, char c, void *opaque);
image
a pointer to a int function(struct buf *ob, struct buf *link, struct buf *title, struct buf *alt, void *opaque);
linebreak
a pointer to a int function(struct buf *ob, void *opaque);
link
a pointer to a int function(struct buf *ob, struct buf *link, struct buf *title, struct buf *content, void *opaque);
raw_html_tag
a pointer to a int function(struct buf *ob, struct buf *tag, void *opaque);
Low level callbacks (NULL copies input directly into the output)
entity
a pointer to a void function(struct buf *ob, struct buf *entity, void *opaque);
normal_text
a pointer to a void function(struct buf *ob, struct buf *text, void *opaque);
Renderer data
int max_work_stack
prevent arbitrary deep recursion.
const char * emph_chars
chars that trigger emphasis rendering.
void * opaque
opaque data send to every rendering callback.

The markdown() function does not return a value.

soldout(3), soldout_buffer(3), soldout_renderers(3)

The soldout library was written by Natasha “Kerensikova” Porte <natacha@instinctive.eu>. Manual page was originally written by Massimo Manghi <mxmanghi@apache.org>, and rewritten to mdoc format by Svyatoslav Mishyn <juef@openmailbox.org>.
May 30, 2016 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.