diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-02 20:14:06 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-04 09:11:49 +0200 |
commit | a1d260b41a6673adef679ec4e262c5f390432cf5 (patch) | |
tree | f9a86343fb6a73defb0805578d25eb72c6afb534 /helpers/general.go | |
parent | dd9b1baab0cb860a3eb32fd9043bac18cab3f9f0 (diff) |
hugolib: Extend the sections API
This commit adds some section related methods that have been asked for:
* .CurrentSection
* .IsDescendant
* .IsAncestor
Fixes #3591
Diffstat (limited to 'helpers/general.go')
-rw-r--r-- | helpers/general.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/helpers/general.go b/helpers/general.go index 7901be654..552e4d0bf 100644 --- a/helpers/general.go +++ b/helpers/general.go @@ -194,6 +194,38 @@ func ReaderContains(r io.Reader, subslice []byte) bool { return false } +// HasStringsPrefix tests whether the string slice s begins with prefix slice s. +func HasStringsPrefix(s, prefix []string) bool { + return len(s) >= len(prefix) && compareStringSlices(s[0:len(prefix)], prefix) +} + +// HasStringsSuffix tests whether the string slice s ends with suffix slice s. +func HasStringsSuffix(s, suffix []string) bool { + return len(s) >= len(suffix) && compareStringSlices(s[len(s)-len(suffix):], suffix) +} + +func compareStringSlices(a, b []string) bool { + if a == nil && b == nil { + return true + } + + if a == nil || b == nil { + return false + } + + if len(a) != len(b) { + return false + } + + for i := range a { + if a[i] != b[i] { + return false + } + } + + return true +} + // ThemeSet checks whether a theme is in use or not. func (p *PathSpec) ThemeSet() bool { return p.theme != "" |