Support CommonMark 0.30

This commit is contained in:
yuin 2021-07-05 00:12:46 +09:00
parent 759cc35c3a
commit 5588d92a56
7 changed files with 3331 additions and 3307 deletions

View file

@ -8,7 +8,7 @@ goldmark
> A Markdown parser written in Go. Easy to extend, standards-compliant, well-structured. > A Markdown parser written in Go. Easy to extend, standards-compliant, well-structured.
goldmark is compliant with CommonMark 0.29. goldmark is compliant with CommonMark 0.30.
Motivation Motivation
---------------------- ----------------------

File diff suppressed because it is too large Load diff

View file

@ -332,7 +332,7 @@ type List struct {
Marker byte Marker byte
// IsTight is a true if this list is a 'tight' list. // IsTight is a true if this list is a 'tight' list.
// See https://spec.commonmark.org/0.29/#loose for details. // See https://spec.commonmark.org/0.30/#loose for details.
IsTight bool IsTight bool
// Start is an initial number of this ordered list. // Start is an initial number of this ordered list.
@ -414,7 +414,7 @@ func NewListItem(offset int) *ListItem {
} }
// HTMLBlockType represents kinds of an html blocks. // HTMLBlockType represents kinds of an html blocks.
// See https://spec.commonmark.org/0.29/#html-blocks // See https://spec.commonmark.org/0.30/#html-blocks
type HTMLBlockType int type HTMLBlockType int
const ( const (

View file

@ -111,7 +111,7 @@ func (n *Text) SetRaw(v bool) {
} }
// HardLineBreak returns true if this node ends with a hard line break. // HardLineBreak returns true if this node ends with a hard line break.
// See https://spec.commonmark.org/0.29/#hard-line-breaks for details. // See https://spec.commonmark.org/0.30/#hard-line-breaks for details.
func (n *Text) HardLineBreak() bool { func (n *Text) HardLineBreak() bool {
return n.flags&textHardLineBreak != 0 return n.flags&textHardLineBreak != 0
} }

View file

@ -30,11 +30,11 @@ type Delimiter struct {
Segment text.Segment Segment text.Segment
// CanOpen is set true if this delimiter can open a span for a new node. // CanOpen is set true if this delimiter can open a span for a new node.
// See https://spec.commonmark.org/0.29/#can-open-emphasis for details. // See https://spec.commonmark.org/0.30/#can-open-emphasis for details.
CanOpen bool CanOpen bool
// CanClose is set true if this delimiter can close a span for a new node. // CanClose is set true if this delimiter can close a span for a new node.
// See https://spec.commonmark.org/0.29/#can-open-emphasis for details. // See https://spec.commonmark.org/0.30/#can-open-emphasis for details.
CanClose bool CanClose bool
// Length is a remaining length of this delimiter. // Length is a remaining length of this delimiter.

View file

@ -76,8 +76,8 @@ var allowedBlockTags = map[string]bool{
"ul": true, "ul": true,
} }
var htmlBlockType1OpenRegexp = regexp.MustCompile(`(?i)^[ ]{0,3}<(script|pre|style)(?:\s.*|>.*|/>.*|)\n?$`) var htmlBlockType1OpenRegexp = regexp.MustCompile(`(?i)^[ ]{0,3}<(script|pre|style|textarea)(?:\s.*|>.*|/>.*|)\n?$`)
var htmlBlockType1CloseRegexp = regexp.MustCompile(`(?i)^.*</(?:script|pre|style)>.*`) var htmlBlockType1CloseRegexp = regexp.MustCompile(`(?i)^.*</(?:script|pre|style|textarea)>.*`)
var htmlBlockType2OpenRegexp = regexp.MustCompile(`^[ ]{0,3}<!\-\-`) var htmlBlockType2OpenRegexp = regexp.MustCompile(`^[ ]{0,3}<!\-\-`)
var htmlBlockType2Close = []byte{'-', '-', '>'} var htmlBlockType2Close = []byte{'-', '-', '>'}

View file

@ -1148,7 +1148,7 @@ func (p *parser) parseBlock(block text.BlockReader, parent ast.Node, pc Context)
} else if hasNewLine { } else if hasNewLine {
// If the line ends with a newline character, but it is not a hardlineBreak, then it is a softLinebreak // If the line ends with a newline character, but it is not a hardlineBreak, then it is a softLinebreak
// If the line ends with a hardlineBreak, then it cannot end with a softLinebreak // If the line ends with a hardlineBreak, then it cannot end with a softLinebreak
// See https://spec.commonmark.org/0.29/#soft-line-breaks // See https://spec.commonmark.org/0.30/#soft-line-breaks
softLinebreak = true softLinebreak = true
} }