forked from jshiffer/matterbridge
33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
|
package parser
|
||
|
|
||
|
import (
|
||
|
"github.com/gomarkdown/markdown/ast"
|
||
|
)
|
||
|
|
||
|
// Flags control optional behavior of parser.
|
||
|
type Flags int
|
||
|
|
||
|
// Options is a collection of supplementary parameters tweaking the behavior of various parts of the parser.
|
||
|
type Options struct {
|
||
|
ParserHook BlockFunc
|
||
|
ReadIncludeFn ReadIncludeFunc
|
||
|
|
||
|
Flags Flags // Flags allow customizing parser's behavior
|
||
|
}
|
||
|
|
||
|
// Parser renderer configuration options.
|
||
|
const (
|
||
|
FlagsNone Flags = 0
|
||
|
SkipFootnoteList Flags = 1 << iota // Skip adding the footnote list (regardless if they are parsed)
|
||
|
)
|
||
|
|
||
|
// BlockFunc allows to registration of a parser function. If successful it
|
||
|
// returns an ast.Node, a buffer that should be parsed as a block and the the number of bytes consumed.
|
||
|
type BlockFunc func(data []byte) (ast.Node, []byte, int)
|
||
|
|
||
|
// ReadIncludeFunc should read the file under path and returns the read bytes,
|
||
|
// from will be set to the name of the current file being parsed. Initially
|
||
|
// this will be empty. address is the optional address specifier of which lines
|
||
|
// of the file to return. If this function is not set no data will be read.
|
||
|
type ReadIncludeFunc func(from, path string, address []byte) []byte
|