vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0: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/layout.html +1−2
| @@ -39,9 +39,8 @@ | |||
| 39 | 39 | ||
| 40 | 40 | {{define "repohead"}} | |
| 41 | 41 | <div class="repohead"> | |
| 42 | <a class="reponame" href="/r/{{.Name}}">{{.Name}}</a> | ||
| 43 | 42 | <nav class="tabs" aria-label="Repository"> | |
| 44 | <a href="/r/{{.Name}}"{{if eq .Tab "overview"}} class="active" aria-current="page"{{end}}>{{icon "layout-dashboard"}}Overview</a> | ||
| 43 | <a class="repotab{{if eq .Tab "overview"}} active{{end}}" href="/r/{{.Name}}"{{if eq .Tab "overview"}} aria-current="page"{{end}} title="{{if .Private}}Private repository{{else}}Public repository{{end}}" aria-label="{{.Name}} ({{if .Private}}private{{else}}public{{end}} repository)">{{if .Private}}{{icon "lock"}}{{else}}{{icon "globe"}}{{end}}{{.Name}}</a> | ||
| 45 | 44 | <a href="/r/{{.Name}}/activity"{{if eq .Tab "activity"}} class="active" aria-current="page"{{end}}>{{icon "activity"}}Activity</a> | |
| 46 | 45 | <a href="/r/{{.Name}}/code"{{if eq .Tab "code"}} class="active" aria-current="page"{{end}}>{{icon "code"}}Code</a> | |
| 47 | 46 | <a href="/r/{{.Name}}/issues"{{if eq .Tab "issues"}} class="active" aria-current="page"{{end}}>{{icon "circle-dot"}}Issues</a> | |