Section: C Library Functions (3)Local indexUp BSD mandoc
Mastodon
NAME
mkd_callbacks
- functions that modify link targets
LIBRARY
Markdown
(libmarkdown , -lmarkdown)
SYNOPSIS
Fd #include <mkdio.h>
Ft char*
Fn (*mkd_callback_t) const char* const int void*
Ft void
Fn (*mkd_free_t) char * void*
Ft void
Fn mkd_e_url MMIOT *document mkd_callback_t edit
Ft void
Fn mkd_e_flags MMIOT *document mkd_callback_t edit
Ft void
Fn mkd_e_free MMIOT *document mkd_free_t dealloc
Ft void
Fn mkd_e_data MMIOT *document void *data
DESCRIPTION
Discount
provides a small set of data access functions to let a
library user modify the targets given in a `[]' link, and to
add additional flags to the generated link.
The data access functions are passed a character pointer to
the url being generated, the size of the url, and a data pointer
pointing to a user data area (set by the
Fn mkd_e_data
function.) After the callback function is called (either
Fn mkd_e_url
or
Fn mkd_e_flags )
the data freeing function (if supplied) is called and passed the
character pointer and user data pointer.
EXAMPLE
The
Fn mkd_basename
function (in the module basename.c) is implemented by means of
mkd callbacks; it modifies urls that start with a `/' so that
they begin with a user-supplied url base by allocating a new
string and filling it with the base + the url. Discount plugs
that url in in place of the original, then calls the basename
free function (it only does this when
Fn mkd_e_url
or
Fn mkd_e_flags
returns nonzero) to deallocate this memory.
Note that only one level of callbacks are supported; if you
wish to do multiple callbacks, you need to write your own
code to handle them all.