browse

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2016 License: Apache-2.0 Imports: 17 Imported by: 4

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
	Root      http.FileSystem
	Variables interface{}
	Template  *template.Template
}

Config is a configuration for browsing in a particular path.

type FileInfo

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

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) BreadcrumbMap

func (l Listing) BreadcrumbMap() map[string]string

BreadcrumbMap returns l.Path where every element is a map of URLs and path segment names.

Jump to

Keyboard shortcuts

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