Listing documents like
A | B | C | ... or
0-9 | A-D | E-J | ... or
0-9 | A | B-E | F | G,I | H | J-Z | A-Z
is easily doable with my glossaryFilter -- a custom extender to Ditto. It is small (less than 20 lines of effective code), you can generate required listings with standard Ditto syntax, you can filter document’s pagetitles with the full power of regular expressions, and there is no need to interfere into Ditto’s core code.
Article, examples, download links:
http://setpro.pl/software/ditto-stuff/glossary-extender
The following is a brief info on using extender copied/pasted from extender’s header.
Parameters:
filterVar - optional; documents attribute or template variable used for matching (default: pagetitle)
notice: you should rather avoid to use content field for this purpose
filterMode - optional; specifies how matching should be performed
possible values are:
class (default) - match with RegExp /^[...]/i where ... is substituted with the value of filterBy parameter
custom - match with full-fledged RegExp provided with filterBy parameter
chunk - match with full-fledged RegExp privided with a chunk whose name is kept within filterBy parameter
filterBy - optional, however, you SHOULD specify at least this one parameter, otherwise extender does no filtering
Example:
fetch documents within 3, 4, and 5 containers whose pagetitles start with A, B, C, or D
[[Ditto? &parents=`3,4,5` &depth=`0` &display=`all` &extenders=`glossaryFilter` &filterBy=`A-D` &tpl=`...` ...]]
fetch documents within 3, 4, and 5 containers whose aliases do not start with numeric
[[Ditto? &parents=`3,4,5` &depth=`0` &display=`all` &extenders=`glossaryFilter` &filterVar=`alias` &filterBy=`^0-9` &tpl=`...` ...]]