From 75bbca68ce0b6a13e94a5147311afcb800819f5e Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Tue, 18 Jun 2024 06:56:45 +0800 Subject: [PATCH] Refactor markup code (#31399) 1. use clearer names 2. remove deadcode 3. avoid name shadowing 4. eliminate some lint warnings (cherry picked from commit 5a7376c0605415e63cb5b3b8f89ead01e567229b) Conflicts: modules/markup/html.go simple code divergence, trivial logic --- .deadcode-out | 1 - modules/markup/html.go | 25 ++++++------------------- modules/markup/html_test.go | 11 ----------- 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/.deadcode-out b/.deadcode-out index 186e1ef4e..e05289247 100644 --- a/.deadcode-out +++ b/.deadcode-out @@ -210,7 +210,6 @@ code.gitea.io/gitea/modules/json StdJSON.Indent code.gitea.io/gitea/modules/markup - IsSameDomain GetRendererByType RenderString IsMarkupFile diff --git a/modules/markup/html.go b/modules/markup/html.go index 93c72fdcb..b5c0e405a 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -143,20 +143,6 @@ func CustomLinkURLSchemes(schemes []string) { common.LinkRegex, _ = xurls.StrictMatchingScheme(strings.Join(withAuth, "|")) } -// IsSameDomain checks if given url string has the same hostname as current Gitea instance -func IsSameDomain(s string) bool { - if strings.HasPrefix(s, "/") { - return true - } - if uapp, err := url.Parse(setting.AppURL); err == nil { - if u, err := url.Parse(s); err == nil { - return u.Host == uapp.Host - } - return false - } - return false -} - type postProcessError struct { context string err error @@ -393,7 +379,7 @@ func visitNode(ctx *RenderContext, procs []processor, node *html.Node) { // We ignore code and pre. switch node.Type { case html.TextNode: - textNode(ctx, procs, node) + processTextNodes(ctx, procs, node) case html.ElementNode: if node.Data == "img" { for i, attr := range node.Attr { @@ -436,15 +422,16 @@ func visitNode(ctx *RenderContext, procs []processor, node *html.Node) { for n := node.FirstChild; n != nil; n = n.NextSibling { visitNode(ctx, procs, n) } + default: } // ignore everything else } -// textNode runs the passed node through various processors, in order to handle +// processTextNodes runs the passed node through various processors, in order to handle // all kinds of special links handled by the post-processing. -func textNode(ctx *RenderContext, procs []processor, node *html.Node) { - for _, processor := range procs { - processor(ctx, node) +func processTextNodes(ctx *RenderContext, procs []processor, node *html.Node) { + for _, p := range procs { + p(ctx, node) } } diff --git a/modules/markup/html_test.go b/modules/markup/html_test.go index cfd1a66a1..fa49e60a1 100644 --- a/modules/markup/html_test.go +++ b/modules/markup/html_test.go @@ -135,17 +135,6 @@ func TestRender_CrossReferences(t *testing.T) { `

`+sha[:10]+`/README.md (L1-L5)

`) } -func TestMisc_IsSameDomain(t *testing.T) { - setting.AppURL = markup.TestAppURL - - sha := "b6dd6210eaebc915fd5be5579c58cce4da2e2579" - commit := util.URLJoin(markup.TestRepoURL, "commit", sha) - - assert.True(t, markup.IsSameDomain(commit)) - assert.False(t, markup.IsSameDomain("http://google.com/ncr")) - assert.False(t, markup.IsSameDomain("favicon.ico")) -} - func TestRender_links(t *testing.T) { setting.AppURL = markup.TestAppURL