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

FreeBSD Manual Pages

  
 
  

home | help
LOWDOWN_NROFF_RNDR(3)	    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,		    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.

       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 parses b of length	bsz and	outputs	in groff_ms(7) format.

	     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, b, bsz, NULL)) == 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, 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,
       defined in man(7), and the man-ext groff	extensions.  Both  are	imple-
       mented in mandoc.

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

FreeBSD	Ports 14.quarterly	  $Mdocdate$		 LOWDOWN_NROFF_RNDR(3)

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

home | help