From c5a65b9d455c6cbec2b2ff20a8fe30934221388c Mon Sep 17 00:00:00 2001 From: hamki Date: Sun, 18 Jan 2026 14:58:37 +0800 Subject: [PATCH] refactor: remove deprecated SidebarTocNode and clean up sidebar TOC rendering - Eliminate the deprecated SidebarTocNode from RenderContext and related functions. - Update sidebar TOC rendering logic to exclusively use SidebarTocHeaders for improved clarity and maintainability. - Remove fallback logic for legacy TOC rendering to streamline the codebase. --- modules/markup/markdown/goldmark.go | 3 --- modules/markup/render.go | 2 -- routers/web/repo/view.go | 13 +------------ routers/web/repo/wiki.go | 8 +------- 4 files changed, 2 insertions(+), 24 deletions(-) diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index 1bb1601488..35ecc77b5a 100644 --- a/modules/markup/markdown/goldmark.go +++ b/modules/markup/markdown/goldmark.go @@ -86,9 +86,6 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa tocNode := createTOCNode(tocList, rc.Lang, nil) node.InsertBefore(node, firstChild, tocNode) } else { - tocNode := createTOCNode(tocList, rc.Lang, map[string]string{"open": "open"}) - ctx.SidebarTocNode = tocNode - // Also set the generic SidebarTocHeaders for the new abstraction ctx.SidebarTocHeaders = make([]markup.Header, len(tocList)) for i, h := range tocList { ctx.SidebarTocHeaders[i] = markup.Header{Level: h.Level, Text: h.Text, ID: h.ID} diff --git a/modules/markup/render.go b/modules/markup/render.go index c30527cb78..06aec9bc30 100644 --- a/modules/markup/render.go +++ b/modules/markup/render.go @@ -18,7 +18,6 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" - "github.com/yuin/goldmark/ast" "golang.org/x/sync/errgroup" ) @@ -70,7 +69,6 @@ type RenderContext struct { // the context might be used by the "render" function, but it might also be used by "postProcess" function usedByRender bool - SidebarTocNode ast.Node // Deprecated: use SidebarTocHeaders instead, keep for compatibility SidebarTocHeaders []Header // Headers for generating sidebar TOC RenderHelper RenderHelper diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 2cb8008315..4bbad1a02e 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -35,7 +35,6 @@ import ( "code.gitea.io/gitea/modules/lfs" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/markup" - "code.gitea.io/gitea/modules/markup/markdown" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/templates" @@ -181,20 +180,10 @@ func markupRender(ctx *context.Context, renderCtx *markup.RenderContext, input i } func renderSidebarTocHTML(rctx *markup.RenderContext, lang string) template.HTML { - // Prefer the new generic SidebarTocHeaders if len(rctx.SidebarTocHeaders) > 0 { return markup.RenderSidebarTocHTML(rctx.SidebarTocHeaders, lang) } - // Fallback to legacy SidebarTocNode for backward compatibility - if rctx.SidebarTocNode == nil { - return "" - } - sb := &strings.Builder{} - if err := markdown.SpecializedMarkdown(rctx).Renderer().Render(sb, nil, rctx.SidebarTocNode); err != nil { - log.Error("Failed to render sidebar TOC: %v", err) - return "" - } - return templates.SanitizeHTML(sb.String()) + return "" } func checkHomeCodeViewable(ctx *context.Context) { diff --git a/routers/web/repo/wiki.go b/routers/web/repo/wiki.go index b475e3ed21..165eb54d00 100644 --- a/routers/web/repo/wiki.go +++ b/routers/web/repo/wiki.go @@ -277,15 +277,9 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) { return nil, nil } - // Render sidebar TOC - prefer generic headers, fallback to legacy node + // Render sidebar TOC if len(rctx.SidebarTocHeaders) > 0 { ctx.Data["WikiSidebarTocHTML"] = markup.RenderSidebarTocHTML(rctx.SidebarTocHeaders, ctx.Locale.Language()) - } else if rctx.SidebarTocNode != nil { - sb := strings.Builder{} - if err = markdown.SpecializedMarkdown(rctx).Renderer().Render(&sb, nil, rctx.SidebarTocNode); err != nil { - log.Error("Failed to render wiki sidebar TOC: %v", err) - } - ctx.Data["WikiSidebarTocHTML"] = templates.SanitizeHTML(sb.String()) } if !isSideBar {