diff --git a/git/tree.go b/git/tree.go index 0ef1f2f..88ad1c1 100644 --- a/git/tree.go +++ b/git/tree.go @@ -19,7 +19,7 @@ func (g *GitRepo) FileTree(path string) ([]NiceTree, error) { } if path == "" { - files = makeNiceTree(tree.Entries) + files = makeNiceTree(tree) } else { o, err := tree.FindEntry(path) if err != nil { @@ -32,7 +32,7 @@ func (g *GitRepo) FileTree(path string) ([]NiceTree, error) { return nil, err } - files = makeNiceTree(subtree.Entries) + files = makeNiceTree(subtree) } } @@ -48,15 +48,17 @@ type NiceTree struct { IsSubtree bool } -func makeNiceTree(es []object.TreeEntry) []NiceTree { +func makeNiceTree(t *object.Tree) []NiceTree { nts := []NiceTree{} - for _, e := range es { + for _, e := range t.Entries { mode, _ := e.Mode.ToOSFileMode() + sz, _ := t.Size(e.Name) nts = append(nts, NiceTree{ Name: e.Name, Mode: mode.String(), IsFile: e.Mode.IsFile(), + Size: sz, }) } diff --git a/routes/routes.go b/routes/routes.go index a16f0de..c3544c1 100644 --- a/routes/routes.go +++ b/routes/routes.go @@ -256,6 +256,7 @@ func (d *deps) Log(w http.ResponseWriter, r *http.Request) { data["name"] = name data["ref"] = ref data["desc"] = getDescription(path) + data["dotdot"] = filepath.Dir(path) if err := t.ExecuteTemplate(w, "log", data); err != nil { log.Println(err) diff --git a/static/style.css b/static/style.css index 2bcf92a..bbc7c80 100644 --- a/static/style.css +++ b/static/style.css @@ -125,7 +125,7 @@ a:hover { .tree { display: grid; - grid-template-columns: 8em minmax(0, 1fr); + grid-template-columns: 10ch auto 1fr; grid-row-gap: 0.5em; grid-column-gap: 1em; min-width: 0; @@ -145,9 +145,12 @@ a:hover { white-space: pre-wrap; } -.mode { +.mode, .size { font-family: var(--mono-font); } +.size { + text-align: right; +} .readme pre { white-space: pre-wrap; diff --git a/templates/tree.html b/templates/tree.html index 2880714..496dceb 100644 --- a/templates/tree.html +++ b/templates/tree.html @@ -18,26 +18,35 @@