logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

lowdown_gemini_rndr — render Markdown into gemini

Description

       Renders a node tree n created by lowdown_doc_parse(3) or lowdown_diff(3) using the gemini renderer arg as
       returned  by  lowdown_gemini_new(3).  The output is written into out, which must be initialised and freed
       by the caller.

       The caller is expected to have invoked setlocale(3) to a "UTF-8" character encoding prior to  using  this
       function,  otherwise UTF-8 sequences will not be properly recognised.  This is used when formatting table
       column widths.

Examples

       The following parses b of length bsz and outputs in Gemini format.

             struct lowdown_buf *out;
             struct lowdown_doc *doc;
             struct lowdown_node *n;
             void *rndr;

             if (setlocale(LC_CTYPE, "en_US.UTF-8") == NULL)
                     err(1, NULL);
             if ((doc = lowdown_doc_new(NULL)) == NULL)
                     err(1, NULL);
             if ((n = lowdown_doc_parse(doc, NULL, b, bsz, NULL)) == NULL)
                     err(1, NULL);
             if ((out = lowdown_buf_new(256)) == NULL)
                     err(1, NULL);
             if ((rndr = lowdown_gemini_new(NULL)) == NULL)
                     err(1, NULL);
             if (!lowdown_gemini_rndr(out, rndr, n))
                     err(1, NULL);

             fwrite(out->data, 1, out->size, stdout);

             lowdown_gemini_free(rndr);
             lowdown_buf_free(out);
             lowdown_node_free(n);
             lowdown_doc_free(doc);

Library

       library “liblowdown”

Name

       lowdown_gemini_rndr — render Markdown into gemini

Return Values

       Returns zero on failure to allocate memory, non-zero on success.

See Also

lowdown(3), lowdown_gemini_free(3), lowdown_gemini_new(3)

Standards

       The gemini “gemtext” format is documented in ProjectGemini: https://geminiprotocol.net.  The version  at
       the time of writing is 0.24.1.

Debian                                             $Mdocdate$                             LOWDOWN_GEMINI_RNDR(3)

Synopsis

#include<sys/queue.h>#include<stdio.h>#include<lowdown.h>intlowdown_gemini_rndr(structlowdown_buf*out, void*arg, conststructlowdown_node*n);

See Also