soldout(3) markdown parser library

DESCRIPTION

The library only performs the parsing of markdown input, the construction of the output is left to a renderer, which is a set of callback functions called when markdown elements are encountered. Pointers to these functions are gathered into a Vt struct mkd_renderer along with some renderer-related data.

Basic usage will be:

  1. Create output, input buffers by Fn bufnew function.
  2. Fill input buffer by Fn bufput function.
  3. Create Vt struct mkd_renderer or use provided renderer.
  4. Call Fn markdown function.
  5. Process output buffer.
  6. Call Fn bufrelease function to clean up buffers.

EXAMPLES

Simple example that uses first argument as a markdown string, converts it to an HTML and outputs it to stdout.
#include <stdio.h>
#include <buffer.h>
#include <markdown.h>
#include <renderers.h>
#define INPUT_UNIT  1024
#define OUTPUT_UNIT 64
int
main(int argc, char *argv[])
{
  struct buf *ib, *ob;
  /* Make sure we have enough arguments. */
  if (argc != 2) {
    return 1;
  }
  ib = bufnew(INPUT_UNIT);
  ob = bufnew(OUTPUT_UNIT);
  /* bufputs() is a wrapper over bufput() for NUL-terminated string. */
  bufputs(ib, argv[1]);
  markdown(ob, ib, &mkd_html);
  /* Note the resulted data is not NUL-terminated string;
   * to make it use bufnullterm(). */
  printf("%.*s", (int)ob->size, ob->data);
  bufrelease(ib);
  bufrelease(ob);
  return 0;
}

AUTHORS

An -nosplit The library was written by An Natasha Qo Kerensikova Qc Porte Aq Mt [email protected] . Manual page was originally written by An Massimo Manghi Aq Mt [email protected] , and rewritten to mdoc format by An Svyatoslav Mishyn Aq Mt [email protected] .