logo
Free, Micro AI Code Reviews That Run on Git Commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt

lowdown_buf — parse a Markdown buffer into formatted output

Description

       Parses a lowdown(5) buffer buf of size bufsz into an output buffer ret  of  size  retsz  according  to  a
       configuration  opts.   The  output  format  is  specified  by  opts->type.  If LOWDOWN_METADATA is set in
       opts->feat and metaq is not NULL, metaq is filled with metadata rendered in the given output format.

       The caller is responsible for freeing ret and metaq.

Examples

       The  following  parses standard input into a standalone HTML5 document.  It enables footnotes, autolinks,
       tables, superscript, strikethrough, fenced  codeblocks,  commonmark,  definition  lists,  extended  image
       attributes, and metadata processing.  The output passes through raw HTML and has smart typography.

             struct lowdown_opts opts;
             char *buf = NULL, *obuf;
             char rbuf[1024];
             size_t sz, bufsz = 0, obufsz;

             while (!(feof(stdin) || ferror(stdin))) {
                     sz = fread(rbuf, 1, sizeof(rbuf), stdin);
                     if (sz == 0)
                             err(1, "fread");
                     buf = realloc(buf, bufsz + sz);
                     if (buf == NULL)
                             err(1, NULL);
                     memcpy(buf + bufsz, rbuf, sz);
                     bufsz += sz;
             }

             if (ferror(stdin))
                     err(1, "fread");

             memset(&opts, 0, sizeof(struct lowdown_opts));
             opts.type = LOWDOWN_HTML;
             opts.feat = LOWDOWN_FOOTNOTES |
                     LOWDOWN_AUTOLINK |
                     LOWDOWN_TABLES |
                     LOWDOWN_SUPER |
                     LOWDOWN_STRIKE |
                     LOWDOWN_FENCED |
                     LOWDOWN_COMMONMARK |
                     LOWDOWN_DEFLIST |
                     LOWDOWN_IMG_EXT |
                     LOWDOWN_METADATA;
             opts.oflags = LOWDOWN_HTML_HEAD_IDS |
                     LOWDOWN_HTML_NUM_ENT |
                     LOWDOWN_HTML_OWASP |
                     LOWDOWN_SMARTY |
                     LOWDOWN_STANDALONE;
             if (!lowdown_buf(&opts, buf, bufsz, &obuf, &obufsz, NULL))
                     errx(1, "lowdown_buf");
             fwrite(buf, 1, bufsz, stdout);
             free(buf);
             free(obuf);

Library

       library “liblowdown”

Name

       lowdown_buf — parse a Markdown buffer into formatted output

Return Values

       Returns zero on failure, non-zero on success.  On failure, the values pointed  to  by  res  and  rsz  are
       undefined.

See Also

lowdown(3), lowdown_metaq_free(3)

Debian                                             $Mdocdate$                                     LOWDOWN_BUF(3)

Synopsis

#include<sys/queue.h>#include<stdio.h>#include<lowdown.h>intlowdown_buf(conststructlowdown_opts*opts,  constchar*buf,  size_tbufsz,  char**ret, size_t*retsz,
           structlowdown_metaq*metaq);

See Also