mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Ensure that blob-excerpt links work for wiki (#18587)
It appears that the blob-excerpt links do not work on the wiki - likely since their introduction. This PR adds support for the wiki on these links. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -787,6 +787,15 @@ func ExcerptBlob(ctx *context.Context) {
 | 
				
			|||||||
	direction := ctx.FormString("direction")
 | 
						direction := ctx.FormString("direction")
 | 
				
			||||||
	filePath := ctx.FormString("path")
 | 
						filePath := ctx.FormString("path")
 | 
				
			||||||
	gitRepo := ctx.Repo.GitRepo
 | 
						gitRepo := ctx.Repo.GitRepo
 | 
				
			||||||
 | 
						if ctx.FormBool("wiki") {
 | 
				
			||||||
 | 
							var err error
 | 
				
			||||||
 | 
							gitRepo, err = git.OpenRepositoryCtx(ctx, ctx.Repo.Repository.WikiPath())
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								ctx.ServerError("OpenRepository", err)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							defer gitRepo.Close()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	chunkSize := gitdiff.BlobExcerptChunkSize
 | 
						chunkSize := gitdiff.BlobExcerptChunkSize
 | 
				
			||||||
	commit, err := gitRepo.GetCommit(commitID)
 | 
						commit, err := gitRepo.GetCommit(commitID)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@
 | 
				
			|||||||
package web
 | 
					package web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						gocontext "context"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"path"
 | 
						"path"
 | 
				
			||||||
@@ -956,7 +957,25 @@ func RegisterRoutes(m *web.Route) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		m.Group("/blob_excerpt", func() {
 | 
							m.Group("/blob_excerpt", func() {
 | 
				
			||||||
			m.Get("/{sha}", repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.ExcerptBlob)
 | 
								m.Get("/{sha}", repo.SetEditorconfigIfExists, repo.SetDiffViewStyle, repo.ExcerptBlob)
 | 
				
			||||||
		}, repo.MustBeNotEmpty, context.RepoRef(), reqRepoCodeReader)
 | 
							}, func(ctx *context.Context) (cancel gocontext.CancelFunc) {
 | 
				
			||||||
 | 
								if ctx.FormBool("wiki") {
 | 
				
			||||||
 | 
									ctx.Data["PageIsWiki"] = true
 | 
				
			||||||
 | 
									repo.MustEnableWiki(ctx)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								reqRepoCodeReader(ctx)
 | 
				
			||||||
 | 
								if ctx.Written() {
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								cancel = context.RepoRef()(ctx)
 | 
				
			||||||
 | 
								if ctx.Written() {
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								repo.MustBeNotEmpty(ctx)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		m.Group("/pulls/{index}", func() {
 | 
							m.Group("/pulls/{index}", func() {
 | 
				
			||||||
			m.Get(".diff", repo.DownloadPullDiff)
 | 
								m.Get(".diff", repo.DownloadPullDiff)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,17 +4,17 @@
 | 
				
			|||||||
		{{if eq .GetType 4}}
 | 
							{{if eq .GetType 4}}
 | 
				
			||||||
			<td class="lines-num lines-num-old" data-line-num="{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}">
 | 
								<td class="lines-num lines-num-old" data-line-num="{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}">
 | 
				
			||||||
				{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
									{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=down" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=down&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold-down"}}
 | 
											{{svg "octicon-fold-down"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
									{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold-up"}}
 | 
											{{svg "octicon-fold-up"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if eq $line.GetExpandDirection 2}}
 | 
									{{if eq $line.GetExpandDirection 2}}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold"}}
 | 
											{{svg "octicon-fold"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
@@ -43,17 +43,17 @@
 | 
				
			|||||||
		{{if eq .GetType 4}}
 | 
							{{if eq .GetType 4}}
 | 
				
			||||||
			<td colspan="2" class="lines-num">
 | 
								<td colspan="2" class="lines-num">
 | 
				
			||||||
				{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
									{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold-down"}}
 | 
											{{svg "octicon-fold-down"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
									{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold-up"}}
 | 
											{{svg "octicon-fold-up"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
				{{if eq $line.GetExpandDirection 2}}
 | 
									{{if eq $line.GetExpandDirection 2}}
 | 
				
			||||||
					<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="{{$.Anchor}}">
 | 
										<a role="button" class="blob-excerpt" data-url="{{$.RepoLink}}/blob_excerpt/{{PathEscape $.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=&wiki={{$.PageIsWiki}}" data-anchor="{{$.Anchor}}">
 | 
				
			||||||
						{{svg "octicon-fold"}}
 | 
											{{svg "octicon-fold"}}
 | 
				
			||||||
					</a>
 | 
										</a>
 | 
				
			||||||
				{{end}}
 | 
									{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,17 +7,17 @@
 | 
				
			|||||||
				{{if eq .GetType 4}}
 | 
									{{if eq .GetType 4}}
 | 
				
			||||||
					<td class="lines-num lines-num-old">
 | 
										<td class="lines-num lines-num-old">
 | 
				
			||||||
						{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
											{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=down" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=down&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold-down"}}
 | 
													{{svg "octicon-fold-down"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
											{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=up&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold-up"}}
 | 
													{{svg "octicon-fold-up"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if eq $line.GetExpandDirection 2}}
 | 
											{{if eq $line.GetExpandDirection 2}}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=split&direction=&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold"}}
 | 
													{{svg "octicon-fold"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,17 +6,17 @@
 | 
				
			|||||||
				{{if eq .GetType 4}}
 | 
									{{if eq .GetType 4}}
 | 
				
			||||||
					<td colspan="2" class="lines-num">
 | 
										<td colspan="2" class="lines-num">
 | 
				
			||||||
						{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
											{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 5) }}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=down&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold-down"}}
 | 
													{{svg "octicon-fold-down"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
											{{if or (eq $line.GetExpandDirection 3) (eq $line.GetExpandDirection 4) }}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=up&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold-up"}}
 | 
													{{svg "octicon-fold-up"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if eq $line.GetExpandDirection 2}}
 | 
											{{if eq $line.GetExpandDirection 2}}
 | 
				
			||||||
							<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
												<a role="button" class="blob-excerpt" data-url="{{$.root.RepoLink}}/blob_excerpt/{{PathEscape $.root.AfterCommitID}}" data-query="{{$line.GetBlobExcerptQuery}}&style=unified&direction=&wiki={{$.root.PageIsWiki}}" data-anchor="diff-{{Sha1 $file.Name}}K{{$line.SectionInfo.RightIdx}}">
 | 
				
			||||||
								{{svg "octicon-fold"}}
 | 
													{{svg "octicon-fold"}}
 | 
				
			||||||
							</a>
 | 
												</a>
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user