diff options
author | Brecht Van Lommel <brecht@blender.org> | 2024-01-03 07:01:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-03 14:01:12 +0800 |
commit | 12c0487e01d3fd9fe289345c53e8a220be55e864 (patch) | |
tree | 5f162ba31b7d39d04de004b3c6dd0b844212ed74 /modules/markup | |
parent | 91aa263225083d3de6d68fca08b253b685bc7e4b (diff) | |
download | gitea-12c0487e01d3fd9fe289345c53e8a220be55e864.tar.gz gitea-12c0487e01d3fd9fe289345c53e8a220be55e864.zip |
Make cross-reference issue links work in markdown documents again (#28682)
In #26365 issue references were disabled entirely for documents,
intending to match GitHub behavior. However cross-references do appear
to work in documents on GitHub.
This is useful for example to write release notes in a markdown document
and reference issues. While the simpler syntax may create links when not
intended, hopefully the cross-reference syntax is unique enough to avoid
it.
Diffstat (limited to 'modules/markup')
-rw-r--r-- | modules/markup/html.go | 11 | ||||
-rw-r--r-- | modules/markup/html_test.go | 7 |
2 files changed, 13 insertions, 5 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go index 03168b6946..05b1c3ef72 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -852,11 +852,14 @@ func fullIssuePatternProcessor(ctx *RenderContext, node *html.Node) { } func issueIndexPatternProcessor(ctx *RenderContext, node *html.Node) { - // FIXME: the use of "mode" is quite dirty and hacky, for example: what is a "document"? how should it be rendered? - // The "mode" approach should be refactored to some other more clear&reliable way. - if ctx.Metas == nil || (ctx.Metas["mode"] == "document" && !ctx.IsWiki) { + if ctx.Metas == nil { return } + + // FIXME: the use of "mode" is quite dirty and hacky, for example: what is a "document"? how should it be rendered? + // The "mode" approach should be refactored to some other more clear&reliable way. + crossLinkOnly := (ctx.Metas["mode"] == "document" && !ctx.IsWiki) + var ( found bool ref *references.RenderizableReference @@ -870,7 +873,7 @@ func issueIndexPatternProcessor(ctx *RenderContext, node *html.Node) { // Repos with external issue trackers might still need to reference local PRs // We need to concern with the first one that shows up in the text, whichever it is isNumericStyle := ctx.Metas["style"] == "" || ctx.Metas["style"] == IssueNameStyleNumeric - foundNumeric, refNumeric := references.FindRenderizableReferenceNumeric(node.Data, hasExtTrackFormat && !isNumericStyle) + foundNumeric, refNumeric := references.FindRenderizableReferenceNumeric(node.Data, hasExtTrackFormat && !isNumericStyle, crossLinkOnly) switch ctx.Metas["style"] { case "", IssueNameStyleNumeric: diff --git a/modules/markup/html_test.go b/modules/markup/html_test.go index d1f4e9e8a3..62fd0f5a85 100644 --- a/modules/markup/html_test.go +++ b/modules/markup/html_test.go @@ -561,11 +561,16 @@ func TestPostProcess_RenderDocument(t *testing.T) { assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(res.String())) } - // Issue index shouldn't be post processing in an document. + // Issue index shouldn't be post processing in a document. test( "#1", "#1") + // But cross-referenced issue index should work. + test( + "go-gitea/gitea#12345", + `<a href="`+util.URLJoin(markup.TestAppURL, "go-gitea", "gitea", "issues", "12345")+`" class="ref-issue">go-gitea/gitea#12345</a>`) + // Test that other post processing still works. test( ":gitea:", |