browse

package
v0.10.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2017 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package browse provides middleware for listing files in a directory when directory path is requested instead of a specific file.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Browse

type Browse struct {
	Next          httpserver.Handler
	Configs       []Config
	IgnoreIndexes bool
}

Browse is an http.Handler that can show a file listing when directories in the given paths are specified.

func (Browse) ServeHTTP

func (b Browse) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error)

ServeHTTP determines if the request is for this plugin, and if all prerequisites are met. If so, control is handed over to ServeListing.

func (Browse) ServeListing

func (b Browse) ServeListing(w http.ResponseWriter, r *http.Request, requestedFilepath http.File, bc *Config) (int, error)

ServeListing returns a formatted view of 'requestedFilepath' contents'.

type Config

type Config struct {
	PathScope string // the base path the URL must match to enable browsing
	Fs        staticfiles.FileServer
	Variables interface{}
	Template  *template.Template
}

Config is a configuration for browsing in a particular path.

type Crumb

type Crumb struct {
	Link, Text string
}

Crumb represents part of a breadcrumb menu.

type FileInfo

type FileInfo struct {
	Name      string
	Size      int64
	URL       string
	ModTime   time.Time
	Mode      os.FileMode
	IsDir     bool
	IsSymlink bool
}

FileInfo is the info about a particular file or directory

func (FileInfo) HumanModTime

func (fi FileInfo) HumanModTime(format string) string

HumanModTime returns the modified time of the file as a human-readable string.

func (FileInfo) HumanSize

func (fi FileInfo) HumanSize() string

HumanSize returns the size of the file as a human-readable string in IEC format (i.e. power of 2 or base 1024).

type Listing

type Listing struct {
	// The name of the directory (the last element of the path)
	Name string

	// The full path of the request
	Path string

	// Whether the parent directory is browsable
	CanGoUp bool

	// The items (files and folders) in the path
	Items []FileInfo

	// The number of directories in the listing
	NumDirs int

	// The number of files (items that aren't directories) in the listing
	NumFiles int

	// Which sorting order is used
	Sort string

	// And which order
	Order string

	// If ≠0 then Items have been limited to that many elements
	ItemsLimitedTo int

	// Optional custom variables for use in browse templates
	User interface{}

	httpserver.Context
}

A Listing is the context used to fill out a template.

func (Listing) Breadcrumbs

func (l Listing) Breadcrumbs() []Crumb

Breadcrumbs returns l.Path where every element maps the link to the text to display.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL