vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Turn the code tab into an editor-style file browser
a464f8927bfb3edcf170694f120dc9b3f68320da · Keenan Nemetz · 15d ago · parent f09ef39e
Turn the code tab into an editor-style file browser - Add a persistent nested file tree with HTMX file and folder swaps, active rows, expanded ancestors, and deep-link support. - Share one page header across every repository tab: title and summary on the left, tab actions grouped on the right. - Make the repository name the first tab and show visibility with a lock or globe icon derived from the ACL. - Open markdown as syntax-highlighted source by default, with an explicit full-width preview toggle. - Point the branch breadcrumb at the Code overview instead of a second root directory listing. - Move contributor-branch CI approval from the code browser to the Runs tab. - Extend UI tests for the file tree, fragments, repo visibility, markdown source/preview, shared headers, and the moved CI control.
server/web/templates/releases.html +19−7
| @@ -1,6 +1,14 @@ | |||
| 1 | 1 | {{define "releases"}} | |
| 2 | 2 | {{template "header" .}} | |
| 3 | 3 | {{template "repohead" (nav .Name "releases")}} | |
| 4 | |||
| 5 | <div class="page-head"> | ||
| 6 | <div class="page-head-main"> | ||
| 7 | <h1>Releases</h1> | ||
| 8 | <p class="page-sub">{{if .Tags}}{{len .Tags}} tag(s){{if .Lightweight}} · {{.Lightweight}} lightweight{{end}}{{else}}Tags with notes, artifacts, and archives.{{end}}</p> | ||
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | |||
| 4 | 12 | {{if .Tags}} | |
| 5 | 13 | <table> | |
| 6 | 14 | <tr><th>Tag</th><th>Notes</th><th>Tagger</th><th>Age</th><th>Source</th></tr> | |
| @@ -29,13 +37,17 @@ records a tagger and a message, which is what makes a tag a release.</p> | |||
| 29 | 37 | {{define "release"}} | |
| 30 | 38 | {{template "header" .}} | |
| 31 | 39 | {{template "repohead" (nav .Name "releases")}} | |
| 32 | <h1>{{.Tag.Name}}</h1> | ||
| 33 | <p class="muted"> | ||
| 34 | {{if .Tag.Annotated}}annotated tag{{else}}lightweight tag{{end}} | ||
| 35 | {{if .Tag.Tagger}}by {{.Tag.Tagger}}{{end}} | ||
| 36 | · {{since .Tag.When}} | ||
| 37 | · commit <a class="sha" href="/r/{{.Name}}/commit/{{.Tag.Commit}}">{{short .Tag.Commit}}</a> | ||
| 38 | </p> | ||
| 40 | <div class="page-head"> | ||
| 41 | <div class="page-head-main"> | ||
| 42 | <h1>{{.Tag.Name}}</h1> | ||
| 43 | <p class="page-sub"> | ||
| 44 | {{if .Tag.Annotated}}annotated tag{{else}}lightweight tag{{end}} | ||
| 45 | {{if .Tag.Tagger}}by {{.Tag.Tagger}}{{end}} | ||
| 46 | · {{since .Tag.When}} | ||
| 47 | · commit <a class="sha" href="/r/{{.Name}}/commit/{{.Tag.Commit}}">{{short .Tag.Commit}}</a> | ||
| 48 | </p> | ||
| 49 | </div> | ||
| 50 | </div> | ||
| 39 | 51 | ||
| 40 | 52 | {{if .Notes}} | |
| 41 | 53 | <div class="md">{{.Notes}}</div> | |