You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
716 B
Go
37 lines
716 B
Go
package parser
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"github.com/gomarkdown/markdown/ast"
|
|
)
|
|
|
|
func (p *Parser) documentMatter(data []byte) int {
|
|
if data[0] != '{' {
|
|
return 0
|
|
}
|
|
|
|
consumed := 0
|
|
matter := ast.DocumentMatterNone
|
|
if bytes.HasPrefix(data, []byte("{frontmatter}")) {
|
|
consumed = len("{frontmatter}")
|
|
matter = ast.DocumentMatterFront
|
|
}
|
|
if bytes.HasPrefix(data, []byte("{mainmatter}")) {
|
|
consumed = len("{mainmatter}")
|
|
matter = ast.DocumentMatterMain
|
|
}
|
|
if bytes.HasPrefix(data, []byte("{backmatter}")) {
|
|
consumed = len("{backmatter}")
|
|
matter = ast.DocumentMatterBack
|
|
}
|
|
if consumed == 0 {
|
|
return 0
|
|
}
|
|
node := &ast.DocumentMatter{Matter: matter}
|
|
p.addBlock(node)
|
|
p.finalize(node)
|
|
|
|
return consumed
|
|
}
|