#pragma once

void util_md_html(const char *str, void *out);

#ifdef UTIL_IMPL

#include <md4c-html.h>

static void _util_md_html_parse_cb(const MD_CHAR *str, MD_SIZE len, void *out) {
  buf_write_len((buf_t *) out, str, len);
}

void util_md_html(const char *str, void *out) {
  if (!str || !out) return;
  unsigned parser_flags =
    MD_FLAG_STRIKETHROUGH |
    MD_FLAG_TABLES |
    MD_FLAG_HIGHLIGHT |
    MD_FLAG_TASKLISTS;
  unsigned renderer_flags = 0;
  md_html(str, strlen(str), _util_md_html_parse_cb, out, parser_flags, renderer_flags);
}

#endif // UTIL_IMPL
