29th July 2026 at 7:04pm
The tabs macro takes its tab list from a filter, so here the tabs come out of the data: one per distinct first character, plus an All tab.
Three definitions feed it:
f.letterscollects the distinct first charactersf.valuesForselects the groups filed under one characterf.valuesShownreturns everything for All, one character otherwise
This test case carries two payload tiddlers, _TabButton and _TabContent, because the tabs macro transcludes its caption and its panel by tiddler title and cannot take inline wikitext.
Matching is case insensitive, so de Vries and De Vries would share a tab. A character that is not a letter gets its own tab, which is why the sample data produces a 3 tab. Each caption carries the number of groups behind it, so no tab is a dead end.
| title | Output |