DOKK / manpages / debian 12 / libsoldout-dev / soldout.3.en
SOLDOUT(3) Library Functions Manual SOLDOUT(3)

soldoutmarkdown parser library

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.

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;
}

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

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