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

FreeBSD Manual Pages

  
 
  

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

NAME
     lowdown_nroff_rndr	-- render Markdown into	roff

LIBRARY
     library "liblowdown"

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

     int
     lowdown_nroff_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 roff renderer arg as returned by	lowdown_nroff_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 output	consists of roff output	using the ms or	man macro packages.

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 ((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_nroff_new(NULL))	== NULL)
	     err(1, NULL);
	   if (!lowdown_nroff_rndr(out,	NULL, rndr, n))
	     err(1, NULL);

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

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

SEE ALSO
     lowdown(3), lowdown_nroff_free(3),	lowdown_nroff_new(3)

     This uses both the	original troff man macros for Version 7	AT&T UNIX, de-
     fined in man(7), and the man-ext groff extensions.	 Both are implemented
     in	mandoc.

     The troff ms macros are defined in	groff_ms(7), with the mspdf groff ex-
     tensions described	in "Portable Document Format Publishing	with GNU
     Troff" by Keith Marshall.	Neither	are implemented	in mandoc.

FreeBSD	13.0		       February	8, 2021			  FreeBSD 13.0

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

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

home | help