Releases: obsidian-tasks-group/obsidian-tasks
4.9.0: Four powerful new 'group by function' options
What's Changed
- feature: Add
task.priorityNameGroupText
andtask.status.typeGroupText
by @claremacrae in #2308 - feature: Add custom grouping by 'date category' and 'time from now' by @claremacrae in #2312
- Thanks to @paolo-santucci for help implementing the 'time from now' one.
- date property docs
- docs: major new section Values in TasksDate Properties
Example new instructions:
group by function task.priorityNameGroupText + ': ' + task.status.typeGroupText
group by function task.due.fromNow.groupText
group by function task.due.category.groupText
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
π Support Tasks development
4.8.1: Fix crash at startup on first install - or if settings never before edited
What's Changed
- fix: Prevent crash at startup if user never previously edited settings by @claremacrae in #2303
Full Changelog: 4.8.0...4.8.1
4.8.0: See total task counts, 'group by backlink' now hyperlinks and easier scripting access to paths and filenames
What's Changed
π Most Notable
Dependencies have been updated. Please restart Obsidian after updating the plugin. Thank you.
- Added more query file properties
query.file.pathWithoutExtension
query.file.filenameWithoutExtension
- docs: Values for Query File Properties
- Added more task file properties
task.file.pathWithoutExtension
task.file.filenameWithoutExtension
- docs: Values for Task File Properties
- Add hyperlink to
group by backlink
headings (thanks, @ilandikov)- As well as jumping to the relevant heading, it also shows a hover preview of the section containing the task(s)
- Add total task count to
show task count
display- If a
limit
instruction means not all matching tasks are shown, the total tasks count is shown, such as50 of 686 tasks
. - This is useful when combined with
limit 0
if you just want to see how many tasks match your query. - docs: Limiting
- If a
Main changes
Here are the most notable user-visible changes, and the more significant internal ones.
π Features
- feat: Scripting enables removing file extension from path and filename properties by @claremacrae in #2288
- feat:
group by backlink
headings link to location & show hover previews by @ilandikov in #2285 - feat:
show task count
now shows total, if 'limit' applied by @claremacrae in #2301
π οΈ Dependencies
- chore(deps): bump rrule from 2.7.1 to 2.7.2 by @dependabot in #2120
- chore(deps): bump word-wrap from 1.2.3 to 1.2.5 by @dependabot in #2291
- chore(deps-dev): bump ts-jest from 29.1.0 to 29.1.1 by @dependabot in #2122
- chore(deps): bump boon-js from 2.0.3 to 2.0.4 by @dependabot in #2121
- build(deps): bump @adobe/css-tools from 4.2.0 to 4.3.1 by @dependabot in #2240
- build(deps): bump actions/checkout from 3 to 4 by @dependabot in #2248
π οΈ Behind the scenes
- chore: Fix error TS5055: Cannot write file ...tests/global-setup.js by @claremacrae in #2277
- chore: automate detection of circular code dependencies by @claremacrae in #2295
- chore: Specify supported node versions in package.json by @axelson in #2065
- refactor: Introduce GlobalQuery class: the plugin uses a singleton. by @ilandikov in #2215
- refactor: Remove recently-added cyclic dependencies. by @claremacrae in #2279
- refactor: Separate settings out of GlobalFilter by @claremacrae in #2282
- refactor: remove unused return value in
createTasksList()
by @ilandikov in #2280 - refactor: Add getInstance() to GlobalFilter & make all else non-static by @claremacrae in #2283
- refactor: Convert one use of GlobalFilter.getInstance() to instance by @claremacrae in #2286
- refactor: remove cyclic dependencies & optional parameter in
TaskLineRenderer.ts
by @ilandikov in #2284 - refactor: extract data attribute names dictionary from
getComponentDataAttribute()
by @ilandikov in #2255 - refactor: remove destructured object and return in createTaskList() by @ilandikov in #2293
- refactor: remove destructured types in Query.ts by @ilandikov in #2292
- refactor: move code for task counts text to QueryResult by @claremacrae in #2300
New Contributors
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
π Support Tasks development
4.7.1: 2 fixes for auto-adding Created Date
What's Changed
Please restart Obsidian after updating the plugin. Thank you.
Main changes
Here are the most notable user-visible changes.
πͺ Fixes
- fix: Editing a checkbox line with empty description now adds creation date, if enabled by @ilandikov in #2264
- fix: 'Create or edit task' now adds Created date if adding global filter by @claremacrae in #2274
π οΈ Behind the scenes
- test: Add exhaustive testing of 'Edit task modal' under wide range of scenarios by @claremacrae in #2272
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
π Support Tasks development
4.7.0: Use Query file path, folder, root and name in queries directly
What's Changed
Please restart Obsidian after updating the plugin. Thank you.
π Use Query file path, folder, root and name in queries directly π
- support placeholders like
{{query.file.path}}
in queries by @claremacrae and @ilandikov in #2254- no more need to use dataview to access query file information
- examples:
folder includes {{query.file.folder}}
- Find tasks in files in the folder that contains the query and any sub-folders.
filter by function task.file.folder.includes( '{{query.file.folder}}' )
- Find tasks in files in the folder that contains the query and any sub-folders.
- Note that the placeholder text is expanded to a raw string, so needs to be inside quotes.
filter by function task.file.folder === '{{query.file.folder}}'
- Find tasks in files in the folder that contains the query only (not tasks in any sub-folders).
- docs:
Other changes
π οΈ Behind the scenes
- refactor: separate concerns in
TaskLayout.ApplyOptions()
by @ilandikov in #2235 - test: enable combination-testing of async code by @claremacrae in #2251
- test: refactoring to simplify EditTask.test.ts by @claremacrae in #2253
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
4.6.1: Auto-Suggest is more selective
What's Changed
Please restart Obsidian after updating the plugin. Thank you.
Main changes
Here are the user-visible changes.
πͺ Fixes: Auto-Suggest is more selective
- fix: Only show dataview suggestions when there is an open bracket preceding the cursor position. by @kedestin in #2204
- fix: Prevent auto-suggest appearing before the end of the checkbox by @claremacrae in #2244
Docs:
π οΈ Behind the scenes
- refactor: split getComponentClassesAndData() in to 2 functions by @claremacrae in #2226
- refactor: simplify
getTaskComponentClass()
by @ilandikov in #2228 - refactor: remove unused parameter from
TaskLayout
constructor by @ilandikov in #2234 - test: Add tests for logic in EditorSuggestor.onTrigger() by @claremacrae in #2233
- vault: update smoke test for recent code changes by @ilandikov in #2207
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
4.6.0: 'ignore global query', dates 'on or before' and 'on or after', debug logging removed
What's Changed
Please restart Obsidian after updating the plugin. Thank you.
π Features
- Add
ignore global query
instruction by @ilandikov in #2113 - New date options:
on or before
,on or after
,in or before
&in or after
by @ilandikov in #2186
πͺ Fixes
- Single # symbol in task line no longer treated as a tag by @claremacrae in #2201
- Remove verbose debug console output by @claremacrae in #2203
π Documentation
- Add a Tags page, to help with FAQs by @claremacrae in #2202
- Live page: Tags
π οΈ Behind the scenes
- docs/contrib/vault: Update snippets and examples in markdown by @github-actions in #2194
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
π Support Tasks development (Optional!)
4.5.0: Support + character as a list marker
What's Changed
Dependencies have been updated. Please restart Obsidian after updating the plugin. Thank you.
Here are the most notable user-visible changes.
π Features
- feat: Add + sign to supported list markers by @claremacrae in #2193
π οΈ Behind the scenes
- chore: Add Sponsor button to GitHub repo by @claremacrae in #2181
- refactor: simplify if-elses in DateField by @ilandikov in #2185
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
4.4.0: custom groups and filters support variables, functions, if and return statements
What's Changed
Please restart Obsidian after updating the plugin. Thank you.
Here are the most notable user-visible changes.
π Features
- feat: Support variables and more in custom filters and groups by @claremacrae in #2179
The following can now be used in filter by function
and group by function
:
- Named variables
- Functions
if
statementsreturn
There are some simple examples in the Expressions docs page.
For example, Before:
# 4 places need updating to change from using task.due to, say, task.happens:
group by function (!task.due.moment) ? '%%4%% ==Undated==' : task.due.moment.isBefore(moment(), 'day') ? '%%1%% ==Overdue==' : task.due.moment.isSame(moment(), 'day') ? '%%2%% ==Today==' : '%%3%% ==Future=='
After:
# Only 1 place needs updating to change from using task.due to, say, task.happens:
group by function const date = task.due.moment; return (!date) ? '%%4%% ==Undated==' : date.isBefore(moment(), 'day') ? '%%1%% ==Overdue==' : date.isSame(moment(), 'day') ? '%%2%% ==Today==' : '%%3%% ==Future=='
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):
4.3.0: Regular Expressions bug-fixing and usability
What's Changed
π Most Notable
Dependencies have been updated. Please restart Obsidian after updating the plugin. Thank you.
π Major safety and usability improvements for regular expressions (regex) searches
/
characters no longer need to be escaped (as\/
) in regular expressions.- This fixes #2136 - that file paths in regular expressions were wrongly truncated.
explain
now explains regular expressions.- It's easier to correct syntax errors in regexes, as error info is now displayed, such as:
SyntaxError: Invalid regular expression: /hello(/: Unterminated group
- The
u
unicode flag is now supported. - Any invalid flags are reported now instead of ignored.
- These are often a sign of a missing
/
at the end of the regex.
- These are often a sign of a missing
- Any problems with regex result in the following 'help' being displayed inside Tasks code blocks:
Main changes
Here are the most notable user-visible changes.
π Features
- feat: query error messages now show problem line by @claremacrae in #2128
- feat: explain now shows regex interpretation by @claremacrae in #2132
- feat: Show help message for invalid regular expressions by @claremacrae in #2139
πͺ Fixes
- fix: Display reason for any failure to read regex by @claremacrae in #2134
- fix: Support 'u' flag (Unicode) & detect duplicate flags by @claremacrae in #2135
- fix: prevent truncation of regex /a/b/c/d/ searching only /a/ by @claremacrae in #2136
- fix: Report invalid regex flags - likely a missing slash by @claremacrae in #2137
- fix: Improve readability of exception reports. by @claremacrae in #2140
π Documentation
- docs: Simulate a horizontal rule before each level-2 heading by @claremacrae in 6903294
- docs: Remove HRs before level-2 headings by @claremacrae in 60d5c2d
- docs: Fix incorrect 'not scheduled' instruction - fixes #2116 by @claremacrae in 40e8a02
- docs: Standardise punctuation in custom filter and group examples by @claremacrae in 81cc8ef
- docs: Remove links to two GitHub issues that have been fixed by @claremacrae in 962c18a
- docs: Standardise text for links to GitHub issues. by @claremacrae in 97c5dc2
- docs: Remove now-fixed limitations from Regular Expressions docs by @claremacrae in f210d0d
- docs: Add example of global query in Explaining Queries.md by @claremacrae in 28a3c68
- docs: Record that 'explain' now shows regexes. by @claremacrae in 6b9f02a
π οΈ Dependencies
- chore(deps-dev): bump prettier from 2.7.1 to 2.8.8 by @dependabot in #2090
- chore(deps): bump semver from 6.3.0 to 6.3.1 by @dependabot in #2117
- chore(deps): bump tough-cookie from 4.1.2 to 4.1.3 by @dependabot in #2115
- chore: Fix error message from newer svelte dependencies. by @claremacrae in #2119
- chore(deps-dev): bump svelte-check from 2.10.3 to 3.4.6 by @dependabot in #2118
π οΈ Behind the scenes
- test: Simplify code-review of filter, sort and group additions by @claremacrae in #2126
Full Changelog (including changes too small to note above, and that do not affect the behaviour of the plugin itself):