Folks as a result of a discussion in GitHub [IDEA] TiddlyWiki filter visualizer/helper tool #5058, I raised the idea of “filter architypes”. Basically pre-coded filters you can use with the filter or subfilter operators. This Topic is to call on feedback and contributions.
- A key long term outcome is to build a tool that allows you or your wiki users to interactively build filters from a set of “filter architypes”.
Filter architypes have the following advantages;
- Design once and share many times between you own wikis and others
- This is a way to accrue experience in the community, peer review and publish the results.
- Collapse the details into named macros to use as filters makes writing more complex filters simpler
- Work with a de facto standard that overtime becomes familiar and easier to use, “remember rather than lookup”.
- And inspired by the [IDEA] TiddlyWiki filter visualizer/helper tool #5058 it may prove a lot easier to make a tool for building complex filters with a GUI from the “architype filters”.
- Even if you do not use shared “architype filters” you may very well use and learn from the methods used for them.
Here is a preliminary example based on todo and project tags like in the projectify plugin
\define active-filter() [!tag[done]!tag[archive]]
\define inactive-filter() [tag[done]] [tag[archive]] +[limit[1]]
\define active-todo() [tag[todo]filter<active-filter>]
\define active-project() [tag[Project]filter<active-filter>]
\define inactive-todo() [tag[todo]filter<inactive-filter>]
\define inactive-project() [tag[Project]filter<inactive-filter>]
\define created-today() [days:created[0]]
\define modified-today() [days:modified[0]]
\define due-today() [days:due[0]]
\define due-before() [days:due[-10000]]
\define no-due-date() [!has[due]]
For example (untested just now)
"[subfilter<active-todo>]"
replaces "[tag[todo]!tag[done]!tag[archive]]"
or
"[subfilter<active-todo>] +[subfilter<created-today>]"
(longer but simpler) replaces
"[tag[todo]!tag[done]!tag[archive]days:created[0]]"
So I invite the experience and naïve to comment on this topic with a review to developing this further
Things to consider for inspiration (optional reading)
- How to you distinguish between tiddlers of different types?
- What kinds of status do you like to assign to tiddlers
- What domains and subdomains do you use to organise tiddlers
- Personal/work… Project/subProject Book/chapter
- What determines the context of a tiddler?
- Eg If I create a task in a project the context is the current project and assigned to the new task
- What are your key organising approaches tags, categories, subjects, lists, sets…
- In future we will be in a position to build our own “filter Operators” which could allow these to systematised, simplified and/or given aliases. eg
list-todos[]
may get all active todo items.
I look forward to your ideas and experience.