]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - doc/todo/sort_parameter_for_map_plugin_and_directive.mdwn
3b4ec73ea14891931dd0563cc0587112605eb819
[git.ikiwiki.info.git] / doc / todo / sort_parameter_for_map_plugin_and_directive.mdwn
1 ## sort= parameter
3 Having a `sort=` parameter for the map plugin/directive would be real nice; like `inline`'s parameter, with `age`, `title`, etc.
5 I may hack one in from `inline` if it seem within my skill level.
7 > this could leverage the [[sorting mechanism|ikiwiki/pagespec/sorting]] already in place. as it's not sorting a flat list, there's a number of different ways to sort, which should be configurable imo.
8 >
9 > as an example, i'll consider pages created in the sequence c/1, a, b, c, a/1, c/2.
10 >
11 > sorting could:
12 >
13 > * sort within each level:
14 >
15 >   sorting order of child nodes would only matter internally in the groups
16 >
17 >   that would create a (a/1) b c (c/1 c/2) sequence in our example.
18 >
19 > * sort by maximum
20 >
21 >   the highest ranking page in a group would pull the parent to its own position
22 >
23 >   that would create b a (a/1) c (c/1 c/2).
24 >
25 > * sort by minimum
26 >
27 >   the lowest ranking page in a group would pull the parent to its own position
28 >
29 >   here, that would give c (c/1 c/2) a (a/1) b
30 >
31 > * forced sequence
32 >
33 >   all deepest-level items are forced to their positions, even if that means their parents are repeated at positions where they wouldn't occur naturally. parent nodes that don't have child nodes that occur directly before or after them are shown without the child nodes.
34 >
35 >   that'd be c (c/1) a b c a (a/1) c (c/2) in our example.
36 >
37 >   admittedly, the use cases for that are not too obvious, but think of a travel diary, for example, where you'd have the entries chronologically but grouped by the country you've visited. when you visit the same country twice, it should show up twice too.
38 >
39 > --[[chrysn]]
41 [[!tag wishlist]]