Browse Source

Make sorter's prev/next links circular. (Issue #208)

main
Lakshmi Vyasarajan 11 years ago
parent
commit
18f2e1d521
5 changed files with 57 additions and 2 deletions
  1. +5
    -0
      CHANGELOG.rst
  2. +1
    -1
      README.rst
  3. +13
    -0
      hyde/ext/plugins/meta.py
  4. +37
    -0
      hyde/tests/ext/test_sorter.py
  5. +1
    -1
      hyde/version.py

+ 5
- 0
CHANGELOG.rst View File

@@ -1,3 +1,8 @@
Version 0.8.7a5
============================================================

* Make sorter's prev/next links circular. (Issue #208)

Version 0.8.7a4
============================================================



+ 1
- 1
README.rst View File

@@ -1,4 +1,4 @@
Version 0.8.7a4
Version 0.8.7a5

A brand new **hyde**
====================


+ 13
- 0
hyde/ext/plugins/meta.py View File

@@ -529,10 +529,23 @@ class SorterPlugin(Plugin):
walker = getattr(self.site.content,
sort_method_name,
self.site.content.walk_resources)
first, last = None, None
for prev, next in pairwalk(walker()):
if not first:
first = prev
last = next
setattr(prev, next_att, next)
setattr(next, prev_att, prev)

try:
circular = settings.circular
except AttributeError:
circular = False

if circular and first:
setattr(first, prev_att, last)
setattr(last, next_att, first)


#
# Grouping


+ 37
- 0
hyde/tests/ext/test_sorter.py View File

@@ -198,6 +198,43 @@ class TestSorter(object):
assert hasattr(p_mc, 'next_by_kind2')
assert not p_mc.next_by_kind2

def test_prev_next_looped(self):
s = Site(TEST_SITE)
cfg = """
plugins:
- hyde.ext.meta.SorterPlugin
sorter:
kind2:
circular: true
filters:
source_file.kind: html
attr:
- name
"""
s.config = Config(TEST_SITE, config_dict=yaml.load(cfg))
s.load()
SorterPlugin(s).begin_site()

p_404 = s.content.resource_from_relative_path('404.html')
p_about = s.content.resource_from_relative_path('about.html')
p_mc = s.content.resource_from_relative_path(
'blog/2010/december/merry-christmas.html')

assert hasattr(p_404, 'prev_by_kind2')
assert p_404.prev_by_kind2 == p_mc
assert hasattr(p_404, 'next_by_kind2')
assert p_404.next_by_kind2 == p_about

assert hasattr(p_about, 'prev_by_kind2')
assert p_about.prev_by_kind2 == p_404
assert hasattr(p_about, 'next_by_kind2')
assert p_about.next_by_kind2 == p_mc

assert hasattr(p_mc, 'prev_by_kind2')
assert p_mc.prev_by_kind2 == p_about
assert hasattr(p_mc, 'next_by_kind2')
assert p_mc.next_by_kind2 == p_404

def test_prev_next_reversed(self):
s = Site(TEST_SITE)
cfg = """


+ 1
- 1
hyde/version.py View File

@@ -2,4 +2,4 @@
"""
Handles hyde version.
"""
__version__ = '0.8.7a4'
__version__ = '0.8.7a5'

Loading…
Cancel
Save