mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
Added breadcrumb map function to browse
In order to being able to really build a custom template for the browse directive I have added another function to build even custom breadcrumb paths. The other function `LinkedPath` is not that easy styleable as this map function. That way we are able to build the breadcrumb path matching different CSS frameworks like Bootstrap. Signed-off-by: Thomas Boerger <thomas@webhippie.de>
This commit is contained in:
parent
004a7f84ef
commit
e0b63d92f4
1 changed files with 28 additions and 0 deletions
|
@ -96,6 +96,34 @@ func (l Listing) LinkedPath() string {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BreadcrumbMap returns l.Path where every element is a map
|
||||||
|
// of URLs and path segment names.
|
||||||
|
func (l Listing) BreadcrumbMap() map[string]string {
|
||||||
|
result := map[string]string{}
|
||||||
|
|
||||||
|
if len(l.Path) == 0 {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// skip trailing slash
|
||||||
|
lpath := l.Path
|
||||||
|
if lpath[len(lpath)-1] == '/' {
|
||||||
|
lpath = lpath[:len(lpath)-1]
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := strings.Split(lpath, "/")
|
||||||
|
for i, part := range parts {
|
||||||
|
if i == 0 && part == "" {
|
||||||
|
// Leading slash (root)
|
||||||
|
result["/"] = "/"
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
result[strings.Join(parts[:i+1], "/")] = part
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
// FileInfo is the info about a particular file or directory
|
// FileInfo is the info about a particular file or directory
|
||||||
type FileInfo struct {
|
type FileInfo struct {
|
||||||
IsDir bool
|
IsDir bool
|
||||||
|
|
Loading…
Reference in a new issue