mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add code highlighting in issue titles (#21432)
				
					
				
			This changes the rendering logic of issue titles. If a substring in an issue title is enclosed with a pair of backticks, it'll be rendered with a monospace font (HTML `code` tag). * Closes #20887 Signed-off-by: Yarden Shoham <hrsi88@gmail.com> Co-authored-by: Gusted <williamzijl7@hotmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
		@@ -161,6 +161,7 @@ func NewFuncMap() []template.FuncMap {
 | 
			
		||||
		"RenderCommitMessageLink":        RenderCommitMessageLink,
 | 
			
		||||
		"RenderCommitMessageLinkSubject": RenderCommitMessageLinkSubject,
 | 
			
		||||
		"RenderCommitBody":               RenderCommitBody,
 | 
			
		||||
		"RenderCodeBlock":                RenderCodeBlock,
 | 
			
		||||
		"RenderIssueTitle":               RenderIssueTitle,
 | 
			
		||||
		"RenderEmoji":                    RenderEmoji,
 | 
			
		||||
		"RenderEmojiPlain":               emoji.ReplaceAliases,
 | 
			
		||||
@@ -795,6 +796,16 @@ func RenderCommitBody(ctx context.Context, msg, urlPrefix string, metas map[stri
 | 
			
		||||
	return template.HTML(renderedMessage)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Match text that is between back ticks.
 | 
			
		||||
var codeMatcher = regexp.MustCompile("`([^`]+)`")
 | 
			
		||||
 | 
			
		||||
// RenderCodeBlock renders "`…`" as highlighted "<code>" block.
 | 
			
		||||
// Intended for issue and PR titles, these containers should have styles for "<code>" elements
 | 
			
		||||
func RenderCodeBlock(htmlEscapedTextToRender template.HTML) template.HTML {
 | 
			
		||||
	htmlWithCodeTags := codeMatcher.ReplaceAllString(string(htmlEscapedTextToRender), "<code>$1</code>") // replace with HTML <code> tags
 | 
			
		||||
	return template.HTML(htmlWithCodeTags)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RenderIssueTitle renders issue/pull title with defined post processors
 | 
			
		||||
func RenderIssueTitle(ctx context.Context, text, urlPrefix string, metas map[string]string) template.HTML {
 | 
			
		||||
	renderedText, err := markup.RenderIssueTitle(&markup.RenderContext{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user