1package ast
2
3import (
4 gast "github.com/yuin/goldmark/ast"
5)
6
7// A DefinitionList struct represents a definition list of Markdown
8// (PHPMarkdownExtra) text.
9type DefinitionList struct {
10 gast.BaseBlock
11 Offset int
12 TemporaryParagraph *gast.Paragraph
13}
14
15// Dump implements Node.Dump.
16func (n *DefinitionList) Dump(source []byte, level int) {
17 gast.DumpHelper(n, source, level, nil, nil)
18}
19
20// Pos implements Node.Pos.
21func (n *DefinitionList) Pos() int {
22 if n.FirstChild() != nil {
23 return n.FirstChild().Pos()
24 }
25 return -1
26}
27
28// KindDefinitionList is a NodeKind of the DefinitionList node.
29var KindDefinitionList = gast.NewNodeKind("DefinitionList")
30
31// Kind implements Node.Kind.
32func (n *DefinitionList) Kind() gast.NodeKind {
33 return KindDefinitionList
34}
35
36// NewDefinitionList returns a new DefinitionList node.
37func NewDefinitionList(offset int, para *gast.Paragraph) *DefinitionList {
38 return &DefinitionList{
39 Offset: offset,
40 TemporaryParagraph: para,
41 }
42}
43
44// A DefinitionTerm struct represents a definition list term of Markdown
45// (PHPMarkdownExtra) text.
46type DefinitionTerm struct {
47 gast.BaseBlock
48}
49
50// Dump implements Node.Dump.
51func (n *DefinitionTerm) Dump(source []byte, level int) {
52 gast.DumpHelper(n, source, level, nil, nil)
53}
54
55// Pos implements Node.Pos.
56func (n *DefinitionTerm) Pos() int {
57 if n.Lines().Len() == 0 {
58 return -1
59 }
60 return n.Lines().At(0).Start
61}
62
63// KindDefinitionTerm is a NodeKind of the DefinitionTerm node.
64var KindDefinitionTerm = gast.NewNodeKind("DefinitionTerm")
65
66// Kind implements Node.Kind.
67func (n *DefinitionTerm) Kind() gast.NodeKind {
68 return KindDefinitionTerm
69}
70
71// NewDefinitionTerm returns a new DefinitionTerm node.
72func NewDefinitionTerm() *DefinitionTerm {
73 return &DefinitionTerm{}
74}
75
76// A DefinitionDescription struct represents a definition list description of Markdown
77// (PHPMarkdownExtra) text.
78type DefinitionDescription struct {
79 gast.BaseBlock
80 IsTight bool
81}
82
83// Dump implements Node.Dump.
84func (n *DefinitionDescription) Dump(source []byte, level int) {
85 gast.DumpHelper(n, source, level, nil, nil)
86}
87
88// KindDefinitionDescription is a NodeKind of the DefinitionDescription node.
89var KindDefinitionDescription = gast.NewNodeKind("DefinitionDescription")
90
91// Kind implements Node.Kind.
92func (n *DefinitionDescription) Kind() gast.NodeKind {
93 return KindDefinitionDescription
94}
95
96// NewDefinitionDescription returns a new DefinitionDescription node.
97func NewDefinitionDescription() *DefinitionDescription {
98 return &DefinitionDescription{}
99}