1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
diff --git a/internal/html/repo_file.go b/internal/html/repo_file.go
index 6dd3cb13080a68e45577f5b11ef5ae2f27836dd4..981121c907f7f14da2dc9c20dba1b5eba9bb1f94 100644
--- a/internal/html/repo_file.go
+++ b/internal/html/repo_file.go
@@ -2,6 +2,7 @@ package html
import (
_ "embed"
+ "fmt"
. "maragu.dev/gomponents"
. "maragu.dev/gomponents/html"
@@ -11,19 +12,24 @@ type RepoFileContext struct {
BaseContext
RepoHeaderComponentContext
RepoBreadcrumbComponentContext
- Code string
+ Code string
+ Commit string
+ Path string
}
//go:embed repo_file.js
var repoFileJS string
func RepoFileTemplate(rfc RepoFileContext) Node {
+ permalink := fmt.Sprintf("/%s/tree/%s/%s", rfc.RepoBreadcrumbComponentContext.Repo, rfc.Commit, rfc.Path)
return base(rfc.BaseContext, []Node{
repoHeaderComponent(rfc.RepoHeaderComponentContext),
Div(Class("mt-2 text-text"),
repoBreadcrumbComponent(rfc.RepoBreadcrumbComponentContext),
Text(" - "),
A(Class("text-text underline decoration-text/50 decoration-dashed hover:decoration-solid"), Href("?raw"), Text("raw")),
+ Text(" - "),
+ A(Class("text-text underline decoration-text/50 decoration-dashed hover:decoration-solid"), ID("permalink"), Data("permalink", permalink), Href(permalink), Text("permalink")),
Div(Class("code relative"),
Raw(rfc.Code),
Button(ID("copy"), Class("absolute top-0 right-0 rounded bg-base hover:bg-surface0")),
|