builtin filter collision rename groupby -> vgroups
This commit is contained in:
@@ -20,7 +20,7 @@ main { margin: 3em; }
|
||||
<footer>
|
||||
{%- for k, v in [('testA','Config'),('testB','Simple'),('testC','Advanced')] %}
|
||||
<div>{{v}} Tags:
|
||||
{%- for x in this|groupby(k, recursive=True)|list|unique|sort %}
|
||||
{%- for x in this|vgroups(k, recursive=True)|unique|sort %}
|
||||
<a href="{{ x|url }}">({{x.key}})</a>
|
||||
{%- endfor %}
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,7 @@ class GroupByPlugin(Plugin):
|
||||
def on_setup_env(self, **extra: object) -> None:
|
||||
self.creator = GroupBy()
|
||||
self.env.add_build_program(GroupBySource, GroupByBuildProgram)
|
||||
self.env.jinja_env.filters.update(groupby=GroupBySource.of_record)
|
||||
self.env.jinja_env.filters.update(vgroups=GroupBySource.of_record)
|
||||
|
||||
# resolve /tag/rss/ -> /tag/rss/index.html (local server only)
|
||||
@self.env.urlresolver
|
||||
|
||||
@@ -147,9 +147,9 @@ class GroupBySource(VirtualSourceObject):
|
||||
def _reverse_reference_records(self) -> None:
|
||||
''' Attach self to page records. '''
|
||||
for child in self._children:
|
||||
if not hasattr(child, '_groupby'):
|
||||
child._groupby = WeakSet() # type: ignore[attr-defined]
|
||||
child._groupby.add(self) # type: ignore[attr-defined]
|
||||
if not hasattr(child, '_vgroups'):
|
||||
child._vgroups = WeakSet() # type: ignore[attr-defined]
|
||||
child._vgroups.add(self) # type: ignore[attr-defined]
|
||||
|
||||
@staticmethod
|
||||
def of_record(
|
||||
@@ -169,9 +169,9 @@ class GroupBySource(VirtualSourceObject):
|
||||
page = proc_list.pop(0)
|
||||
if recursive and hasattr(page, 'children'):
|
||||
proc_list.extend(page.children) # type: ignore[attr-defined]
|
||||
if not hasattr(page, '_groupby'):
|
||||
if not hasattr(page, '_vgroups'):
|
||||
continue
|
||||
for vobj in page._groupby: # type: ignore[attr-defined]
|
||||
for vobj in page._vgroups: # type: ignore[attr-defined]
|
||||
if not keys or vobj.config.key in keys:
|
||||
yield vobj
|
||||
|
||||
|
||||
Reference in New Issue
Block a user