summaryrefslogtreecommitdiffstats
path: root/hugolib/pagesPrevNext.go
diff options
context:
space:
mode:
authorspf13 <steve.francia@gmail.com>2014-11-27 23:08:06 -0500
committerspf13 <steve.francia@gmail.com>2014-11-27 23:15:25 -0500
commitb719ba7e2bd612e85e539b17569ed15066ebcc07 (patch)
tree0bdb8a514c7afb3dff2895a11a02daa6f96148e1 /hugolib/pagesPrevNext.go
parent78316903a24af73b476032295caba56588558924 (diff)
Adding Prev/Next functionality to all lists of pages (sections, taxonomies, etc)
Diffstat (limited to 'hugolib/pagesPrevNext.go')
-rw-r--r--hugolib/pagesPrevNext.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/hugolib/pagesPrevNext.go b/hugolib/pagesPrevNext.go
new file mode 100644
index 000000000..5a7bc3809
--- /dev/null
+++ b/hugolib/pagesPrevNext.go
@@ -0,0 +1,38 @@
+// Copyright © 2014 Steve Francia <spf@spf13.com>.
+//
+// Licensed under the Simple Public License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://opensource.org/licenses/Simple-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package hugolib
+
+func (p Pages) Prev(cur *Page) *Page {
+ for x, c := range p {
+ if c.UniqueId() == cur.UniqueId() {
+ if x == 0 {
+ return p[len(p)-1]
+ }
+ return p[x-1]
+ }
+ }
+ return nil
+}
+
+func (p Pages) Next(cur *Page) *Page {
+ for x, c := range p {
+ if c.UniqueId() == cur.UniqueId() {
+ if x < len(p)-1 {
+ return p[x+1]
+ }
+ return p[0]
+ }
+ }
+ return nil
+}