Skip to content

Commit 056b8f5

Browse files
authored
Clickable links in pull request (and issue) titles (#13695)
* clickable links in pull request (and issue) titles #13658 reuses the existing logic to render clickable links in commit messages * dedicated RenderIssueTitle function applied patch from @mrsdizzie
1 parent 18712ea commit 056b8f5

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

modules/markup/html.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,25 @@ func RenderCommitMessageSubject(
268268
return ctx.postProcess(rawHTML)
269269
}
270270

271+
// RenderIssueTitle to process title on individual issue/pull page
272+
func RenderIssueTitle(
273+
rawHTML []byte,
274+
urlPrefix string,
275+
metas map[string]string,
276+
) ([]byte, error) {
277+
ctx := &postProcessCtx{
278+
metas: metas,
279+
urlPrefix: urlPrefix,
280+
procs: []processor{
281+
issueIndexPatternProcessor,
282+
sha1CurrentPatternProcessor,
283+
emojiShortCodeProcessor,
284+
emojiProcessor,
285+
},
286+
}
287+
return ctx.postProcess(rawHTML)
288+
}
289+
271290
// RenderDescriptionHTML will use similar logic as PostProcess, but will
272291
// use a single special linkProcessor.
273292
func RenderDescriptionHTML(

modules/templates/helper.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func NewFuncMap() []template.FuncMap {
154154
"RenderCommitMessageLink": RenderCommitMessageLink,
155155
"RenderCommitMessageLinkSubject": RenderCommitMessageLinkSubject,
156156
"RenderCommitBody": RenderCommitBody,
157+
"RenderIssueTitle": RenderIssueTitle,
157158
"RenderEmoji": RenderEmoji,
158159
"RenderEmojiPlain": emoji.ReplaceAliases,
159160
"ReactionToEmoji": ReactionToEmoji,
@@ -630,6 +631,16 @@ func RenderCommitBody(msg, urlPrefix string, metas map[string]string) template.H
630631
return template.HTML(renderedMessage)
631632
}
632633

634+
// RenderIssueTitle renders issue/pull title with defined post processors
635+
func RenderIssueTitle(text, urlPrefix string, metas map[string]string) template.HTML {
636+
renderedText, err := markup.RenderIssueTitle([]byte(template.HTMLEscapeString(text)), urlPrefix, metas)
637+
if err != nil {
638+
log.Error("RenderIssueTitle: %v", err)
639+
return template.HTML("")
640+
}
641+
return template.HTML(renderedText)
642+
}
643+
633644
// RenderEmoji renders html text with emoji post processors
634645
func RenderEmoji(text string) template.HTML {
635646
renderedText, err := markup.RenderEmoji([]byte(template.HTMLEscapeString(text)))

templates/repo/issue/view_title.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</div>
77
{{end}}
88
<h1>
9-
<span id="issue-title">{{RenderEmoji .Issue.Title}}</span>
9+
<span id="issue-title">{{RenderIssueTitle .Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span>
1010
<span class="index">#{{.Issue.Index}}</span>
1111
<div id="edit-title-input" class="ui input" style="display: none">
1212
<input value="{{.Issue.Title}}" maxlength="255">

0 commit comments

Comments
 (0)