diff --git a/Makefile.in b/Makefile.in index 660dff4..c4d5d56 100644 --- a/Makefile.in +++ b/Makefile.in @@ -15,6 +15,8 @@ OBJS=mkdio.o markdown.o dumptree.o generate.o \ resource.o docheader.o version.o toc.o css.o \ xml.o Csio.o xmlpage.o basename.o emmatch.o @AMALLOC@ +MAN3PAGES=mkd-callbacks.3 mkd-functions.3 markdown.3 mkd-line.3 + all: $(PGMS) $(SAMPLE_PGMS) install: $(PGMS) @@ -31,7 +33,7 @@ install.samples: $(SAMPLE_PGMS) install install.man: @INSTALL_DIR@ $(DESTDIR)/$(MANDIR)/man3 - @INSTALL_DATA@ mkd-functions.3 markdown.3 mkd-line.3 $(DESTDIR)/$(MANDIR)/man3 + @INSTALL_DATA@ $(MAN3PAGES) $(DESTDIR)/$(MANDIR)/man3 for x in mkd_line mkd_generateline; do \ ( echo '.\"' ; echo ".so man3/mkd-line.3" ) > $(DESTDIR)/$(MANDIR)/man3/$$x.3;\ done diff --git a/markdown.3 b/markdown.3 index 8022f80..4fcd2da 100644 --- a/markdown.3 +++ b/markdown.3 @@ -103,6 +103,7 @@ and functions return a MMIOT* on success, null on failure. .Sh SEE ALSO .Xr markdown 1 , +.Xr mkd-callbacks 3 , .Xr mkd-functions 3 , .Xr mkd-line 3 , .Xr markdown 7 , diff --git a/markdown.7 b/markdown.7 index be844da..7c76a2c 100644 --- a/markdown.7 +++ b/markdown.7 @@ -1001,6 +1001,7 @@ John Gruber .Sh SEE ALSO .Xr markdown 1 , .Xr markdown 3 , +.Xr mkd-callbacks 3 , .Xr mkd-functions 3 , .Xr mkd-extensions 7 . .Pp diff --git a/mkd-callbacks.3 b/mkd-callbacks.3 new file mode 100644 index 0000000..be14c2a --- /dev/null +++ b/mkd-callbacks.3 @@ -0,0 +1,71 @@ +.\" +.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 +.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. diff --git a/mkd-extensions.7 b/mkd-extensions.7 index 91d9156..7e96d3a 100644 --- a/mkd-extensions.7 +++ b/mkd-extensions.7 @@ -169,6 +169,7 @@ David Parsons .Sh SEE ALSO .Xr markdown 1 , .Xr markdown 3 , +.Xr mkd-callbacks 3 , .Xr mkd-functions 3 , .Xr mkd-line 3 , .Xr mkd-extensions 7 .