What's Changed
🌟 Most Notable
Please restart Obsidian after updating the plugin. Thank you.
🌟 filter by function
custom filters! - by @claremacrae
- A powerful, flexible mechanism to give users total control over task filtering.
- Docs
Some example custom filters, several of which were not previously possible:
# Find tasks due on Tuesdays, that is, any Tuesday.
filter by function task.due.format('dddd') === 'Tuesday'
# Find tasks that toggle to themselves, because the next symbol is the same as the current symbol.
filter by function task.status.symbol === task.status.nextSymbol
# Find tasks with more than one tag (other than any global filter)
filter by function task.tags.length > 1
# Find tasks with an urgency score between 8.0 and 11.0, inclusive.
filter by function task.urgency > 7.9999 && task.urgency < 11.0001
# Find tasks with any urgency other than the default score of 1.95.
filter by function task.urgency.toFixed(2) !== 1.95.toFixed(2)
# Find tasks that have a broken/invalid recurrence rule.
filter by function (!task.isRecurring) && task.originalMarkdown.includes('🔁')
🙏 Supporting Tasks development (Optional!)
The Tasks plugin is completely free to use, and very willingly developed and supported by Clare Macrae since May 2022.
Making the filter by function
facility so well documented and usable, and this thoroughly tested, has been many, many days of work. It opens up some very exciting future capabilities.
If you would like to support Tasks development, and are able to do so, please see:
Donations will go towards my computing costs and licenses for development tools that I use for productivity. Thank you 🙏.
Main changes
Here are the most notable user-visible changes.
🌟 Features
- feat: Add
task.descriptionWithoutTags
forgroup by function
andfilter by function
by @claremacrae in #2094 - feat: Add
filter by function
by @claremacrae in #2097 - feat: Tasks code block now shows any error messages from searches by @claremacrae in #2098
📖 Documentation
- docs: How to create groups Overdue, Today, Future & Undated by @claremacrae in #2110
- docs: Finish docs for
filter by function
custom filters feature by @claremacrae in #2114
🛠️ Behind the scenes
- refactor: Divide up
evaluateExpression()
for re-use by @claremacrae in #2095 - refactor: Add
TaskExpression
to encapsulateExpression
functions by @claremacrae in #2096
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):