+5
-25
appview/pages/pages.go
+5
-25
appview/pages/pages.go
···
709
}
710
711
type RepoTreeParams struct {
712
-
LoggedInUser *oauth.User
713
-
RepoInfo repoinfo.RepoInfo
714
-
Active string
715
-
BreadCrumbs [][]string
716
-
TreePath string
717
-
Readme string
718
-
ReadmeFileName string
719
-
HTMLReadme template.HTML
720
-
Raw bool
721
types.RepoTreeResponse
722
}
723
···
744
745
func (p *Pages) RepoTree(w io.Writer, params RepoTreeParams) error {
746
params.Active = "overview"
747
-
748
-
if params.ReadmeFileName != "" {
749
-
params.ReadmeFileName = filepath.Base(params.ReadmeFileName)
750
-
751
-
ext := filepath.Ext(params.ReadmeFileName)
752
-
switch ext {
753
-
case ".md", ".markdown", ".mdown", ".mkdn", ".mkd":
754
-
params.Raw = false
755
-
htmlString := p.rctx.RenderMarkdown(params.Readme)
756
-
sanitized := p.rctx.SanitizeDefault(htmlString)
757
-
params.HTMLReadme = template.HTML(sanitized)
758
-
default:
759
-
params.Raw = true
760
-
}
761
-
}
762
-
763
return p.executeRepo("repo/tree", w, params)
764
}
765
···
709
}
710
711
type RepoTreeParams struct {
712
+
LoggedInUser *oauth.User
713
+
RepoInfo repoinfo.RepoInfo
714
+
Active string
715
+
BreadCrumbs [][]string
716
+
TreePath string
717
types.RepoTreeResponse
718
}
719
···
740
741
func (p *Pages) RepoTree(w io.Writer, params RepoTreeParams) error {
742
params.Active = "overview"
743
return p.executeRepo("repo/tree", w, params)
744
}
745
-6
appview/pages/templates/repo/tree.html
-6
appview/pages/templates/repo/tree.html
-24
appview/repo/repo.go
-24
appview/repo/repo.go
···
449
return
450
}
451
452
-
// readme content
453
-
var (
454
-
readmeContent string
455
-
readmeFileName string
456
-
)
457
-
458
-
for _, filename := range markup.ReadmeFilenames {
459
-
path := fmt.Sprintf("%s/%s", treePath, filename)
460
-
blobResp, err := tangled.RepoBlob(r.Context(), xrpcc, path, false, ref, repo)
461
-
if err != nil {
462
-
continue
463
-
}
464
-
465
-
if blobResp == nil {
466
-
continue
467
-
}
468
-
469
-
readmeContent = blobResp.Content
470
-
readmeFileName = path
471
-
break
472
-
}
473
-
474
// Convert XRPC response to internal types.RepoTreeResponse
475
files := make([]types.NiceTree, len(xrpcResp.Files))
476
for i, xrpcFile := range xrpcResp.Files {
···
532
BreadCrumbs: breadcrumbs,
533
TreePath: treePath,
534
RepoInfo: f.RepoInfo(user),
535
-
Readme: readmeContent,
536
-
ReadmeFileName: readmeFileName,
537
RepoTreeResponse: result,
538
})
539
}
···
449
return
450
}
451
452
// Convert XRPC response to internal types.RepoTreeResponse
453
files := make([]types.NiceTree, len(xrpcResp.Files))
454
for i, xrpcFile := range xrpcResp.Files {
···
510
BreadCrumbs: breadcrumbs,
511
TreePath: treePath,
512
RepoInfo: f.RepoInfo(user),
513
RepoTreeResponse: result,
514
})
515
}