Scroll to navigation

SOLDOUT(3) Library Functions Manual SOLDOUT(3)

NAME

soldoutmarkdown parser library

DESCRIPTION

The soldout 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 struct mkd_renderer along with some renderer-related data.

Basic usage will be:

  1. Create output, input buffers by () function.
  2. Fill input buffer by () function.
  3. Create struct mkd_renderer or use provided renderer.
  4. Call () function.
  5. Process output buffer.
  6. Call () 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;
}

SEE ALSO

soldout_array(3), soldout_buffer(3), soldout_markdown(3), soldout_renderers(3), John Gruber's markdown format

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

March 29, 2016 Debian