code.gitea.io/gitea@v1.22.3/modules/markup/markdown/transform_heading.go (about) 1 // Copyright 2024 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package markdown 5 6 import ( 7 "fmt" 8 9 "code.gitea.io/gitea/modules/markup" 10 11 "github.com/yuin/goldmark/ast" 12 "github.com/yuin/goldmark/text" 13 "github.com/yuin/goldmark/util" 14 ) 15 16 func (g *ASTTransformer) transformHeading(ctx *markup.RenderContext, v *ast.Heading, reader text.Reader, tocList *[]markup.Header) { 17 for _, attr := range v.Attributes() { 18 if _, ok := attr.Value.([]byte); !ok { 19 v.SetAttribute(attr.Name, []byte(fmt.Sprintf("%v", attr.Value))) 20 } 21 } 22 txt := v.Text(reader.Source()) 23 header := markup.Header{ 24 Text: util.BytesToReadOnlyString(txt), 25 Level: v.Level, 26 } 27 if id, found := v.AttributeString("id"); found { 28 header.ID = util.BytesToReadOnlyString(id.([]byte)) 29 } 30 *tocList = append(*tocList, header) 31 g.applyElementDir(v) 32 }