mirror of
https://github.com/yuin/goldmark
synced 2025-03-04 23:04:52 +00:00
Support CommonMark 0.30
This commit is contained in:
parent
759cc35c3a
commit
5588d92a56
7 changed files with 3331 additions and 3307 deletions
|
|
@ -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
|
||||||
----------------------
|
----------------------
|
||||||
|
|
|
||||||
6616
_test/spec.json
6616
_test/spec.json
File diff suppressed because it is too large
Load diff
|
|
@ -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 (
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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{'-', '-', '>'}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue