summaryrefslogtreecommitdiffstats
path: root/helpers/general.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-07-02 20:14:06 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-07-04 09:11:49 +0200
commita1d260b41a6673adef679ec4e262c5f390432cf5 (patch)
treef9a86343fb6a73defb0805578d25eb72c6afb534 /helpers/general.go
parentdd9b1baab0cb860a3eb32fd9043bac18cab3f9f0 (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.go32
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 != ""