summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/gomarkdown/markdown/parser/block_table.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gomarkdown/markdown/parser/block_table.go')
-rw-r--r--vendor/github.com/gomarkdown/markdown/parser/block_table.go15
1 files changed, 15 insertions, 0 deletions
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++
}