|
.\"
|
|
.Dd January 18, 2008
|
|
.Dt MKD_CALLBACKS 3
|
|
.Os Mastodon
|
|
.Sh NAME
|
|
.Nm mkd_callbacks
|
|
.Nd functions that modify link targets
|
|
.Sh LIBRARY
|
|
Markdown
|
|
.Pq libmarkdown , -lmarkdown
|
|
.Sh 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"
|
|
.Sh DESCRIPTION
|
|
.Pp
|
|
.Nm 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.
|
|
.Pp
|
|
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.
|
|
.Sh 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.
|
|
.Pp
|
|
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.
|
|
.Sh SEE ALSO
|
|
.Xr markdown 1 ,
|
|
.Xr markdown 3 ,
|
|
.Xr mkd-line 3 ,
|
|
.Xr markdown 7 ,
|
|
.Xr mkd-extensions 7 ,
|
|
.Xr mmap 2 .
|
|
.Pp
|
|
basename.c
|
|
.Pp
|
|
http://daringfireball.net/projects/markdown/syntax
|
|
.Sh BUGS
|
|
Error handling is minimal at best.
|