forked from gitea/gitea
		
	Merge pull request #2112 from nanoant/patch/better-git-message-display
Render commit msg as header + verbatim description
This commit is contained in:
		
						commit
						abb02889f2
					
				| @ -183,15 +183,27 @@ func ReplaceLeft(s, old, new string) string { | ||||
| } | ||||
| 
 | ||||
| // RenderCommitMessage renders commit message with XSS-safe and special links. | ||||
| func RenderCommitMessage(msg, urlPrefix string, metas map[string]string) template.HTML { | ||||
| func RenderCommitMessage(full bool, msg, urlPrefix string, metas map[string]string) template.HTML { | ||||
| 	cleanMsg := template.HTMLEscapeString(msg) | ||||
| 	fullMessage := string(base.RenderIssueIndexPattern([]byte(cleanMsg), urlPrefix, metas)) | ||||
| 	msgLines := strings.Split(strings.TrimSpace(fullMessage), "\n") | ||||
| 	for i := range msgLines { | ||||
| 		msgLines[i] = ReplaceLeft(msgLines[i], " ", " ") | ||||
| 	numLines := len(msgLines) | ||||
| 	if numLines == 0 { | ||||
| 		return template.HTML("") | ||||
| 	} else if !full { | ||||
| 		return template.HTML(msgLines[0]) | ||||
| 	} else if numLines == 1 || (numLines >= 2 && len(msgLines[1]) == 0) { | ||||
| 		// First line is a header, standalone or followed by empty line | ||||
| 		header := fmt.Sprintf("<h3>%s</h3>", msgLines[0]) | ||||
| 		if numLines >= 2 { | ||||
| 			fullMessage = header + fmt.Sprintf("\n<pre>%s</pre>", strings.Join(msgLines[2:], "\n")) | ||||
| 		} else { | ||||
| 			fullMessage = header | ||||
| 		} | ||||
| 	} else { | ||||
| 		// Non-standard git message, there is no header line | ||||
| 		fullMessage = fmt.Sprintf("<h4>%s</h4>", strings.Join(msgLines, "<br>")) | ||||
| 	} | ||||
| 
 | ||||
| 	fullMessage = strings.Join(msgLines, "<br>") | ||||
| 	return template.HTML(fullMessage) | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -895,13 +895,22 @@ pre.raw { | ||||
| .ui .warning.segment { | ||||
|   border-color: #F0C36D; | ||||
| } | ||||
| .ui .info.header { | ||||
|   background-color: #d9edf7 !important; | ||||
|   border-color: #85c5e5; | ||||
| } | ||||
| .ui .info.segment { | ||||
|   border-color: #85c5e5; | ||||
| } | ||||
| .ui .info.segment.top { | ||||
|   background-color: #d9edf7 !important; | ||||
| } | ||||
| .ui .info.segment.top h3, | ||||
| .ui .info.segment.top h4 { | ||||
|   margin-top: 0; | ||||
| } | ||||
| .ui .info.segment.top h3:last-child { | ||||
|   margin-top: 4px; | ||||
| } | ||||
| .ui .info.segment.top > :last-child { | ||||
|   margin-bottom: 0; | ||||
| } | ||||
| .ui .normal.header { | ||||
|   font-weight: normal; | ||||
| } | ||||
|  | ||||
| @ -196,12 +196,20 @@ pre { | ||||
| 		} | ||||
| 	} | ||||
| 	.info { | ||||
| 		&.header { | ||||
| 			background-color: #d9edf7 !important; | ||||
|     	border-color: #85c5e5; | ||||
| 		} | ||||
| 		&.segment { | ||||
|     	border-color: #85c5e5; | ||||
| 			border-color: #85c5e5; | ||||
| 			&.top { | ||||
| 				background-color: #d9edf7 !important; | ||||
| 				h3, h4 { | ||||
| 					margin-top: 0; | ||||
| 				} | ||||
| 				h3:last-child { | ||||
| 					margin-top: 4px; | ||||
| 				} | ||||
| 				> :last-child { | ||||
| 					margin-bottom: 0; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -37,7 +37,7 @@ | ||||
|         </td> | ||||
|         <td class="message collapsing"> | ||||
|           <a rel="nofollow" class="ui sha label" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{.ID}}">{{ShortSha .ID.String}}</a> | ||||
|           {{RenderCommitMessage .Summary $.RepoLink $.Repository.ComposeMetas}}    | ||||
|           {{RenderCommitMessage false .Summary $.RepoLink $.Repository.ComposeMetas}} | ||||
|         </td> | ||||
|         <td class="grey text right aligned">{{TimeSince .Author.When $.Lang}}</td> | ||||
|       </tr> | ||||
|  | ||||
| @ -5,14 +5,12 @@ | ||||
|     {{if .IsDiffCompare }} | ||||
|     {{template "repo/commits_table" .}} | ||||
|     {{else}} | ||||
|     <h4 class="ui top attached info header"> | ||||
|       <div class="ui right"> | ||||
|         <a class="ui blue tiny button" href="{{EscapePound .SourcePath}}"> | ||||
|           {{.i18n.Tr "repo.diff.browse_source"}} | ||||
|         </a> | ||||
|       </div> | ||||
|       {{RenderCommitMessage .Commit.Message $.RepoLink $.Repository.ComposeMetas}} | ||||
|     </h4> | ||||
|     <div class="ui top attached info clearing segment"> | ||||
|       <a class="ui floated right blue tiny button" href="{{EscapePound .SourcePath}}"> | ||||
|         {{.i18n.Tr "repo.diff.browse_source"}} | ||||
|       </a> | ||||
|       {{RenderCommitMessage true .Commit.Message $.RepoLink $.Repository.ComposeMetas}} | ||||
|     </div> | ||||
|     <div class="ui attached info segment"> | ||||
|       {{if .Author}} | ||||
|       <img class="ui avatar image" src="{{.Author.AvatarLink}}" /> | ||||
|  | ||||
| @ -10,7 +10,7 @@ | ||||
|         <strong>{{.LastCommit.Author.Name}}</strong> | ||||
|         {{end}} | ||||
|         <a rel="nofollow" class="ui sha label" href="{{.RepoLink}}/commit/{{.LastCommit.ID}}" rel="nofollow">{{ShortSha .LastCommit.ID.String}}</a> | ||||
|         <span class="grey">{{RenderCommitMessage .LastCommit.Summary .RepoLink $.Repository.ComposeMetas}}</span> | ||||
|         <span class="grey">{{RenderCommitMessage false .LastCommit.Summary .RepoLink $.Repository.ComposeMetas}}</span> | ||||
|       </th> | ||||
|       <th class="nine wide"> | ||||
|       </th> | ||||
| @ -44,7 +44,7 @@ | ||||
|         {{end}} | ||||
|         <td class="message collapsing"> | ||||
|           <a rel="nofollow" class="ui sha label" href="{{AppSubUrl}}/{{$.Username}}/{{$.Reponame}}/commit/{{$commit.ID}}">{{ShortSha $commit.ID.String}}</a> | ||||
|           {{RenderCommitMessage $commit.Summary $.RepoLink $.Repository.ComposeMetas}} | ||||
|           {{RenderCommitMessage false $commit.Summary $.RepoLink $.Repository.ComposeMetas}} | ||||
|         </td> | ||||
|         <td class="text grey right age">{{TimeSince $commit.Committer.When $.Lang}}</td> | ||||
|       </tr> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Unknwon
						Unknwon