CommonMark
Interface to the libcmark CommonMark parser
Synopsis
use CommonMark;
say CommonMark.to-html("Hello, world!");
# "<p>Hello, world!</p>"
say CommonMark.version-string;
# 0.28.3
Documentation
CommonMark is Markdown with a proper spec - It should render most Markdown files the same; it nails down some edge cases, and specifies byte encodings.
You'll want to call .to-html($text)
to convert markdown to HTML. The library itself also supports XML, LaTeX, and nroff/troff formats, but I haven't seen where it's tested. Check out the Perl 6 source for more details there.
CommonMark class
METHODS
- to-html( $common-mark )
Return HTML from CommonMark format. This is likely the only method you'll use. There's a lower-level interface that'll let you interrogate the library at the individual node level, look at the source for more inspiration.
- version()
Returns a 32-bit int containing the version number.
From the documetation:
* Bits 16-23 contain the major version.
* Bits 8-15 contain the minor version.
* Bits 0-7 contain the patchlevel.
- version-string()
Returns the library version in text form.
- parse-document( Str $buffer, int32 $options )
Returns a CommonMark::Node root of the document.
CommonMark::Node class
- new( :$type )
Create a new CommonMark node with the specified type - this isn't well-documented in the library, so please read the source.
- next()
Return this node's successor in the multiply-linked list
- previous()
Return this node's predecessor in the multiply-linked list
- parent()
Return this node's parent in the multiply-linked list
- first-child()
Return this node's first child within the multiply-linked list
- last-child()
Return this node's last child within the multiply-linked list
- user-data()
Return this node's user data (generic pointer)
- user-data( Pointer $ptr )
Set user data pointer
- type()
Return this node's type number
- type-string()
Return this node's type as a string
- literal()
Return this node's literal string
- literal( Str $str )
Set this node's literal string
- heading-level()
Return this node's heading level
- heading-level( int32 $level )
Set this node's heading level
- list-type()
Return this node's list type
- list-type( int32 $level )
Set this node's list type
- list-delim()
Return this node's list delimiter
- list-delim( int32 $level )
Set this node's list delimiter
- list-start()
Return this node's list start
- list-start( int32 $level )
Set this node's list start
- list-tight()
Return this node's list tightness
- list-tight( int32 $level )
Set this node's list tightness
- fence-info()
Return this node's fence information
- fence-info( Str $info )
Set this node's fence information
- url()
Return this node's URL content
- url( Str $url )
Set this node's URL content
- title()
Return this node's title
- title( Str $title )
Set this node's title
- on-enter()
Return this node's on-enter string
- on-enter( Str $title )
Set this node's on-enter string
- on-exit()
Return this node's on-exit string
- on-exit( Str $title )
Set this node's on-exit string
- start-line()
Return this node's starting line
- start-column()
Return this node's starting column
- end-line()
Return this node's end line
- end-column()
Return this node's end column
- unlink()
Unlink this node from the tree.
- insert-before( CommonMark::Node $node )
Insert $node
before this node
- insert-after( CommonMark::Node $node )
Insert $node
after this node
- replace( CommonMark::Node $node )
Replace this node with $node
- prepend-child( CommonMark::Node $node )
Prepend $node
below this node
- append-child( CommonMark::Node $node )
Append $node
below this node
- consolidate-text-nodes()
Consolidate the text nodes in this node
- render-xml( int32 $options )
Render this node as XML, with the appropriate options $options
- render-html( int32 $options )
Render this node as HTML, with the appropriate options $options
- render-man( int32 $options, int32 $width )
Render this node as a manpage, with the appropriate options $options
, $width
- render-commonmark( int32 $options, int32 $width )
Render this node as the original CommonMark text, with the appropriate options $options
and $idth
- render-latex( int32 $options, int32 $width )
Render this node as LaTeX, with the appropriate options $options
, $width
- check( int32 $file-ID )
Check this node with file descriptor $file-ID
CommonMark::Iterator class
- next()
Return the next item in this iterator
- node()
Return the current node for the iterator
- event-type()
Return the current event type
- root()
Return the root for the iterator
- reset( CommonMark::Node $current, int32 $event-type )
Reset the iterator to node $current
, type $event-type
CommonMark::Parser class
- feed( Str $buffer )
Feed the buffer to the parser
- finish()
Finish parsing the document