summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/gomarkdown/markdown/parser
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gomarkdown/markdown/parser')
-rw-r--r--vendor/github.com/gomarkdown/markdown/parser/block.go9
-rw-r--r--vendor/github.com/gomarkdown/markdown/parser/block_table.go15
2 files changed, 23 insertions, 1 deletions
diff --git a/vendor/github.com/gomarkdown/markdown/parser/block.go b/vendor/github.com/gomarkdown/markdown/parser/block.go
index 32194d9f..2b48d52d 100644
--- a/vendor/github.com/gomarkdown/markdown/parser/block.go
+++ b/vendor/github.com/gomarkdown/markdown/parser/block.go
@@ -1412,6 +1412,13 @@ gatherlines:
// is this a nested list item?
case (p.uliPrefix(chunk) > 0 && !p.isHRule(chunk)) || p.oliPrefix(chunk) > 0 || p.dliPrefix(chunk) > 0:
+ // if indent is 4 or more spaces on unordered or ordered lists
+ // we need to add leadingWhiteSpaces + 1 spaces in the beginning of the chunk
+ if indentIndex >= 4 && p.dliPrefix(chunk) <= 0 {
+ leadingWhiteSpaces := skipChar(chunk, 0, ' ')
+ chunk = data[ line+indentIndex - (leadingWhiteSpaces + 1) : i]
+ }
+
// to be a nested list, it must be indented more
// if not, it is either a different kind of list
// or the next item in the same list
@@ -1484,7 +1491,7 @@ gatherlines:
}
// add the line into the working buffer without prefix
- raw.Write(data[line+indentIndex : i])
+ raw.Write(chunk)
line = i
}
diff --git a/vendor/github.com/gomarkdown/markdown/parser/block_table.go b/vendor/github.com/gomarkdown/markdown/parser/block_table.go
index 53fbd471..0bf4f4ad 100644
--- a/vendor/github.com/gomarkdown/markdown/parser/block_table.go
+++ b/vendor/github.com/gomarkdown/markdown/parser/block_table.go
@@ -25,6 +25,11 @@ func (p *Parser) tableRow(data []byte, columns []ast.CellAlignFlags, header bool
cellStart := i
+ // If we are in a codespan we should discount any | we see, check for that here and skip ahead.
+ if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 {
+ i += isCode - 1
+ }
+
for i < n && (data[i] != '|' || isBackslashEscaped(data, i)) && data[i] != '\n' {
i++
}
@@ -84,6 +89,11 @@ func (p *Parser) tableFooter(data []byte) bool {
n := len(data)
i := skipCharN(data, 0, ' ', 3)
for ; i < n && data[i] != '\n'; i++ {
+ // If we are in a codespan we should discount any | we see, check for that here and skip ahead.
+ if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 {
+ i += isCode - 1
+ }
+
if data[i] == '|' && !isBackslashEscaped(data, i) {
colCount++
continue
@@ -111,6 +121,11 @@ func (p *Parser) tableHeader(data []byte, doRender bool) (size int, columns []as
headerIsUnderline := true
headerIsWithEmptyFields := true
for i = 0; i < len(data) && data[i] != '\n'; i++ {
+ // If we are in a codespan we should discount any | we see, check for that here and skip ahead.
+ if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 {
+ i += isCode - 1
+ }
+
if data[i] == '|' && !isBackslashEscaped(data, i) {
colCount++
}