Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LOWDOWN_GEMINI_RNDR(3) FreeBSD Library Functions Manual	LOWDOWN_GEMINI_RNDR(3)

NAME
     lowdown_gemini_rndr -- render Markdown into gemini

LIBRARY
     library "liblowdown"

SYNOPSIS
     #include <sys/queue.h>
     #include <stdio.h>
     #include <lowdown.h>

     int
     lowdown_gemini_rndr(struct	lowdown_buf *out, struct lowdown_metaq *mq,
	 void *arg, const struct lowdown_node *n);

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.

     If	mq is not NULL,	it is filled with any metadata as parsed.  It must be
     initialised and its contents freed	with lowdown_metaq_free(3).

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

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

EXAMPLES
     The following assumes the the string buf of length	bsz consists of	Mark-
     down content.

	   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, buf, bsz)) == 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, NULL, 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);

SEE ALSO
     lowdown(3), lowdown_gemini_free(3), lowdown_gemini_new(3)

STANDARDS
     The gemini	format is documented in	Project	Gemini:
     https://gemini.circumlunar.space/docs/specification.html The version at
     the time of writing is 0.14.3.

FreeBSD	13.0		       February	13, 2021		  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO | STANDARDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=lowdown_gemini_rndr&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help