summaryrefslogtreecommitdiff
path: root/vendor/github.com/yuin/goldmark/extension/table.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2026-06-09 21:09:39 +0200
committerStefan Majewsky <majewsky@gmx.net>2026-06-09 21:09:39 +0200
commit6903a774ecbbd05596adda5e2b5e18d58dd3a8f9 (patch)
treef5d48f52f0da3da8d829436519bc66652bf41c64 /vendor/github.com/yuin/goldmark/extension/table.go
parente75d9e371269a4e46bffa6b3dd1fc7d040e82750 (diff)
downloadgofu-6903a774ecbbd05596adda5e2b5e18d58dd3a8f9.tar.gz
bump all dependencies to their latest versions
Diffstat (limited to 'vendor/github.com/yuin/goldmark/extension/table.go')
-rw-r--r--vendor/github.com/yuin/goldmark/extension/table.go22
1 files changed, 18 insertions, 4 deletions
diff --git a/vendor/github.com/yuin/goldmark/extension/table.go b/vendor/github.com/yuin/goldmark/extension/table.go
index ee782a2..1d74182 100644
--- a/vendor/github.com/yuin/goldmark/extension/table.go
+++ b/vendor/github.com/yuin/goldmark/extension/table.go
@@ -68,7 +68,7 @@ func NewTableConfig() TableConfig {
}
// SetOption implements renderer.SetOptioner.
-func (c *TableConfig) SetOption(name renderer.OptionName, value interface{}) {
+func (c *TableConfig) SetOption(name renderer.OptionName, value any) {
switch name {
case optTableCellAlignMethod:
c.TableCellAlignMethod = value.(TableCellAlignMethod)
@@ -125,12 +125,16 @@ func isTableDelim(bs []byte) bool {
if w, _ := util.IndentWidth(bs, 0); w > 3 {
return false
}
+ allSep := true
for _, b := range bs {
+ if b != '-' {
+ allSep = false
+ }
if !(util.IsSpace(b) || b == '-' || b == '|' || b == ':') {
return false
}
}
- return true
+ return !allSep
}
var tableDelimLeft = regexp.MustCompile(`^\s*\:\-+\s*$`)
@@ -150,6 +154,7 @@ func NewTableParagraphTransformer() parser.ParagraphTransformer {
}
func (b *tableParagraphTransformer) Transform(node *gast.Paragraph, reader text.Reader, pc parser.Context) {
+ ppos := node.Pos()
lines := node.Lines()
if lines.Len() < 2 {
return
@@ -165,6 +170,7 @@ func (b *tableParagraphTransformer) Transform(node *gast.Paragraph, reader text.
}
table := ast.NewTable()
table.Alignments = alignments
+ table.SetPos(ppos)
table.AppendChild(table, ast.NewTableHeader(header))
for j := i + 1; j < lines.Len(); j++ {
table.AppendChild(table, b.parseRow(lines.At(j), alignments, false, reader, pc))
@@ -183,6 +189,7 @@ func (b *tableParagraphTransformer) Transform(node *gast.Paragraph, reader text.
func (b *tableParagraphTransformer) parseRow(segment text.Segment,
alignments []ast.Alignment, isHeader bool, reader text.Reader, pc parser.Context) *ast.TableRow {
+ npos := segment
source := reader.Source()
segment = segment.TrimLeftSpace(source)
segment = segment.TrimRightSpace(source)
@@ -190,6 +197,7 @@ func (b *tableParagraphTransformer) parseRow(segment text.Segment,
pos := 0
limit := len(line)
row := ast.NewTableRow(alignments)
+ row.SetPos(npos.Start)
if len(line) > 0 && line[pos] == '|' {
pos++
}
@@ -209,6 +217,7 @@ func (b *tableParagraphTransformer) parseRow(segment text.Segment,
var escapedCell *escapedPipeCell
node := ast.NewTableCell()
+ node.SetPos(npos.Start + pos - npos.Padding)
node.Alignment = alignment
hasBacktick := false
closure := pos
@@ -223,7 +232,7 @@ func (b *tableParagraphTransformer) parseRow(segment text.Segment,
if escapedCell == nil {
escapedCell = &escapedPipeCell{node, []int{}, false}
escapedList := pc.ComputeIfAbsent(escapedPipeCellListKey,
- func() interface{} {
+ func() any {
return []*escapedPipeCell{}
}).([]*escapedPipeCell)
escapedList = append(escapedList, escapedCell)
@@ -502,7 +511,12 @@ func (r *TableHTMLRenderer) renderTableCell(
v, ok := n.AttributeString("style")
var cob util.CopyOnWriteBuffer
if ok {
- cob = util.NewCopyOnWriteBuffer(v.([]byte))
+ switch v := v.(type) {
+ case []byte:
+ cob = util.NewCopyOnWriteBuffer(v)
+ case string:
+ cob = util.NewCopyOnWriteBuffer([]byte(v))
+ }
cob.AppendByte(';')
}
style := fmt.Sprintf("text-align:%s", n.Alignment.String())