mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-20 20:07:03 +01:00
Merge pull request '[v8.0/forgejo] Don't panic on empty blockquote' (#4622) from gusted/forgejo-commit-panic-bp into v8.0/forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4622 Reviewed-by: twenty-panda <twenty-panda@noreply.codeberg.org>
This commit is contained in:
commit
3962380a33
3 changed files with 22 additions and 0 deletions
|
@ -36,6 +36,10 @@ func (g *GitHubCalloutTransformer) Transform(node *ast.Document, reader text.Rea
|
|||
|
||||
switch v := n.(type) {
|
||||
case *ast.Blockquote:
|
||||
if v.ChildCount() == 0 {
|
||||
return ast.WalkContinue, nil
|
||||
}
|
||||
|
||||
// We only want attention blockquotes when the AST looks like:
|
||||
// Text: "["
|
||||
// Text: "!TYPE"
|
||||
|
|
|
@ -25,6 +25,10 @@ func (g *GitHubLegacyCalloutTransformer) Transform(node *ast.Document, reader te
|
|||
|
||||
switch v := n.(type) {
|
||||
case *ast.Blockquote:
|
||||
if v.ChildCount() == 0 {
|
||||
return ast.WalkContinue, nil
|
||||
}
|
||||
|
||||
// The first paragraph contains the callout type.
|
||||
firstParagraph := v.FirstChild()
|
||||
if firstParagraph.ChildCount() < 1 {
|
||||
|
|
|
@ -1210,3 +1210,17 @@ func TestCustomMarkdownURL(t *testing.T) {
|
|||
test("[test](abp)",
|
||||
`<p><a href="http://localhost:3000/gogits/gogs/src/branch/main/abp" rel="nofollow">test</a></p>`)
|
||||
}
|
||||
|
||||
func TestCallout(t *testing.T) {
|
||||
setting.AppURL = AppURL
|
||||
|
||||
test := func(input, expected string) {
|
||||
buffer, err := markdown.RenderString(&markup.RenderContext{
|
||||
Ctx: git.DefaultContext,
|
||||
}, input)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer)))
|
||||
}
|
||||
|
||||
test(">\n0", "<blockquote>\n</blockquote>\n<p>0</p>")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue