From acfae43253d4f0bb637552bfab7d6fbc57013ed9 Mon Sep 17 00:00:00 2001 From: Mai-Lapyst Date: Fri, 19 Apr 2024 23:54:46 +0200 Subject: [PATCH] Fix panic where now a third link breaks everything --- modules/markup/html.go | 5 ++- modules/markup/html_test.go | 81 +++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 2 deletions(-) diff --git a/modules/markup/html.go b/modules/markup/html.go index 885155828..b4fd008aa 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -1086,7 +1086,8 @@ func filePreviewPatternProcessor(ctx *RenderContext, node *html.Node) { // Specialized version of replaceContent, so the parent paragraph element is not destroyed from our div before := node.Data[:(preview.start - offset)] after := node.Data[(preview.end - offset):] - offset += preview.end - 3 + afterPrefix := "

" + offset = preview.end - len(afterPrefix) node.Data = before nextSibling := node.NextSibling node.Parent.InsertBefore(&html.Node{ @@ -1096,7 +1097,7 @@ func filePreviewPatternProcessor(ctx *RenderContext, node *html.Node) { node.Parent.InsertBefore(previewNode, nextSibling) afterNode := &html.Node{ Type: html.RawNode, - Data: "

" + after, + Data: afterPrefix + after, } node.Parent.InsertBefore(afterNode, nextSibling) node = afterNode diff --git a/modules/markup/html_test.go b/modules/markup/html_test.go index 1b8a92e51..a1a99c1a7 100644 --- a/modules/markup/html_test.go +++ b/modules/markup/html_test.go @@ -917,5 +917,86 @@ func TestRender_FilePreview(t *testing.T) { `

`, localMetas, ) + + testRender( + "first "+commitFilePreview+" second "+commitFilePreview+" third "+commitFilePreview, + `

first

`+ + `
`+ + `
`+ + `
`+ + `path/to/file.go`+ + `
`+ + ``+ + `Lines 2 to 3 in 190d949`+ + ``+ + `
`+ + `
`+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + `
B`+"\n"+`
C`+"\n"+`
`+ + `
`+ + `
`+ + `

second

`+ + `
`+ + `
`+ + `
`+ + `path/to/file.go`+ + `
`+ + ``+ + `Lines 2 to 3 in 190d949`+ + ``+ + `
`+ + `
`+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + `
B`+"\n"+`
C`+"\n"+`
`+ + `
`+ + `
`+ + `

third

`+ + `
`+ + `
`+ + `
`+ + `path/to/file.go`+ + `
`+ + ``+ + `Lines 2 to 3 in 190d949`+ + ``+ + `
`+ + `
`+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + ``+ + `
B`+"\n"+`
C`+"\n"+`
`+ + `
`+ + `
`+ + `

`, + localMetas, + ) }) }