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

FreeBSD Manual Pages

  
 
  

home | help
haredoc(5)		      File Formats Manual		    haredoc(5)

NAME
       haredoc - Hare documentation format

DESCRIPTION
       Hare  documentation is written in a simple markup language. By default,
       haredoc(1) will display the documentation literally, without any	 addi-
       tional formatting. Other	tools may format Hare documentation into other
       formats.

       Text  may  be written normally, broken into several lines to conform to
       the 80-column limit. To begin a new paragraph, insert an	empty line.

       References to other declarations	and modules may	be written  in	brack-
       ets,  like this:	[[os::stdout]].	References to modules should include a
       trailing	:: in the identifier: [[os::exec::]].

       A bulleted list can be started by opening a line	with  "-",  optionally
       preceded	by a space. Each line opened like this begins a	new list item.
       To complete the list, insert an empty line.

       Code  samples may be used by starting a line with a single tab, option-
       ally preceded by	a space.

       This markup language is extracted from Hare comments preceding exported
       symbols in your source code, and	from a file  named  "README"  in  your
       module directory, if present.

README
       A file named "README" at	the root directory of a	Hare module is used as
       a  summary  of the entire module. It should start with a	brief one-line
       summary of the module using the module's	name (the  last	 item  in  its
       identifier), a colon, a space, and a summary, as	follows:

	   memio: memory-backed	I/O functions

       This  may be followed by	an empty line, then a long-form	summary	of the
       module using the	documentation format described abovce.

EXAMPLE
	   // Foos the bars. See also [[foobar]].
	   //
	   // If you instead want to bar the foos, use one of the functions in
	   // [[bar::foo::]].
	   //
	   // -	First, the bars	are obtained.
	   // -	They are then fooed.
	   // -	Finally, the result is returned.
	   //
	   //	   let x = example();
	   //	   assert(x == 0);
	   export fn example() int = 0;

NOTES
       It's expected that tools	which parse documentation for the  purpose  of
       converting it into another format will perform additional processing to
       decouple	the content from its original textual representation:

          Line	breaks within a	paragraph or list item should be ignored.
          Repeated whitespace outside of a code sample	should be collapsed.
          Multiple  code samples separated by empty lines should be collapsed
	   into	one code sample, so the	empty lines are	moved  into  the  code
	   sample itself.

       hare::parse::doc:: in the standard library handles all of this process-
       ing for you.

       Parsers	are  permitted (and encouraged)	to error out on	invalid	input,
       such as a malformed or unterminated [[reference]].

SEE ALSO
       haredoc(1)

				  2025-11-02			    haredoc(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=haredoc&sektion=5&manpath=FreeBSD+Ports+15.0>

home | help