package helpers
import "github.com/gohugoio/hugo/helpers"
Package helpers implements general utility functions that work with and on content. The helper functions defined here lay down the foundation of how Hugo works with files and filepaths, and perform string operations on content.
Index ¶
- Constants
- Variables
- func AddContextRoot(baseURL, relativePath string) string
- func BytesToHTML(b []byte) template.HTML
- func CompareVersion(version interface{}) int
- func Deprecated(object, item, alternative string, err bool)
- func DiffStringSlices(slice1 []string, slice2 []string) []string
- func DirExists(path string, fs afero.Fs) (bool, error)
- func Emojify(source []byte) []byte
- func Exists(path string, fs afero.Fs) (bool, error)
- func Ext(in string) string
- func ExtractRootPaths(paths []string) []string
- func ExtractTOC(content []byte) (newcontent []byte, toc []byte)
- func FileAndExt(in string) (string, string)
- func FileContains(filename string, subslice []byte, fs afero.Fs) (bool, error)
- func FileContainsAny(filename string, subslices [][]byte, fs afero.Fs) (bool, error)
- func Filename(in string) (name string)
- func FindAvailablePort() (*net.TCPAddr, error)
- func FindCWD() (string, error)
- func FirstUpper(s string) string
- func GetDottedRelativePath(inPath string) string
- func GetRealPath(fs afero.Fs, path string) (string, error)
- func GetRelativePath(path, base string) (final string, err error)
- func GetTempDir(subPath string, fs afero.Fs) string
- func GetTitleFunc(style string) func(s string) string
- func GuessType(in string) string
- func HasAsciidoc() bool
- func HasRst() bool
- func HasStringsPrefix(s, prefix []string) bool
- func HasStringsSuffix(s, suffix []string) bool
- func InStringArray(arr []string, el string) bool
- func InitLoggers()
- func IsAbsURL(path string) bool
- func IsDir(path string, fs afero.Fs) (bool, error)
- func IsEmpty(path string, fs afero.Fs) (bool, error)
- func IsWhitespace(r rune) bool
- func LstatIfOs(fs afero.Fs, path string) (info os.FileInfo, err error)
- func MD5FromFile(f afero.File) (string, error)
- func MD5FromFileFast(f afero.File) (string, error)
- func MD5String(f string) string
- func MakePermalink(host, plink string) *url.URL
- func MakeTitle(inpath string) string
- func NormalizeHugoFlags(f *pflag.FlagSet, name string) pflag.NormalizedName
- func PathPrep(ugly bool, in string) string
- func PrettifyPath(in string) string
- func PrettifyURL(in string) string
- func PrettifyURLPath(in string) string
- func ProcessingStatsTable(w io.Writer, stats ...*ProcessingStats)
- func ReaderContains(r io.Reader, subslice []byte) bool
- func ReaderToBytes(lines io.Reader) []byte
- func ReaderToString(lines io.Reader) string
- func ReplaceExtension(path string, newExt string) string
- func SafeWriteToDisk(inpath string, r io.Reader, fs afero.Fs) (err error)
- func SanitizeURL(in string) string
- func SanitizeURLKeepTrailingSlash(in string) string
- func SliceToLower(s []string) []string
- func StripHTML(s string) string
- func SymbolicWalk(fs afero.Fs, root string, walker filepath.WalkFunc) error
- func ToLowerMap(m map[string]interface{})
- func TotalWords(s string) int
- func Uglify(in string) string
- func UniqueStrings(s []string) []string
- func WriteToDisk(inpath string, r io.Reader, fs afero.Fs) (err error)
- type BaseURL
- func (b BaseURL) String() string
- func (b BaseURL) URL() *url.URL
- func (b BaseURL) WithProtocol(protocol string) (string, error)
- type BlackFriday
- type ContentSpec
- func NewContentSpec(cfg config.Provider) (*ContentSpec, error)
- func (c ContentSpec) RenderBytes(ctx *RenderingContext) []byte
- func (c *ContentSpec) TruncateWordsByRune(words []string) (string, bool)
- func (c *ContentSpec) TruncateWordsToWholeSentence(s string) (string, bool)
- type DistinctLogger
- func NewDistinctErrorLogger() *DistinctLogger
- func NewDistinctFeedbackLogger() *DistinctLogger
- func NewDistinctWarnLogger() *DistinctLogger
- func (l *DistinctLogger) Printf(format string, v ...interface{})
- func (l *DistinctLogger) Println(v ...interface{})
- type HugoHTMLRenderer
- func (r *HugoHTMLRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)
- func (r *HugoHTMLRenderer) List(out *bytes.Buffer, text func() bool, flags int)
- func (r *HugoHTMLRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)
- type HugoMmarkHTMLRenderer
- type HugoVersion
- func MustParseHugoVersion(s string) HugoVersion
- func ParseHugoVersion(s string) (HugoVersion, error)
- func (v HugoVersion) Next() HugoVersion
- func (v HugoVersion) NextPatchLevel(level int) HugoVersion
- func (v HugoVersion) Prev() HugoVersion
- func (v HugoVersion) ReleaseVersion() HugoVersion
- func (v HugoVersion) String() string
- type Language
- func NewDefaultLanguage(cfg config.Provider) *Language
- func NewLanguage(lang string, cfg config.Provider) *Language
- func (l *Language) Get(key string) interface{}
- func (l *Language) GetBool(key string) bool
- func (l *Language) GetInt(key string) int
- func (l *Language) GetLocal(key string) interface{}
- func (l *Language) GetString(key string) string
- func (l *Language) GetStringMap(key string) map[string]interface{}
- func (l *Language) GetStringMapString(key string) map[string]string
- func (l *Language) IsSet(key string) bool
- func (l *Language) Params() map[string]interface{}
- func (l *Language) Set(key string, value interface{})
- func (l *Language) SetParam(k string, v interface{})
- func (l *Language) String() string
- type Languages
- func NewLanguages(l ...*Language) Languages
- func (l Languages) IsMultihost() bool
- func (l Languages) Len() int
- func (l Languages) Less(i, j int) bool
- func (l Languages) Swap(i, j int)
- type PathSpec
- func NewPathSpec(fs *hugofs.Fs, cfg config.Provider) (*PathSpec, error)
- func (p *PathSpec) AbsPathify(inPath string) string
- func (p *PathSpec) AbsURL(in string, addLanguage bool) string
- func (p *PathSpec) ContentDir() string
- func (p *PathSpec) GetLangSubDir(lang string) string
- func (p *PathSpec) GetLayoutDirPath() string
- func (p *PathSpec) GetRelativeThemeDir() string
- func (p *PathSpec) GetThemeDataDirPath() (string, error)
- func (p *PathSpec) GetThemeDir() string
- func (p *PathSpec) GetThemeI18nDirPath() (string, error)
- func (p *PathSpec) GetThemeStaticDirPath() (string, error)
- func (p *PathSpec) GetThemesDirPath() string
- func (p *PathSpec) LayoutDir() string
- func (p *PathSpec) MakePath(s string) string
- func (p *PathSpec) MakePathSanitized(s string) string
- func (p *PathSpec) PaginatePath() string
- func (p *PathSpec) PermalinkForBaseURL(link, baseURL string) string
- func (p *PathSpec) PrependBasePath(rel string) string
- func (p *PathSpec) RelURL(in string, addLanguage bool) string
- func (p *PathSpec) StaticDirs() []string
- func (p PathSpec) String() string
- func (p *PathSpec) Theme() string
- func (p *PathSpec) ThemeSet() bool
- func (p *PathSpec) ThemesDir() string
- func (p *PathSpec) URLEscape(uri string) string
- func (p *PathSpec) URLPrep(in string) string
- func (p *PathSpec) URLize(uri string) string
- func (p *PathSpec) URLizeAndPrep(in string) string
- func (p *PathSpec) URLizeFilename(filename string) string
- func (p *PathSpec) UnicodeSanitize(s string) string
- func (p *PathSpec) WorkingDir() string
- type ProcessingStats
- func NewProcessingStats(name string) *ProcessingStats
- func (s *ProcessingStats) Add(counter *uint64, amount int)
- func (s *ProcessingStats) Incr(counter *uint64)
- func (s *ProcessingStats) Table(w io.Writer)
- type RenderingContext
Constants ¶
FilePathSeparator as defined by os.Separator.
Variables ¶
var ( // DistinctErrorLog can be used to avoid spamming the logs with errors. DistinctErrorLog = NewDistinctErrorLogger() // DistinctWarnLog can be used to avoid spamming the logs with warnings. DistinctWarnLog = NewDistinctWarnLogger() // DistinctFeedbackLog can be used to avoid spamming the logs with info messages. DistinctFeedbackLog = NewDistinctFeedbackLogger() )
var ( // ErrThemeUndefined is returned when a theme has not be defined by the user. ErrThemeUndefined = errors.New("no theme set") // ErrWalkRootTooShort is returned when the root specified for a file walk is shorter than 4 characters. ErrWalkRootTooShort = errors.New("Path too short. Stop walking.") )
var CurrentHugoVersion = HugoVersion{ Number: 0.32, PatchLevel: 4, Suffix: "", }
CurrentHugoVersion represents the current build version. This should be the only one.
var SummaryDivider = []byte("<!--more-->")
SummaryDivider denotes where content summarization should end. The default is "<!--more-->".
Functions ¶
func AddContextRoot ¶
AddContextRoot adds the context root to an URL if it's not already set. For relative URL entries on sites with a base url with a context root set (i.e. http://example.com/mysite), relative URLs must not include the context root if canonifyURLs is enabled. But if it's disabled, it must be set.
func BytesToHTML ¶
BytesToHTML converts bytes to type template.HTML.
func CompareVersion ¶
func CompareVersion(version interface{}) int
CompareVersion compares the given version string or number against the running Hugo version. It returns -1 if the given version is less than, 0 if equal and 1 if greater than the running version.
func Deprecated ¶
Deprecated informs about a deprecation, but only once for a given set of arguments' values. If the err flag is enabled, it logs as an ERROR (will exit with -1) and the text will point at the next Hugo release. The idea is two remove an item in two Hugo releases to give users and theme authors plenty of time to fix their templates.
func DiffStringSlices ¶
DiffStringSlices returns the difference between two string slices. Useful in tests. See: http://stackoverflow.com/questions/19374219/how-to-find-the-difference-between-two-slices-of-strings-in-golang
func DirExists ¶
DirExists checks if a path exists and is a directory.
func Emojify ¶
Emojify "emojifies" the input source. Note that the input byte slice will be modified if needed. See http://www.emoji-cheat-sheet.com/
func Exists ¶
Exists checks if a file or directory exists.
func Ext ¶
Ext takes a path and returns the extension, including the delmiter, i.e. ".md".
func ExtractRootPaths ¶
ExtractRootPaths extracts the root paths from the supplied list of paths. The resulting root path will not contain any file separators, but there may be duplicates. So "/content/section/" becomes "content"
func ExtractTOC ¶
ExtractTOC extracts Table of Contents from content.
func FileAndExt ¶
FileAndExt takes a path and returns the file and extension separated, the extension including the delmiter, i.e. ".md".
func FileContains ¶
FileContains checks if a file contains a specified string.
func FileContainsAny ¶
FileContainsAny checks if a file contains any of the specified strings.
func Filename ¶
Filename takes a path, strips out the extension, and returns the name of the file.
func FindAvailablePort ¶
FindAvailablePort returns an available and valid TCP port.
func FindCWD ¶
FindCWD returns the current working directory from where the Hugo executable is run.
func FirstUpper ¶
FirstUpper returns a string with the first character as upper case.
func GetDottedRelativePath ¶
GetDottedRelativePath expects a relative path starting after the content directory. It returns a relative path with dots ("..") navigating up the path structure.
func GetRealPath ¶
GetRealPath returns the real file path for the given path, whether it is a symlink or not.
func GetRelativePath ¶
GetRelativePath returns the relative path of a given path.
func GetTempDir ¶
GetTempDir returns a temporary directory with the given sub path.
func GetTitleFunc ¶
GetTitleFunc returns a func that can be used to transform a string to title case.
The supported styles are
- "Go" (strings.Title) - "AP" (see https://www.apstylebook.com/) - "Chicago" (see http://www.chicagomanualofstyle.org/home.html)
If an unknown or empty style is provided, AP style is what you get.
func GuessType ¶
GuessType attempts to guess the type of file from a given string.
func HasAsciidoc ¶
func HasAsciidoc() bool
HasAsciidoc returns whether Asciidoc or Asciidoctor is installed on this computer.
func HasRst ¶
func HasRst() bool
HasRst returns whether rst2html is installed on this computer.
func HasStringsPrefix ¶
HasStringsPrefix tests whether the string slice s begins with prefix slice s.
func HasStringsSuffix ¶
HasStringsSuffix tests whether the string slice s ends with suffix slice s.
func InStringArray ¶
InStringArray checks if a string is an element of a slice of strings and returns a boolean value.
func InitLoggers ¶
func InitLoggers()
InitLoggers sets up the global distinct loggers.
func IsAbsURL ¶
IsAbsURL determines whether the given path points to an absolute URL.
func IsDir ¶
IsDir checks if a given path is a directory.
func IsEmpty ¶
IsEmpty checks if a given path is empty.
func IsWhitespace ¶
IsWhitespace determines if the given rune is whitespace.
func LstatIfOs ¶
Code copied from Afero's path.go if the filesystem is OsFs use Lstat, else use fs.Stat
func MD5FromFile ¶
MD5FromFile creates a MD5 hash from the given file. It will not close the file.
func MD5FromFileFast ¶
MD5FromFileFast creates a MD5 hash from the given file. It only reads parts of the file for speed, so don't use it if the files are very subtly different. It will not close the file.
func MD5String ¶
MD5String takes a string and returns its MD5 hash.
func MakePermalink ¶
MakePermalink combines base URL with content path to create full URL paths. Example
base: http://spf13.com/ path: post/how-i-blog result: http://spf13.com/post/how-i-blog
func MakeTitle ¶
MakeTitle converts the path given to a suitable title, trimming whitespace and replacing hyphens with whitespace.
func NormalizeHugoFlags ¶
func NormalizeHugoFlags(f *pflag.FlagSet, name string) pflag.NormalizedName
NormalizeHugoFlags facilitates transitions of Hugo command-line flags, e.g. --baseUrl to --baseURL, --uglyUrls to --uglyURLs
func PathPrep ¶
PathPrep prepares the path using the uglify setting to create paths on either the form /section/name/index.html or /section/name.html.
func PrettifyPath ¶
PrettifyPath is the same as PrettifyURLPath but for file paths.
/section/name.html becomes /section/name/index.html /section/name/ becomes /section/name/index.html /section/name/index.html becomes /section/name/index.html
func PrettifyURL ¶
PrettifyURL takes a URL string and returns a semantic, clean URL.
func PrettifyURLPath ¶
PrettifyURLPath takes a URL path to a content and converts it to enable pretty URLs.
/section/name.html becomes /section/name/index.html /section/name/ becomes /section/name/index.html /section/name/index.html becomes /section/name/index.html
func ProcessingStatsTable ¶
func ProcessingStatsTable(w io.Writer, stats ...*ProcessingStats)
func ReaderContains ¶
ReaderContains reports whether subslice is within r.
func ReaderToBytes ¶
ReaderToBytes takes an io.Reader argument, reads from it and returns bytes.
func ReaderToString ¶
ReaderToString is the same as ReaderToBytes, but returns a string.
func ReplaceExtension ¶
ReplaceExtension takes a path and an extension, strips the old extension and returns the path with the new extension.
func SafeWriteToDisk ¶
SafeWriteToDisk is the same as WriteToDisk but it also checks to see if file/directory already exists.
func SanitizeURL ¶
SanitizeURL sanitizes the input URL string.
func SanitizeURLKeepTrailingSlash ¶
SanitizeURLKeepTrailingSlash is the same as SanitizeURL, but will keep any trailing slash.
func SliceToLower ¶
SliceToLower goes through the source slice and lowers all values.
func StripHTML ¶
StripHTML accepts a string, strips out all HTML tags and returns it.
func SymbolicWalk ¶
SymbolicWalk is like filepath.Walk, but it supports the root being a symbolic link. It will still not follow symbolic links deeper down in the file structure.
func ToLowerMap ¶
func ToLowerMap(m map[string]interface{})
ToLowerMap makes all the keys in the given map lower cased and will do so recursively. Notes: * This will modify the map given. * Any nested map[interface{}]interface{} will be converted to map[string]interface{}.
func TotalWords ¶
TotalWords counts instance of one or more consecutive white space characters, as defined by unicode.IsSpace, in s. This is a cheaper way of word counting than the obvious len(strings.Fields(s)).
func Uglify ¶
Uglify does the opposite of PrettifyURLPath().
/section/name/index.html becomes /section/name.html /section/name/ becomes /section/name.html /section/name.html becomes /section/name.html
func UniqueStrings ¶
UniqueStrings returns a new slice with any duplicates removed.
func WriteToDisk ¶
WriteToDisk writes content to disk.
Types ¶
type BaseURL ¶
type BaseURL struct {
// contains filtered or unexported fields
}
A BaseURL in Hugo is normally on the form scheme://path, but the form scheme: is also valid (mailto:hugo@rules.com).
func (BaseURL) String ¶
func (BaseURL) URL ¶
URL returns a copy of the internal URL. The copy can be safely used and modified.
func (BaseURL) WithProtocol ¶
WithProtocol returns the BaseURL prefixed with the given protocol. The Protocol is normally of the form "scheme://", i.e. "webcal://".
type BlackFriday ¶
type BlackFriday struct { Smartypants bool SmartypantsQuotesNBSP bool AngledQuotes bool Fractions bool HrefTargetBlank bool SmartDashes bool LatexDashes bool TaskLists bool PlainIDAnchors bool Extensions []string ExtensionsMask []string }
BlackFriday holds configuration values for BlackFriday rendering.
type ContentSpec ¶
type ContentSpec struct { BlackFriday *BlackFriday BuildFuture bool BuildExpired bool BuildDrafts bool Highlight func(code, lang, optsStr string) (string, error) // contains filtered or unexported fields }
ContentSpec provides functionality to render markdown content.
func NewContentSpec ¶
func NewContentSpec(cfg config.Provider) (*ContentSpec, error)
NewContentSpec returns a ContentSpec initialized with the appropriate fields from the given config.Provider.
func (ContentSpec) RenderBytes ¶
func (c ContentSpec) RenderBytes(ctx *RenderingContext) []byte
RenderBytes renders a []byte.
func (*ContentSpec) TruncateWordsByRune ¶
func (c *ContentSpec) TruncateWordsByRune(words []string) (string, bool)
TruncateWordsByRune truncates words by runes.
func (*ContentSpec) TruncateWordsToWholeSentence ¶
func (c *ContentSpec) TruncateWordsToWholeSentence(s string) (string, bool)
TruncateWordsToWholeSentence takes content and truncates to whole sentence limited by max number of words. It also returns whether it is truncated.
type DistinctLogger ¶
DistinctLogger ignores duplicate log statements.
func NewDistinctErrorLogger ¶
func NewDistinctErrorLogger() *DistinctLogger
NewDistinctErrorLogger creates a new DistinctLogger that logs ERRORs
func NewDistinctFeedbackLogger ¶
func NewDistinctFeedbackLogger() *DistinctLogger
NewDistinctFeedbackLogger creates a new DistinctLogger that can be used to give feedback to the user while not spamming with duplicates.
func NewDistinctWarnLogger ¶
func NewDistinctWarnLogger() *DistinctLogger
NewDistinctWarnLogger creates a new DistinctLogger that logs WARNs
func (*DistinctLogger) Printf ¶
func (l *DistinctLogger) Printf(format string, v ...interface{})
Printf will log the string returned from fmt.Sprintf given the arguments, but not if it has been logged before. Note: A newline is appended.
func (*DistinctLogger) Println ¶
func (l *DistinctLogger) Println(v ...interface{})
Println will log the string returned from fmt.Sprintln given the arguments, but not if it has been logged before.
type HugoHTMLRenderer ¶
type HugoHTMLRenderer struct { *RenderingContext blackfriday.Renderer // contains filtered or unexported fields }
HugoHTMLRenderer wraps a blackfriday.Renderer, typically a blackfriday.Html Enabling Hugo to customise the rendering experience
func (*HugoHTMLRenderer) BlockCode ¶
func (r *HugoHTMLRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)
BlockCode renders a given text as a block of code. Pygments is used if it is setup to handle code fences.
func (*HugoHTMLRenderer) List ¶
func (r *HugoHTMLRenderer) List(out *bytes.Buffer, text func() bool, flags int)
List adds task list support to the Blackfriday renderer.
func (*HugoHTMLRenderer) ListItem ¶
func (r *HugoHTMLRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)
ListItem adds task list support to the Blackfriday renderer.
type HugoMmarkHTMLRenderer ¶
type HugoMmarkHTMLRenderer struct { mmark.Renderer Cfg config.Provider // contains filtered or unexported fields }
HugoMmarkHTMLRenderer wraps a mmark.Renderer, typically a mmark.html, enabling Hugo to customise the rendering experience.
func (*HugoMmarkHTMLRenderer) BlockCode ¶
func (r *HugoMmarkHTMLRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string, caption []byte, subfigure bool, callouts bool)
BlockCode renders a given text as a block of code. Pygments is used if it is setup to handle code fences.
type HugoVersion ¶
type HugoVersion struct { // Major and minor version. Number float32 // Increment this for bug releases PatchLevel int // HugoVersionSuffix is the suffix used in the Hugo version string. // It will be blank for release versions. Suffix string }
HugoVersion represents the Hugo build version.
func MustParseHugoVersion ¶
func MustParseHugoVersion(s string) HugoVersion
MustParseHugoVersion parses a version string and panics if any error occurs.
func ParseHugoVersion ¶
func ParseHugoVersion(s string) (HugoVersion, error)
ParseHugoVersion parses a version string.
func (HugoVersion) Next ¶
func (v HugoVersion) Next() HugoVersion
Next returns the next Hugo release version.
func (HugoVersion) NextPatchLevel ¶
func (v HugoVersion) NextPatchLevel(level int) HugoVersion
NextPatchLevel returns the next patch/bugfix Hugo version. This will be a patch increment on the previous Hugo version.
func (HugoVersion) Prev ¶
func (v HugoVersion) Prev() HugoVersion
Prev returns the previous Hugo release version.
func (HugoVersion) ReleaseVersion ¶
func (v HugoVersion) ReleaseVersion() HugoVersion
ReleaseVersion represents the release version.
func (HugoVersion) String ¶
func (v HugoVersion) String() string
type Language ¶
type Language struct { Lang string LanguageName string Title string Weight int Cfg config.Provider // contains filtered or unexported fields }
Language manages specific-language configuration.
func NewDefaultLanguage ¶
NewDefaultLanguage creates the default language for a config.Provider. If not otherwise specified the default is "en".
func NewLanguage ¶
NewLanguage creates a new language.
func (*Language) Get ¶
Get returns a value associated with the key relying on specified language. Get is case-insensitive for a key.
Get returns an interface. For a specific value use one of the Get____ methods.
func (*Language) GetBool ¶
GetBool returns the value associated with the key as a boolean.
func (*Language) GetInt ¶
GetInt returns the value associated with the key as an int.
func (*Language) GetLocal ¶
GetLocal gets a configuration value set on language level. It will not fall back to any global value. It will return nil if a value with the given key cannot be found.
func (*Language) GetString ¶
GetString returns the value associated with the key as a string.
func (*Language) GetStringMap ¶
GetStringMap returns the value associated with the key as a map of interfaces.
func (*Language) GetStringMapString ¶
GetStringMapString returns the value associated with the key as a map of strings.
func (*Language) IsSet ¶
IsSet checks whether the key is set in the language or the related config store.
func (*Language) Params ¶
Params retunrs language-specific params merged with the global params.
func (*Language) Set ¶
Set sets the value for the key in the language's params.
func (*Language) SetParam ¶
SetParam sets param with the given key and value. SetParam is case-insensitive.
func (*Language) String ¶
type Languages ¶
type Languages []*Language
Languages is a sortable list of languages.
func NewLanguages ¶
NewLanguages creates a sorted list of languages. NOTE: function is currently unused.
func (Languages) IsMultihost ¶
IsMultihost returns whether there are more than one language and at least one of the languages has baseURL specificed on the language level.
func (Languages) Len ¶
func (Languages) Less ¶
func (Languages) Swap ¶
type PathSpec ¶
type PathSpec struct { BaseURL // If the baseURL contains a base path, e.g. https://example.com/docs, then "/docs" will be the BasePath. // This will not be set if canonifyURLs is enabled. BasePath string Language *Language Languages Languages PublishDir string ProcessingStats *ProcessingStats // The file systems to use Fs *hugofs.Fs // The config provider to use Cfg config.Provider // contains filtered or unexported fields }
PathSpec holds methods that decides how paths in URLs and files in Hugo should look like.
func NewPathSpec ¶
NewPathSpec creats a new PathSpec from the given filesystems and Language.
func (*PathSpec) AbsPathify ¶
AbsPathify creates an absolute path if given a relative path. If already absolute, the path is just cleaned.
func (*PathSpec) AbsURL ¶
AbsURL creates an absolute URL from the relative path given and the BaseURL set in config.
func (*PathSpec) ContentDir ¶
ContentDir returns the configured workingDir.
func (*PathSpec) GetLangSubDir ¶
GetLangSubDir returns the given language's subdir if needed.
func (*PathSpec) GetLayoutDirPath ¶
GetLayoutDirPath returns the absolute path to the layout file dir for the current Hugo project.
func (*PathSpec) GetRelativeThemeDir ¶
GetRelativeThemeDir gets the relative root directory of the current theme, if there is one. If there is no theme, returns the empty string.
func (*PathSpec) GetThemeDataDirPath ¶
GetThemeDataDirPath returns the theme's data dir path if theme is set. If theme is set and the data dir doesn't exist, an error is returned.
func (*PathSpec) GetThemeDir ¶
GetThemeDir gets the root directory of the current theme, if there is one. If there is no theme, returns the empty string.
func (*PathSpec) GetThemeI18nDirPath ¶
GetThemeI18nDirPath returns the theme's i18n dir path if theme is set. If theme is set and the i18n dir doesn't exist, an error is returned.
func (*PathSpec) GetThemeStaticDirPath ¶
GetThemeStaticDirPath returns the theme's static dir path if theme is set. If theme is set and the static dir doesn't exist, an error is returned.
func (*PathSpec) GetThemesDirPath ¶
GetThemesDirPath gets the static files directory of the current theme, if there is one. Ignores underlying errors. TODO(bep) Candidate for deprecation?
func (*PathSpec) LayoutDir ¶
LayoutDir returns the relative layout dir in the current configuration.
func (*PathSpec) MakePath ¶
MakePath takes a string with any characters and replace it so the string could be used in a path. It does so by creating a Unicode-sanitized string, with the spaces replaced, whilst preserving the original casing of the string. E.g. Social Media -> Social-Media
func (*PathSpec) MakePathSanitized ¶
MakePathSanitized creates a Unicode-sanitized string, with the spaces replaced
func (*PathSpec) PaginatePath ¶
PaginatePath returns the configured root path used for paginator pages.
func (*PathSpec) PermalinkForBaseURL ¶
PermalinkForBaseURL creates a permalink from the given link and baseURL.
func (*PathSpec) PrependBasePath ¶
PrependBasePath prepends any baseURL sub-folder to the given resource if canonifyURLs is disabled. If canonifyURLs is set, we will globally prepend the absURL with any sub-folder, so avoid doing anything here to avoid getting double paths.
func (*PathSpec) RelURL ¶
RelURL creates a URL relative to the BaseURL root. Note: The result URL will not include the context root if canonifyURLs is enabled.
func (*PathSpec) StaticDirs ¶
StaticDirs returns the relative static dirs for the current configuration.
func (PathSpec) String ¶
func (*PathSpec) Theme ¶
Theme returns the theme name if set.
func (*PathSpec) ThemeSet ¶
ThemeSet checks whether a theme is in use or not.
func (*PathSpec) ThemesDir ¶
Theme returns the theme relative theme dir.
func (*PathSpec) URLEscape ¶
URLEscape escapes unicode letters.
func (*PathSpec) URLPrep ¶
URLPrep applies misc sanitation to the given URL.
func (*PathSpec) URLize ¶
URLize is similar to MakePath, but with Unicode handling Example:
uri: Vim (text editor) urlize: vim-text-editor
func (*PathSpec) URLizeAndPrep ¶
URLizeAndPrep applies misc sanitation to the given URL to get it in line with the Hugo standard.
func (*PathSpec) URLizeFilename ¶
URLizeFilename creates an URL from a filename by esacaping unicode letters and turn any filepath separator into forward slashes.
func (*PathSpec) UnicodeSanitize ¶
UnicodeSanitize sanitizes string to be used in Hugo URL's, allowing only a predefined set of special Unicode characters. If RemovePathAccents configuration flag is enabled, Uniccode accents are also removed.
func (*PathSpec) WorkingDir ¶
WorkingDir returns the configured workingDir.
type ProcessingStats ¶
type ProcessingStats struct { Name string Pages uint64 PaginatorPages uint64 Static uint64 ProcessedImages uint64 Files uint64 Aliases uint64 Sitemaps uint64 Cleaned uint64 }
func NewProcessingStats ¶
func NewProcessingStats(name string) *ProcessingStats
func (*ProcessingStats) Add ¶
func (s *ProcessingStats) Add(counter *uint64, amount int)
func (*ProcessingStats) Incr ¶
func (s *ProcessingStats) Incr(counter *uint64)
func (*ProcessingStats) Table ¶
func (s *ProcessingStats) Table(w io.Writer)
type RenderingContext ¶
type RenderingContext struct { Content []byte PageFmt string DocumentID string DocumentName string Config *BlackFriday RenderTOC bool Cfg config.Provider }
RenderingContext holds contextual information, like content and configuration, for a given content rendering. By creating you must set the Config, otherwise it will panic.
Source Files ¶
baseURL.go content.go content_renderer.go emoji.go general.go hugo.go language.go path.go pathspec.go processing_stats.go pygments.go url.go
- Version
- v0.32.4
- Published
- Jan 11, 2018
- Platform
- darwin/amd64
- Imports
- 46 packages
- Last checked
- 3 minutes ago –
Tools for package owners.