mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
866 B
32 lines
866 B
// Copyright 2024 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package markdown |
|
|
|
import ( |
|
"fmt" |
|
|
|
"code.gitea.io/gitea/modules/markup" |
|
"code.gitea.io/gitea/modules/util" |
|
|
|
"github.com/yuin/goldmark/ast" |
|
"github.com/yuin/goldmark/text" |
|
) |
|
|
|
func (g *ASTTransformer) transformHeading(_ *markup.RenderContext, v *ast.Heading, reader text.Reader, tocList *[]Header) { |
|
for _, attr := range v.Attributes() { |
|
if _, ok := attr.Value.([]byte); !ok { |
|
v.SetAttribute(attr.Name, fmt.Appendf(nil, "%v", attr.Value)) |
|
} |
|
} |
|
txt := v.Text(reader.Source()) //nolint:staticcheck // Text is deprecated |
|
header := Header{ |
|
Text: util.UnsafeBytesToString(txt), |
|
Level: v.Level, |
|
} |
|
if id, found := v.AttributeString("id"); found { |
|
header.ID = util.UnsafeBytesToString(id.([]byte)) |
|
} |
|
*tocList = append(*tocList, header) |
|
g.applyElementDir(v) |
|
}
|
|
|