1package parser
2
3import (
4 "bytes"
5
6 "github.com/gomarkdown/markdown/ast"
7)
8
9func (p *Parser) documentMatter(data []byte) int {
10 if data[0] != '{' {
11 return 0
12 }
13
14 consumed := 0
15 matter := ast.DocumentMatterNone
16 if bytes.HasPrefix(data, []byte("{frontmatter}")) {
17 consumed = len("{frontmatter}")
18 matter = ast.DocumentMatterFront
19 }
20 if bytes.HasPrefix(data, []byte("{mainmatter}")) {
21 consumed = len("{mainmatter}")
22 matter = ast.DocumentMatterMain
23 }
24 if bytes.HasPrefix(data, []byte("{backmatter}")) {
25 consumed = len("{backmatter}")
26 matter = ast.DocumentMatterBack
27 }
28 if consumed == 0 {
29 return 0
30 }
31 node := &ast.DocumentMatter{Matter: matter}
32 p.addBlock(node)
33 p.finalize(node)
34
35 return consumed
36}