diff options
Diffstat (limited to 'vendor/github.com/yuin/goldmark/parser')
-rw-r--r-- | vendor/github.com/yuin/goldmark/parser/blockquote.go | 11 | ||||
-rw-r--r-- | vendor/github.com/yuin/goldmark/parser/list_item.go | 2 | ||||
-rw-r--r-- | vendor/github.com/yuin/goldmark/parser/parser.go | 8 |
3 files changed, 15 insertions, 6 deletions
diff --git a/vendor/github.com/yuin/goldmark/parser/blockquote.go b/vendor/github.com/yuin/goldmark/parser/blockquote.go index e7778dca7..8faa7ac94 100644 --- a/vendor/github.com/yuin/goldmark/parser/blockquote.go +++ b/vendor/github.com/yuin/goldmark/parser/blockquote.go @@ -28,12 +28,13 @@ func (b *blockquoteParser) process(reader text.Reader) bool { reader.Advance(pos) return true } - if line[pos] == ' ' || line[pos] == '\t' { - pos++ - } reader.Advance(pos) - if line[pos-1] == '\t' { - reader.SetPadding(2) + if line[pos] == ' ' || line[pos] == '\t' { + padding := 0 + if line[pos] == '\t' { + padding = util.TabWidth(reader.LineOffset()) - 1 + } + reader.AdvanceAndSetPadding(1, padding) } return true } diff --git a/vendor/github.com/yuin/goldmark/parser/list_item.go b/vendor/github.com/yuin/goldmark/parser/list_item.go index 81357a9ad..2206ad908 100644 --- a/vendor/github.com/yuin/goldmark/parser/list_item.go +++ b/vendor/github.com/yuin/goldmark/parser/list_item.go @@ -58,7 +58,7 @@ func (b *listItemParser) Continue(node ast.Node, reader text.Reader, pc Context) } offset := lastOffset(node.Parent()) - isEmpty := node.ChildCount() == 0 + isEmpty := node.ChildCount() == 0 && pc.Get(emptyListItemWithBlankLines) != nil indent, _ := util.IndentWidth(line, reader.LineOffset()) if (isEmpty || indent < offset) && indent < 4 { _, typ := matchesListItem(line, true) diff --git a/vendor/github.com/yuin/goldmark/parser/parser.go b/vendor/github.com/yuin/goldmark/parser/parser.go index 5cc2175f9..b59666c6d 100644 --- a/vendor/github.com/yuin/goldmark/parser/parser.go +++ b/vendor/github.com/yuin/goldmark/parser/parser.go @@ -878,10 +878,17 @@ func (p *parser) Parse(reader text.Reader, opts ...ParseOption) ast.Node { blockReader := text.NewBlockReader(reader.Source(), nil) p.walkBlock(root, func(node ast.Node) { p.parseBlock(blockReader, node, pc) + lines := node.Lines() + if lines != nil && lines.Len() != 0 { + s := lines.At(lines.Len() - 1) + s.EOB = true + lines.Set(lines.Len()-1, s) + } }) for _, at := range p.astTransformers { at.Transform(root, reader, pc) } + // root.Dump(reader.Source(), 0) return root } @@ -1256,4 +1263,5 @@ func (p *parser) parseBlock(block text.BlockReader, parent ast.Node, pc Context) for _, ip := range p.closeBlockers { ip.CloseBlock(parent, block, pc) } + } |