Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SOLDOUT_MARKDOWN(3)	    Library Functions Manual	   SOLDOUT_MARKDOWN(3)

NAME
       soldout_markdown, markdown -- parse markdown document

SYNOPSIS
       #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);

DESCRIPTION
       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 call-
       backs 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	 char-
       acters  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.

   Types
       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.

RETURN VALUES
       The markdown() function does not	return a value.

SEE ALSO
       soldout(3), soldout_buffer(3), soldout_renderers(3)

AUTHORS
       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>.

FreeBSD	ports 15.0		 May 30, 2016		   SOLDOUT_MARKDOWN(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=soldout_markdown&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help