]> source.dussan.org Git - gitea.git/commitdiff
Clickable links in pull request (and issue) titles (#13695)
authorJimmy Praet <jimmy.praet@ksz-bcss.fgov.be>
Thu, 3 Dec 2020 10:50:47 +0000 (11:50 +0100)
committerGitHub <noreply@github.com>
Thu, 3 Dec 2020 10:50:47 +0000 (11:50 +0100)
* 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

modules/markup/html.go
modules/templates/helper.go
templates/repo/issue/view_title.tmpl

index f5f811b59b6fc97d72d0fe328e6169c4cd0ef3d5..a6c6649cd359438c65e4a569d507276722852ad8 100644 (file)
@@ -268,6 +268,25 @@ func RenderCommitMessageSubject(
        return ctx.postProcess(rawHTML)
 }
 
+// RenderIssueTitle to process title on individual issue/pull page
+func RenderIssueTitle(
+       rawHTML []byte,
+       urlPrefix string,
+       metas map[string]string,
+) ([]byte, error) {
+       ctx := &postProcessCtx{
+               metas:     metas,
+               urlPrefix: urlPrefix,
+               procs: []processor{
+                       issueIndexPatternProcessor,
+                       sha1CurrentPatternProcessor,
+                       emojiShortCodeProcessor,
+                       emojiProcessor,
+               },
+       }
+       return ctx.postProcess(rawHTML)
+}
+
 // RenderDescriptionHTML will use similar logic as PostProcess, but will
 // use a single special linkProcessor.
 func RenderDescriptionHTML(
index bb7a3476f29b46f610ee84efc0e1f3e0736d15ba..8b96397529bf448adf6eb3d19b21c4c25f28c210 100644 (file)
@@ -154,6 +154,7 @@ func NewFuncMap() []template.FuncMap {
                "RenderCommitMessageLink":        RenderCommitMessageLink,
                "RenderCommitMessageLinkSubject": RenderCommitMessageLinkSubject,
                "RenderCommitBody":               RenderCommitBody,
+               "RenderIssueTitle":               RenderIssueTitle,
                "RenderEmoji":                    RenderEmoji,
                "RenderEmojiPlain":               emoji.ReplaceAliases,
                "ReactionToEmoji":                ReactionToEmoji,
@@ -630,6 +631,16 @@ func RenderCommitBody(msg, urlPrefix string, metas map[string]string) template.H
        return template.HTML(renderedMessage)
 }
 
+// RenderIssueTitle renders issue/pull title with defined post processors
+func RenderIssueTitle(text, urlPrefix string, metas map[string]string) template.HTML {
+       renderedText, err := markup.RenderIssueTitle([]byte(template.HTMLEscapeString(text)), urlPrefix, metas)
+       if err != nil {
+               log.Error("RenderIssueTitle: %v", err)
+               return template.HTML("")
+       }
+       return template.HTML(renderedText)
+}
+
 // RenderEmoji renders html text with emoji post processors
 func RenderEmoji(text string) template.HTML {
        renderedText, err := markup.RenderEmoji([]byte(template.HTMLEscapeString(text)))
index e2a14502f4695dac622ca48a5725b5a5c4c30590..0d594b3a5cda0de61c4e053c514af6dceaadc728 100644 (file)
@@ -6,7 +6,7 @@
                        </div>
                {{end}}
                <h1>
-                       <span id="issue-title">{{RenderEmoji .Issue.Title}}</span>
+                       <span id="issue-title">{{RenderIssueTitle .Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span>
                        <span class="index">#{{.Issue.Index}}</span>
                        <div id="edit-title-input" class="ui input" style="display: none">
                                <input value="{{.Issue.Title}}" maxlength="255">