Absolutely doable! Here’s a quick and dirty sample:
\function excludeFields()
[all[shadows]removeprefix[$:/language/Docs/Fields/]]
first-search-filter
second-search-filter
exclude-me
[prefix[ignore-]]
exclude-me-too
+[join[ ]]
\end
<table>
<tr>
<th>Field</th>
<th>Tiddlers</th>
</tr>
<$list filter="[!is[system]fields[]] -[enlist<excludeFields>] +[sort[]]" variable="field">
<tr>
<td><<field>></td>
<td><<list-links "[!is[system]has<field>]">></td>
</tr>
</$list>
</table>
Notes:
- I’m using the function
excludeFieldsto generate a list of fields you don’t want to see. The[all[shadows]removeprefix[$:/language/Docs/Fields/]]filter is a trick @Scott_Sauyet shared here; I think it’s more efficient than manually listing all the system fields you want to exclude. But below it, I’ve also included some examples of other fields you might want to remove — either by listing their titles directly (e.g.first-search-filter,exclude-me) or by writing a filter run to descibe them (e.g.[prefix[ignore]]). You can remove or alter any of these — just keep the final+[join[ ]], which is needed to reassemble all your field names into a space-separated list (for later use withenlist). - Within the table, I’m using
$listto first generate one row per field name, and storing that field name in the variable<<field>>. Inside this outer list, I’ve nested a<<list-links>>to filter for tiddlers that use this field. - I used
[!is[system]has<field>]as mylist-linksfilter, which will display all the tiddlers that have a non-empty field. If you want to see all tiddlers that have the field name, empty or not, you can replacehaswithhas:field.