├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitattributes
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug-report.yaml
│ ├── config.yml
│ ├── feature-request.yaml
│ └── internal-issue.yaml
├── dependabot.yml
├── pull_request_template.md
└── workflows
│ ├── release.yml
│ ├── update-docs-markdown.yml
│ └── verify.yml
├── .gitignore
├── .markdownlint-cli2.jsonc
├── .markdownlint.jsonc
├── .prettierrc.js
├── .vscode
├── extensions.json
└── settings.json
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── circular-deps.txt
├── contributing
├── .obsidian
│ ├── app.json
│ ├── appearance.json
│ ├── command-palette.json
│ ├── community-plugins.json
│ ├── core-plugins-migration.json
│ ├── core-plugins.json
│ ├── graph.json
│ ├── hotkeys.json
│ ├── plugins
│ │ ├── broken-links
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── cmdr
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── copy-publish-url
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ │ ├── note-refactor-obsidian
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── obsidian-plugin-update-tracker
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── reveal-active-file-button
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ │ ├── table-editor-obsidian
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── tag-wrangler
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── templater-obsidian
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── vault-name-status-bar
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ └── vault-nickname
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ ├── publish.json
│ └── snippets
│ │ └── publish-simulation.css
├── Architecture Decisions
│ ├── ADR-001 - Nomenclature for Reusable Instruction Blocks Feature.md
│ └── About Architecture Decisions.md
├── Building
│ ├── About Building.md
│ ├── Developing with WebStorm.md
│ ├── Local development.md
│ └── Setting up build environment.md
├── Code
│ ├── About Code.md
│ ├── Generating documentation of the code.md
│ ├── How do I add a new field to the Task class.md
│ ├── How do I add a new task filter.md
│ ├── How do I add one-click support for new themes or snippets for custom statuses.md
│ ├── How do I see circular dependencies.md
│ ├── How do I use Moment in src.md
│ ├── How does Tasks handle status changes.md
│ ├── Structure of the code.md
│ ├── circular-deps.svg
│ ├── class-hierarchy.png
│ ├── code-docs-index-page.png
│ └── webstorm-open-code-docs.png
├── Contributing
│ ├── About Contributing.md
│ ├── Reviewing Pull Requests.md
│ └── Updating code.md
├── Debugging
│ ├── About Debugging.md
│ ├── Console logging facilities in Tasks.md
│ ├── Console timing facilities in Tasks.md
│ ├── Debugging and Performance tools.md
│ ├── How do I enable hidden debugging and visualisation facilities.md
│ └── Sample flame chart with Timing labels.png
├── Dependencies
│ ├── About Dependencies.md
│ ├── Dependency Groups.md
│ ├── Notes and Special Cases.md
│ ├── Overview of dependencies and `package.json`.md
│ ├── Summary of Dependency Upgrades and Dependabot.md
│ └── Thought-Process for Deciding Whether a Dependency Needs Manual Testing.md
├── Documentation
│ ├── About Documentation.md
│ ├── Callouts.md
│ ├── Documentation and branches.md
│ ├── Embedding code and data in documentation.md
│ ├── How the documentation is generated.md
│ ├── Linking to other pages in the docs.md
│ ├── Old Jekyll-based docs
│ │ ├── About Old Jekyll-based docs.md
│ │ ├── Dependency Management and Updates for the Docs.md
│ │ ├── Overview of Jekyll-based docs.md
│ │ └── Test documentation locally with Jekyll.md
│ ├── Publishing with Obsidian Publish.md
│ ├── Redirects - Renaming files.md
│ ├── Redirects - Testing old links still work.md
│ ├── Rename headings.md
│ ├── Screenshots in documentation.md
│ ├── Templates for common text snippets.md
│ ├── Version numbers in documentation.md
│ └── publish-icon-in-ribbon.png
├── Releases
│ ├── About Releases.md
│ └── How do I make a release.md
├── Testing
│ ├── About Testing.md
│ ├── Approval Tests.md
│ ├── Example Tests.md
│ ├── How do I smoke-test the Tasks plugin.md
│ ├── How do I test a GitHub build of the Tasks plugin.md
│ ├── How do I use Moment in tests.md
│ ├── Introduction to Running the tests.md
│ ├── Introduction to Writing Unit Tests.md
│ ├── Jest Test Framework.md
│ ├── Jest and the WebStorm IDE.md
│ ├── Simulating Dates and Times.md
│ ├── Snapshot Tests.md
│ ├── Test Coverage.md
│ ├── Testing and Time Zones.md
│ ├── Using Obsidian API in tests.md
│ └── Writing Tests for New or Refactored Code.md
├── Translation
│ ├── About Translation.md
│ ├── Contribute translations.md
│ ├── Make strings translatable.md
│ ├── Overview of the translation setup.md
│ ├── Set up Visual Studio Code for translation work.md
│ ├── Set up WebStorm for translation work.md
│ ├── Support a new language.md
│ ├── Translate a new string.md
│ └── WebStorm Easy I18n plugin settings.png
├── Useful Links.md
├── User Support
│ ├── About User Support.md
│ └── Getting test vault to Mobile Device.md
├── Welcome.md
├── _meta
│ └── templates
│ │ ├── file path for redirecting alias.md
│ │ ├── image embed.md
│ │ ├── insert 'Released' callout for part of feature.md
│ │ ├── insert 'Released' callout for whole feature.md
│ │ ├── new documentation file.md
│ │ ├── standard frontmatter.md
│ │ ├── tags for related pages.md
│ │ └── we are tracking this in issue.md
└── publish.css
├── docs-snippets
├── snippet-callout-titles-bug.md
└── snippet-statuses-overview.md
├── docs
├── .gitignore
├── .obsidian
│ ├── app.json
│ ├── appearance.json
│ ├── command-palette.json
│ ├── community-plugins.json
│ ├── core-plugins-migration.json
│ ├── core-plugins.json
│ ├── graph.json
│ ├── hotkeys.json
│ ├── plugins
│ │ ├── broken-links
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── cmdr
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── copy-publish-url
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ │ ├── obsidian-auto-link-title
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── obsidian-plugin-update-tracker
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── obsidian-tasks-plugin
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── reveal-active-file-button
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ │ ├── table-editor-obsidian
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── tag-wrangler
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── templater-obsidian
│ │ │ ├── data.json
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ ├── vault-name-status-bar
│ │ │ ├── main.js
│ │ │ ├── manifest.json
│ │ │ └── styles.css
│ │ └── vault-nickname
│ │ │ ├── main.js
│ │ │ └── manifest.json
│ ├── publish.json
│ └── snippets
│ │ └── publish-simulation.css
├── Advanced
│ ├── About Advanced.md
│ ├── Daily Agenda.md
│ ├── Notifications.md
│ ├── Styling.md
│ ├── Tasks Api.md
│ └── Urgency.md
├── Editing
│ ├── About Editing.md
│ ├── Auto-Suggest.md
│ ├── Create or edit Task.md
│ ├── Editing Dates.md
│ ├── Postponing.md
│ └── Toggling and Editing Statuses.md
├── Getting Started
│ ├── About Getting Started.md
│ ├── Dates.md
│ ├── Getting Started.md
│ ├── Global Filter.md
│ ├── Installation.md
│ ├── Obsidian Properties.md
│ ├── On Completion.md
│ ├── Priority.md
│ ├── Recurring Tasks.md
│ ├── Settings.md
│ ├── Statuses.md
│ ├── Statuses
│ │ ├── About Statuses.md
│ │ ├── Check your Statuses.md
│ │ ├── Core Statuses.md
│ │ ├── Custom Statuses.md
│ │ ├── Editing a Status.md
│ │ ├── Example Statuses.md
│ │ ├── Recurring Tasks and Custom Statuses.md
│ │ ├── Status Settings.md
│ │ └── Status Types.md
│ ├── Tags.md
│ ├── Task Dependencies.md
│ └── Use Filename as Default Date.md
├── How To
│ ├── About How Tos.md
│ ├── Find tasks for coming 7 days.md
│ ├── Find tasks with invalid data.md
│ ├── How to get tasks in current file.md
│ ├── How to style backlinks.md
│ ├── How to style buttons.md
│ ├── Make a query user interface.md
│ ├── Set up custom statuses.md
│ ├── Show tasks in a calendar.md
│ └── Style custom statuses.md
├── Introduction.md
├── Other Plugins
│ ├── About Other Plugins.md
│ ├── Dataview.md
│ ├── Kanban Plugin.md
│ ├── Meta Bind Plugin.md
│ └── QuickAdd.md
├── Queries
│ ├── About Queries.md
│ ├── Backlinks.md
│ ├── Combining Filters.md
│ ├── Comments.md
│ ├── Examples.md
│ ├── Explaining Queries.md
│ ├── Filters.md
│ ├── Global Query.md
│ ├── Grouping.md
│ ├── Layout.md
│ ├── Limiting.md
│ ├── Line Continuations.md
│ ├── Query File Defaults.md
│ ├── Regular Expressions.md
│ └── Sorting.md
├── Quick Reference.md
├── README.md
├── Reference
│ ├── About Reference.md
│ ├── Status Collections
│ │ ├── About Status Collections.md
│ │ ├── AnuPpuccin Theme.md
│ │ ├── Aura Theme.md
│ │ ├── Border Theme.md
│ │ ├── Ebullientworks Theme.md
│ │ ├── ITS Theme.md
│ │ ├── LYT Mode Theme.md
│ │ ├── Minimal Theme.md
│ │ ├── SlRvb's Alternate Checkboxes.md
│ │ └── Things Theme.md
│ └── Task Formats
│ │ ├── About Task Formats.md
│ │ ├── Dataview Format.md
│ │ └── Tasks Emoji Format.md
├── Scripting
│ ├── About Scripting.md
│ ├── Custom Filters.md
│ ├── Custom Grouping.md
│ ├── Custom Sorting.md
│ ├── Expressions.md
│ ├── Placeholders.md
│ ├── Presets.md
│ ├── Query Properties.md
│ └── Task Properties.md
├── Support and Help
│ ├── About Support and Help.md
│ ├── Known Limitations.md
│ ├── Missing tasks in callouts with some Obsidian 1.6.x versions.md
│ ├── Report a Bug.md
│ ├── Request a Feature.md
│ └── Useful Links.md
├── What is New
│ ├── Breaking Changes.md
│ └── Changelog.md
├── _meta
│ └── templates
│ │ ├── file path for redirecting alias.md
│ │ ├── image embed.md
│ │ ├── insert 'Released' callout for part of feature.md
│ │ ├── insert 'Released' callout for whole feature.md
│ │ ├── insert line in to What's New.md
│ │ ├── new documentation file.md
│ │ ├── sample mermaid diagram.md
│ │ ├── standard frontmatter.md
│ │ ├── tags for related pages.md
│ │ ├── we are tracking this in discussion.md
│ │ └── we are tracking this in issue.md
├── images
│ ├── acme.png
│ ├── api-create-taskline-modal-quickadd-capture-example.png
│ ├── auto-suggest-edit-incorrect-task.png
│ ├── auto-suggest-menu-after-due-date.png
│ ├── auto-suggest-menu-after-due-emoji.png
│ ├── auto-suggest-menu-after-priority.png
│ ├── auto-suggest-menu-after-repeat-emoji.png
│ ├── auto-suggest-menu-after-repeat-text.png
│ ├── auto-suggest-menu-initial-menu.png
│ ├── auto-suggest-preview-incorrect-task.png
│ ├── backlinks-default-style.png
│ ├── backlinks-snippet-tasks-plugin-backlinks-icon.png
│ ├── backlinks-snippet-tasks-plugin-backlinks-small-grey.png
│ ├── change-status-context-menu-with-custom-statuses.png
│ ├── dataview-settings.png
│ ├── date-context-menu-1.png
│ ├── date-context-menu-2.png
│ ├── date-picker-1.png
│ ├── date-picker-2.png
│ ├── important_project.png
│ ├── modal-date-picker.png
│ ├── modal-showing-date-needed-on-recurring-task.png
│ ├── modal-showing-new-statuses.png
│ ├── modal-showing-unparsed-emoji.png
│ ├── modal.png
│ ├── on-completion-after.png
│ ├── on-completion-before.png
│ ├── postpone-future-task-context-menu.png
│ ├── postpone-future-task-default-action.png
│ ├── postpone-overdue-task-context-menu.png
│ ├── postpone-overdue-task-default-action.png
│ ├── query-file-defaults-file-properties-controls.png
│ ├── query-file-defaults-meta-bind-controls.png
│ ├── quickadd-settings-configure-capture.png
│ ├── quickadd-settings-create-capture.png
│ ├── rebuild-vault-metadata.png
│ ├── reminder.png
│ ├── search-headings-for-date-and-tag.png
│ ├── settings-auto-suggest-task-content.png
│ ├── settings-core-statuses.png
│ ├── settings-custom-statuses-add-unknown-statuses.png
│ ├── settings-custom-statuses-added-1.png
│ ├── settings-custom-statuses-added.png
│ ├── settings-custom-statuses-dialog-1.png
│ ├── settings-custom-statuses-dialog-2.png
│ ├── settings-custom-statuses-important-loop-added.png
│ ├── settings-custom-statuses-initial.png
│ ├── settings-custom-statuses-its-theme-first-few.png
│ ├── settings-custom-statuses-minimal-theme-first-few.png
│ ├── settings-custom-statuses-new-empty-status.png
│ ├── settings-global-filter-with-filter.png
│ ├── settings-global-filter.png
│ ├── settings-global-query.png
│ ├── settings-optional-date-fields.png
│ ├── settings-provide-access-keys-in-dialogs.png
│ ├── settings-recurrence-location.png
│ ├── settings-recurrence-remove-scheduled-date.png
│ ├── settings-restart-after-change.png
│ ├── settings-statuses-initial.png
│ ├── settings-statuses-report-samples.png
│ ├── settings-statuses-report.png
│ ├── settings-task-format.png
│ ├── settings-use-filename-for-date.png
│ ├── show-tree.png
│ ├── snippet-slrvb-alternate-checkboxes.png
│ ├── styling-sample-tasks-default-appearance.png
│ ├── styling-sample-tasks-slrvb-custom-checkboxes-modified.png
│ ├── styling-sample-tasks-slrvb-custom-checkboxes.png
│ ├── styling-sample-tasks-style-settings-options-1.png
│ ├── styling-sample-tasks-style-settings-options-2.png
│ ├── task-dependencies-blocked-by-example.png
│ ├── task-dependencies-party.png
│ ├── task-dependencies-search.png
│ ├── tasks-buttons-alt.png
│ ├── tasks-buttons-default.png
│ ├── tasks-buttons-gray.png
│ ├── tasks-buttons-stylish.png
│ ├── tasks-buttons-svg.png
│ ├── tasks-buttons-text.png
│ ├── tasks-plugin-circular-checkboxes-snippet.png
│ ├── tasks-plugin-color-due-today-and-overdue-snippet.png
│ ├── tasks-plugin-complete-example-snippet.png
│ ├── tasks-plugin-grid-layout-snippet-query.png
│ ├── tasks-plugin-grid-layout-snippet-reading.png
│ ├── tasks-plugin-highlight-specific-tag-green-glow-snippet.png
│ ├── tasks-plugin-highlight-specific-tag-round-red-description-snippet.png
│ ├── tasks-plugin-priority-as-checkbox-color-snippet.png
│ ├── tasks-plugin-style-status-symbols-snippet.png
│ ├── tasks-plugin-style-status-types-snippet.png
│ ├── tasks-plugin-tags-links-recurrence-gray-snippet.png
│ ├── tasks_custom_groups_categorise_dates.png
│ ├── tasks_custom_groups_with_formatting.png
│ ├── tasks_grouped.png
│ ├── tasks_queries.png
│ ├── tasks_ungrouped.png
│ ├── theme-anuppuccin-reading-view.png
│ ├── theme-aura-reading-view.png
│ ├── theme-border-reading-view.png
│ ├── theme-ebullientworks-reading-view.png
│ ├── theme-its-reading-view-sample.png
│ ├── theme-its-reading-view.png
│ ├── theme-lyt-mode-reading-view.png
│ ├── theme-minimal-reading-view-sample.png
│ ├── theme-minimal-reading-view.png
│ └── theme-things-reading-view.png
├── migration.md
├── publish.css
└── snippets-embedded-in-multiple-pages
│ ├── Sample HTML - Full mode.md
│ └── Sample HTML - Short mode.md
├── esbuild.config.mjs
├── i18next-parser.config.js
├── jest.config.js
├── lefthook.yml
├── manifest.json
├── mdsnippets.json
├── package.json
├── release.sh
├── resources
├── sample_vaults
│ └── Tasks-Demo
│ │ ├── .gitignore
│ │ ├── .obsidian
│ │ ├── app.json
│ │ ├── appearance.json
│ │ ├── command-palette.json
│ │ ├── community-plugins.json
│ │ ├── core-plugins-migration.json
│ │ ├── core-plugins.json
│ │ ├── hotkeys.json
│ │ ├── plugins
│ │ │ ├── broken-links
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── cmdr
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── dataview
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── helpmate
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── hot-reload
│ │ │ │ ├── main.js
│ │ │ │ └── manifest.json
│ │ │ ├── js-engine
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── number-headings-obsidian
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-kanban
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-meta-bind-plugin
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-plugin-update-tracker
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-style-settings
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-tasks-plugin
│ │ │ │ ├── .hotreload
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian-theme-design-utilities
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── obsidian42-brat
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── open-plugin-settings
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── quickadd
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── reveal-active-file-button
│ │ │ │ ├── main.js
│ │ │ │ └── manifest.json
│ │ │ ├── table-editor-obsidian
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── templater-obsidian
│ │ │ │ ├── data.json
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ ├── vault-name-status-bar
│ │ │ │ ├── main.js
│ │ │ │ ├── manifest.json
│ │ │ │ └── styles.css
│ │ │ └── vault-nickname
│ │ │ │ ├── main.js
│ │ │ │ └── manifest.json
│ │ ├── snippets
│ │ │ ├── S - Checkboxes.css
│ │ │ ├── dataview-blocks.css
│ │ │ ├── js-engine-code-block-border.css
│ │ │ ├── tasks-buttons-alt.css
│ │ │ ├── tasks-buttons-gray.css
│ │ │ ├── tasks-buttons-stylish.css
│ │ │ ├── tasks-buttons-svg.css
│ │ │ ├── tasks-buttons-text.css
│ │ │ ├── tasks-code-block-blue-border.css
│ │ │ ├── tasks-plugin-backlinks-icon.css
│ │ │ ├── tasks-plugin-backlinks-small-grey.css
│ │ │ ├── tasks-plugin-circular-checkboxes.css
│ │ │ ├── tasks-plugin-color-due-today-and-overdue.css
│ │ │ ├── tasks-plugin-complete-example.css
│ │ │ ├── tasks-plugin-explain-text-blue.css
│ │ │ ├── tasks-plugin-grid-layout.css
│ │ │ ├── tasks-plugin-highlight-specific-tag-green-glow.css
│ │ │ ├── tasks-plugin-highlight-specific-tag-round-red-description.css
│ │ │ ├── tasks-plugin-priority-as-checkbox-color.css
│ │ │ ├── tasks-plugin-smoke-test-query-styling.css
│ │ │ ├── tasks-plugin-style-status-symbols.css
│ │ │ ├── tasks-plugin-style-status-types.css
│ │ │ ├── tasks-plugin-tags-links-recurrence-gray.css
│ │ │ └── widen-property-labels.css
│ │ ├── themes
│ │ │ ├── AnuPpuccin
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── Aura
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── Border
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── Ebullientworks
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── ITS Theme
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── LYT Mode
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── Minimal
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ ├── Prism
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ │ └── Things
│ │ │ │ ├── manifest.json
│ │ │ │ └── theme.css
│ │ └── types.json
│ │ ├── ACME.md
│ │ ├── Filters
│ │ ├── Boolean Combinations.md
│ │ ├── Explain Filters.md
│ │ ├── Regular Expression Searches.md
│ │ └── Search for tasks in file or folder containing the Query.md
│ │ ├── Formats
│ │ ├── All Formats Parsing.md
│ │ ├── Dataview Format.md
│ │ └── Tasks Format.md
│ │ ├── Functions
│ │ ├── Custom Filters - Demo.md
│ │ ├── Custom Filters With Complex Caching.md
│ │ ├── Custom Filters With Simple Caching.md
│ │ ├── Custom Sorting.md
│ │ └── Fields for Functions - Demo.md
│ │ ├── How To
│ │ ├── Access properties in frontmatter.md
│ │ ├── Find tasks in notes with particular tag.md
│ │ ├── Reuse instructions across the vault.md
│ │ └── Use formatting in custom group headings.md
│ │ ├── Important Project.md
│ │ ├── Manual Testing
│ │ ├── 654 - Unable to find section, when title has tag inside.md
│ │ ├── Callouts and Block Quotes.md
│ │ ├── Custom Task Statuses.md
│ │ ├── Dependencies - Worked Example.md
│ │ ├── Dependencies Samples - Recurring Tasks.md
│ │ ├── Dependencies Samples.md
│ │ ├── Edit Task Modal samples.md
│ │ ├── Frontmatter
│ │ │ ├── Frontmatter code.canvas
│ │ │ ├── Placeholder examples to capture in tests and docs.md
│ │ │ ├── Project 1.md
│ │ │ ├── Project 2.md
│ │ │ ├── Project Search.md
│ │ │ ├── Tags in Frontmatter.md
│ │ │ └── workdate Example.md
│ │ ├── Internal Heading Links
│ │ │ ├── Internal Heading Links.md
│ │ │ └── Other File.md
│ │ ├── Invalid Dates and Happens.md
│ │ ├── Invalid Dates.md
│ │ ├── Invalid dates with Sorting and Grouping.md
│ │ ├── Markdown in group _non-italic filename_.md
│ │ ├── QuickAdd Tasks API Demo.md
│ │ ├── README - Manual Testing.md
│ │ ├── Recurrence handling invalid dates.md
│ │ ├── Scheduled Date Implied
│ │ │ ├── Nov 05, 2022.md
│ │ │ ├── Scheduled Implied - 2022-11-05.md
│ │ │ ├── Scheduled Implied - 20221105.md
│ │ │ ├── Scheduled Implied - Nov 05, 2022.md
│ │ │ └── Search for Scheduled Dates.md
│ │ ├── Seeing the Query as HTML
│ │ │ ├── HTML from Query - block-language-tasks selected.png
│ │ │ ├── HTML from Query - hover over block-language-tasks.png
│ │ │ ├── HTML from Query - select an element.png
│ │ │ ├── HTML from Query - short mode - empty list.html
│ │ │ ├── HTML from Query - short mode.html
│ │ │ ├── HTML from Query.html
│ │ │ └── HTML from Query.md
│ │ ├── SlrVb's Alternative Checkboxes.md
│ │ ├── Smoke Testing the Tasks Plugin - Debug View.md
│ │ ├── Smoke Testing the Tasks Plugin.md
│ │ ├── Smoke test Kanban Integration.md
│ │ ├── Styling of Queries.md
│ │ ├── Task Toggling Scenarios
│ │ │ ├── 1680 - Reading Mode line numbers not updated on editing.md
│ │ │ ├── Embed File in to Note - File to Embed.md
│ │ │ ├── Embed File in to Note.md
│ │ │ ├── Embed Task in to Note.md
│ │ │ ├── On Completion Delete.md
│ │ │ ├── Reading Mode line numbers in blockquotes.md
│ │ │ └── Reading Mode line numbers in callouts.md
│ │ ├── Testing File Formats
│ │ │ ├── Dataview Format - Queries - Dataview Plugin.md
│ │ │ ├── Dataview Format - Queries - Tasks Plugin.md
│ │ │ └── Dataview Format - Tasks to Parse.md
│ │ ├── Time Zones
│ │ │ └── Pacific-Auckland.md
│ │ ├── Toggle Done Cursor Fixes.md
│ │ └── Urgency Scores Examples.md
│ │ ├── Other Plugins
│ │ └── Dataview
│ │ │ ├── Parent-Child relationships - Searches - Dataview.md
│ │ │ ├── Parent-Child relationships - Searches - Tasks.md
│ │ │ ├── Parent-Child relationships - Searches.md
│ │ │ └── Parent-Child relationships - Tasks.md
│ │ ├── Settings Files
│ │ ├── data 1.22.0.json
│ │ └── data 1.23.0-pre-release-build-1.json
│ │ ├── Stress Test
│ │ ├── .gitignore
│ │ ├── Stress Test Readme.md
│ │ ├── limit 1.md
│ │ ├── limit 100.md
│ │ ├── limit 1000.md
│ │ ├── limit 150.md
│ │ ├── limit 200.md
│ │ ├── limit 2000.md
│ │ ├── limit 25.md
│ │ ├── limit 250.md
│ │ ├── limit 3000.md
│ │ ├── limit 4000.md
│ │ ├── limit 50.md
│ │ ├── limit 500.md
│ │ ├── limit 5000.md
│ │ └── limit 750.md
│ │ ├── Styling
│ │ ├── Sample Tasks for Styling Documentation.md
│ │ ├── Snippet - SlRvb's Alternate Checkboxes.md
│ │ ├── Styling the Backlinks.md
│ │ ├── Theme - AnuPpuccin.md
│ │ ├── Theme - Aura.md
│ │ ├── Theme - Border.md
│ │ ├── Theme - Ebullientworks.md
│ │ ├── Theme - ITS Theme.md
│ │ ├── Theme - LYT Mode.md
│ │ ├── Theme - Minimal Theme.md
│ │ └── Theme - Things Theme.md
│ │ ├── Tasks.md
│ │ ├── Test Data
│ │ ├── blockquote.md
│ │ ├── callout.md
│ │ ├── callout_custom.md
│ │ ├── callout_labelled.md
│ │ ├── callouts_nested_issue_2890_labelled.md
│ │ ├── callouts_nested_issue_2890_unlabelled.md
│ │ ├── code_block_in_task.md
│ │ ├── comments_html_style.md
│ │ ├── comments_markdown_style.md
│ │ ├── docs_sample_for_explain_query_file_defaults.md
│ │ ├── docs_sample_for_task_properties_reference.md
│ │ ├── empty_yaml.md
│ │ ├── example_kanban.md
│ │ ├── inheritance_1parent1child.md
│ │ ├── inheritance_1parent1child1newroot_after_header.md
│ │ ├── inheritance_1parent1child1sibling_emptystring.md
│ │ ├── inheritance_1parent2children.md
│ │ ├── inheritance_1parent2children1grandchild.md
│ │ ├── inheritance_1parent2children1sibling.md
│ │ ├── inheritance_1parent2children2grandchildren.md
│ │ ├── inheritance_1parent2children2grandchildren1sibling.md
│ │ ├── inheritance_1parent2children2grandchildren1sibling_start_with_heading.md
│ │ ├── inheritance_2roots_listitem_listitem_task.md
│ │ ├── inheritance_2siblings.md
│ │ ├── inheritance_listitem_listitem_task.md
│ │ ├── inheritance_listitem_task.md
│ │ ├── inheritance_listitem_task_siblings.md
│ │ ├── inheritance_non_task_child.md
│ │ ├── inheritance_rendering_sample.md
│ │ ├── inheritance_task_2listitem_3task.md
│ │ ├── inheritance_task_listitem.md
│ │ ├── inheritance_task_listitem_mixed_grandchildren.md
│ │ ├── inheritance_task_listitem_task.md
│ │ ├── inheritance_task_mixed_children.md
│ │ ├── internal_heading_links.md
│ │ ├── jason_properties.md
│ │ ├── link_in_file_body.md
│ │ ├── link_in_file_body_with_custom_display_text.md
│ │ ├── link_in_heading.md
│ │ ├── link_in_task_html.md
│ │ ├── link_in_task_markdown_link.md
│ │ ├── link_in_task_wikilink.md
│ │ ├── link_in_yaml.md
│ │ ├── link_is_broken.md
│ │ ├── links_everywhere.md
│ │ ├── list_statuses.md
│ │ ├── list_styles.md
│ │ ├── multi_line_task_and_list_item.md
│ │ ├── multiple_headings.md
│ │ ├── no_heading.md
│ │ ├── no_yaml.md
│ │ ├── non_tasks.md
│ │ ├── numbered_list_items_standard.md
│ │ ├── numbered_list_items_with_paren.md
│ │ ├── one_task.md
│ │ ├── query_file_defaults_all_options_false.md
│ │ ├── query_file_defaults_all_options_null.md
│ │ ├── query_file_defaults_all_options_true.md
│ │ ├── query_file_defaults_ignore_global_query.md
│ │ ├── query_file_defaults_short_mode.md
│ │ ├── query_using_properties.md
│ │ ├── yaml_1_alias.md
│ │ ├── yaml_2_aliases.md
│ │ ├── yaml_all_property_types_empty.md
│ │ ├── yaml_all_property_types_populated.md
│ │ ├── yaml_capitalised_property_name.md
│ │ ├── yaml_complex_example.md
│ │ ├── yaml_complex_example_standardised.md
│ │ ├── yaml_custom_number_property.md
│ │ ├── yaml_tags_field_added_by_obsidian_but_not_populated.md
│ │ ├── yaml_tags_had_value_then_was_emptied_by_obsidian.md
│ │ ├── yaml_tags_has_multiple_values.md
│ │ ├── yaml_tags_is_empty.md
│ │ ├── yaml_tags_is_empty_list.md
│ │ ├── yaml_tags_with_one_value_on_new_line.md
│ │ ├── yaml_tags_with_one_value_on_single_line.md
│ │ ├── yaml_tags_with_two_values_on_one_line.md
│ │ ├── yaml_tags_with_two_values_on_two_lines.md
│ │ └── zero_width.md
│ │ └── _meta
│ │ ├── templater_scripts
│ │ └── convert_test_data_markdown_to_js.js
│ │ └── templates
│ │ ├── Test Data file.md
│ │ ├── convert_test_data_markdown_to_js.md
│ │ ├── daily note template - Templater plugin.md
│ │ ├── tasks with range of all dates - Templater plugin.md
│ │ ├── tasks with range of due dates - Templater plugin.md
│ │ ├── tasks with range of scheduled dates - Templater plugin.md
│ │ └── tasks with range of start dates - Templater plugin.md
└── screenshots
│ └── README-resources-screenshots.md
├── scripts
├── Test-TasksInLocalObsidian.ps1
├── Test-TasksInLocalObsidian.sh
├── copy-docs-snippet-to-other-css-files.sh
└── stress_test_obsidian_tasks.py
├── src
├── Api
│ ├── TasksApiV1.ts
│ ├── createTaskLineModal.ts
│ ├── createTaskLineModalHelper.ts
│ └── index.ts
├── Commands
│ ├── AddQueryFileDefaultsProperties.ts
│ ├── CreateOrEdit.ts
│ ├── CreateOrEditTaskParser.ts
│ ├── ToggleDone.ts
│ └── index.ts
├── Config
│ ├── CustomStatusModal.ts
│ ├── DebugSettings.ts
│ ├── Feature.ts
│ ├── GlobalFilter.ts
│ ├── GlobalQuery.ts
│ ├── PresetsSettingsService.ts
│ ├── PresetsSettingsUI.scss
│ ├── PresetsSettingsUI.ts
│ ├── Settings.ts
│ ├── SettingsTab.scss
│ ├── SettingsTab.ts
│ ├── StatusSettings.ts
│ ├── Themes
│ │ ├── AnuPpuccinThemeCollection.ts
│ │ ├── AuraThemeCollection.ts
│ │ ├── BorderThemeCollection.ts
│ │ ├── EbullientworksThemeCollection.ts
│ │ ├── ITSThemeCollection.ts
│ │ ├── LYTModeThemeCollection.ts
│ │ ├── MinimalThemeCollection.ts
│ │ ├── ThingsThemeCollection.ts
│ │ └── index.ts
│ └── featureConfiguration.json
├── DateTime
│ ├── DateAbbreviations.ts
│ ├── DateFallback.ts
│ ├── DateFieldTypes.ts
│ ├── DateParser.ts
│ ├── DateRange.ts
│ ├── DateTools.ts
│ ├── Postponer.ts
│ └── TasksDate.ts
├── IQuery.ts
├── Layout
│ ├── LayoutHelpers.ts
│ ├── QueryLayout.ts
│ ├── QueryLayoutOptions.ts
│ ├── TaskLayout.ts
│ └── TaskLayoutOptions.ts
├── Obsidian
│ ├── Cache.ts
│ ├── File.ts
│ ├── FileParser.ts
│ ├── InlineRenderer.ts
│ ├── LivePreviewExtension.ts
│ ├── TaskModal.ts
│ └── TasksEvents.ts
├── Query
│ ├── Explain
│ │ ├── Explainer.ts
│ │ └── Explanation.ts
│ ├── Filter
│ │ ├── BacklinkField.ts
│ │ ├── BlockingField.ts
│ │ ├── BooleanDelimiters.ts
│ │ ├── BooleanField.ts
│ │ ├── BooleanPreprocessor.ts
│ │ ├── CancelledDateField.ts
│ │ ├── CreatedDateField.ts
│ │ ├── DateField.ts
│ │ ├── DependsOnField.ts
│ │ ├── DescriptionField.ts
│ │ ├── DoneDateField.ts
│ │ ├── DueDateField.ts
│ │ ├── ExcludeSubItemsField.ts
│ │ ├── Field.ts
│ │ ├── FilenameField.ts
│ │ ├── Filter.ts
│ │ ├── FilterInstruction.ts
│ │ ├── FilterInstructions.ts
│ │ ├── FilterInstructionsBasedField.ts
│ │ ├── FilterOrErrorMessage.ts
│ │ ├── FolderField.ts
│ │ ├── FunctionField.ts
│ │ ├── HappensDateField.ts
│ │ ├── HeadingField.ts
│ │ ├── IdField.ts
│ │ ├── MultiTextField.ts
│ │ ├── PathField.ts
│ │ ├── PriorityField.ts
│ │ ├── RandomField.ts
│ │ ├── RecurrenceField.ts
│ │ ├── RecurringField.ts
│ │ ├── RootField.ts
│ │ ├── ScheduledDateField.ts
│ │ ├── StartDateField.ts
│ │ ├── StatusField.ts
│ │ ├── StatusNameField.ts
│ │ ├── StatusTypeField.ts
│ │ ├── TagsField.ts
│ │ ├── TextField.ts
│ │ └── UrgencyField.ts
│ ├── FilterParser.ts
│ ├── Group
│ │ ├── GroupDisplayHeading.ts
│ │ ├── GroupDisplayHeadingSelector.ts
│ │ ├── Grouper.ts
│ │ ├── GroupingTreeNode.ts
│ │ ├── TaskGroup.ts
│ │ ├── TaskGroupingTree.ts
│ │ ├── TaskGroupingTreeStorage.ts
│ │ └── TaskGroups.ts
│ ├── Matchers
│ │ ├── IStringMatcher.ts
│ │ ├── RegexMatcher.ts
│ │ └── SubstringMatcher.ts
│ ├── Query.ts
│ ├── QueryComponentOrError.ts
│ ├── QueryFileDefaults.ts
│ ├── QueryRendererHelper.ts
│ ├── QueryResult.ts
│ ├── Scanner.ts
│ ├── SearchInfo.ts
│ ├── Sort
│ │ ├── Sort.ts
│ │ └── Sorter.ts
│ └── Statement.ts
├── README-code-docs.md
├── Renderer
│ ├── QueryRenderer.ts
│ ├── QueryResultsRenderer.ts
│ ├── Renderer.scss
│ ├── TaskFieldRenderer.ts
│ └── TaskLineRenderer.ts
├── Scripting
│ ├── ExpandPlaceholders.ts
│ ├── Expression.ts
│ ├── Presets.ts
│ ├── QueryContext.ts
│ ├── TaskExpression.ts
│ └── TasksFile.ts
├── Statuses
│ ├── Status.ts
│ ├── StatusCollection.ts
│ ├── StatusConfiguration.ts
│ ├── StatusRegistry.ts
│ ├── StatusRegistryReport.ts
│ ├── StatusSettingsReport.ts
│ └── StatusValidator.ts
├── Suggestor
│ ├── EditorSuggestorPopup.ts
│ ├── Suggestor.ts
│ └── index.ts
├── Task
│ ├── ListItem.ts
│ ├── Occurrence.ts
│ ├── OnCompletion.ts
│ ├── Priority.ts
│ ├── Recurrence.ts
│ ├── Task.ts
│ ├── TaskDependency.ts
│ ├── TaskLocation.ts
│ ├── TaskRegularExpressions.ts
│ └── Urgency.ts
├── TaskSerializer
│ ├── DataviewTaskSerializer.ts
│ ├── DefaultTaskSerializer.ts
│ └── index.ts
├── i18n
│ ├── i18n.ts
│ └── locales
│ │ ├── be.json
│ │ ├── de.json
│ │ ├── en.json
│ │ ├── ru.json
│ │ ├── uk.json
│ │ └── zh_cn.json
├── lib
│ ├── ExceptionTools.ts
│ ├── HTMLCharacterEntities.ts
│ ├── Lazy.ts
│ ├── LogTasksHelper.ts
│ ├── MarkdownTable.ts
│ ├── MockDataCreator.ts
│ ├── PerformanceTracker.ts
│ ├── PriorityTools.ts
│ ├── PropertyCategory.ts
│ ├── RecordHelpers.ts
│ ├── RegExpTools.ts
│ ├── StringHelpers.ts
│ ├── TemplatingPluginTools.ts
│ ├── TypeDetection.ts
│ └── logging.ts
├── main.ts
├── styles.scss
└── ui
│ ├── DateEditor.svelte
│ ├── Dependency.scss
│ ├── Dependency.svelte
│ ├── DependencyHelpers.ts
│ ├── EditInstructions
│ ├── DateInstructions.ts
│ ├── MenuDividerInstruction.ts
│ ├── PriorityInstructions.ts
│ ├── StatusInstructions.ts
│ └── TaskEditingInstruction.ts
│ ├── EditTask.scss
│ ├── EditTask.svelte
│ ├── EditTaskHelpers.ts
│ ├── EditableTask.ts
│ ├── Menus
│ ├── DateMenu.ts
│ ├── DatePicker.ts
│ ├── PostponeMenu.ts
│ ├── PriorityMenu.ts
│ ├── StatusMenu.ts
│ └── TaskEditingMenu.ts
│ ├── RecurrenceEditor.svelte
│ └── StatusEditor.svelte
├── svelte.config.js
├── tests
├── Api
│ ├── createTaskLineModal.test.ts
│ └── executeToggleTaskDoneCommand.test.ts
├── Commands
│ ├── CreateOrEditTaskParser.test.ts
│ └── ToggleDone.test.ts
├── Config
│ ├── DebugSettings.test.ts
│ ├── Feature.test.ts
│ ├── GlobalFilter.test.ts
│ ├── GlobalQuery.test.ts
│ ├── PresetsSettingsService.test.ts
│ ├── Settings.test.ts
│ ├── StatusSettings.test.StatusSettings_verify_default_status_settings.approved.json
│ └── StatusSettings.test.ts
├── CustomMatchers
│ ├── CustomMatchersForDates.ts
│ ├── CustomMatchersForExpressions.ts
│ ├── CustomMatchersForFilters.test.ts
│ ├── CustomMatchersForFilters.ts
│ ├── CustomMatchersForGrouping.ts
│ ├── CustomMatchersForRendering.ts
│ ├── CustomMatchersForSorting.ts
│ ├── CustomMatchersForTaskBuilder.ts
│ ├── CustomMatchersForTaskSerializer.ts
│ ├── CustomMatchersForTasks.ts
│ └── jest.custom_matchers.setup.ts
├── DateTime
│ ├── DateAbbreviations.test.ts
│ ├── DateFallback.test.ts
│ ├── DateParser.test.ts
│ ├── DateRange.test.ts
│ ├── DateTools.test.ts
│ ├── Postponer.test.ts
│ └── TasksDate.test.ts
├── DocumentationSamples
│ ├── DefaultsDocs
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_demo-short-mode_instructions.approved.txt
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_demo-short-mode_yaml.approved.yaml
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_fake-types.json.approved.json
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_meta-bind-widgets-include.approved.md
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_meta-bind-widgets-snippet.approved.md
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_supported-properties-empty.approved.yaml
│ │ ├── DocsSamplesForDefaults.test.DocsSamplesForDefaults_supported-properties-full.approved.yaml
│ │ └── DocsSamplesForDefaults.test.ts
│ ├── DependencyDocs
│ │ ├── DependencySamples.test.blocking_and_blocked_filters_blocking_and_blocked.approved.md
│ │ └── DependencySamples.test.ts
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_core-statuses.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_core-statuses.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_custom-statuses.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_custom-statuses.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_done-toggles-to-cancelled-with-unconventional-symbols.approved.detailed.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_done-toggles-to-cancelled.approved.detailed.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_important-cycle.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_important-cycle.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_pro-con-cycle.approved.detailed.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_pro-con-cycle.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_pro-con-cycle.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_todo-in_progress-done.approved.detailed.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_todo-in_progress-done.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_todo-in_progress-done.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_toggle-does-nothing.approved.md
│ ├── DocsSamplesForStatuses.test.DefaultStatuses_toggle-does-nothing.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Status_Transitions_status-types.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_AnuPpuccin_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_AnuPpuccin_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_AnuPpuccin_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_AnuPpuccin_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_Aura_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Aura_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_Aura_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Aura_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_Border_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Border_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_Border_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Border_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_Ebullientworks_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Ebullientworks_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_Ebullientworks_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Ebullientworks_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_ITS_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_ITS_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_ITS_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_ITS_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_LYT_Mode_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_LYT_Mode_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_LYT_Mode_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_LYT_Mode_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_Minimal_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Minimal_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_Minimal_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Minimal_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.Theme_Things_Table.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Things_Table.approved.mermaid.md
│ ├── DocsSamplesForStatuses.test.Theme_Things_Tasks.approved.md
│ ├── DocsSamplesForStatuses.test.Theme_Things_Text.approved.txt
│ ├── DocsSamplesForStatuses.test.ts
│ ├── UrgencyDocs
│ │ ├── DocsSamplesForUrgency.test.UrgencyTable_urgency-html-table.approved.md
│ │ └── DocsSamplesForUrgency.test.ts
│ ├── ValidateTasks.test.ts
│ ├── ValidateTasks.test.validate-tasks_all-emojis-emojis.approved.text
│ ├── ValidateTasks.test.validate-tasks_find-unread-emojis.approved.text
│ └── ValidateTasks.test.validate-tasks_find_problem_dates.approved.text
├── Integration
│ ├── ESBuildConfig.test.ts
│ └── MomentIntegration.test.ts
├── Layout
│ ├── QueryLayoutOptions.test.ts
│ ├── TaskLayout.test.ts
│ └── TaskLayoutOptions.test.ts
├── Obsidian
│ ├── AllCacheSampleData.ts
│ ├── Cache.test.ts
│ ├── File.test.replaceTaskWithTasks_issue_1680_-_Cannot_read_properties_of_undefined.approved.txt
│ ├── File.test.replaceTaskWithTasks_issue_688_-_block_referenced_task.approved.txt
│ ├── File.test.replaceTaskWithTasks_valid_2-task_test.approved.txt
│ ├── File.test.ts
│ ├── FileParser.test.ts
│ ├── ObsidianSearchFacilities.test.ts
│ ├── SimulatedFile.ts
│ └── __test_data__
│ │ ├── blockquote.json
│ │ ├── callout.json
│ │ ├── callout_custom.json
│ │ ├── callout_labelled.json
│ │ ├── callouts_nested_issue_2890_labelled.json
│ │ ├── callouts_nested_issue_2890_unlabelled.json
│ │ ├── code_block_in_task.json
│ │ ├── comments_html_style.json
│ │ ├── comments_markdown_style.json
│ │ ├── docs_sample_for_explain_query_file_defaults.json
│ │ ├── docs_sample_for_task_properties_reference.json
│ │ ├── empty_yaml.json
│ │ ├── example_kanban.json
│ │ ├── inheritance_1parent1child.json
│ │ ├── inheritance_1parent1child1newroot_after_header.json
│ │ ├── inheritance_1parent1child1sibling_emptystring.json
│ │ ├── inheritance_1parent2children.json
│ │ ├── inheritance_1parent2children1grandchild.json
│ │ ├── inheritance_1parent2children1sibling.json
│ │ ├── inheritance_1parent2children2grandchildren.json
│ │ ├── inheritance_1parent2children2grandchildren1sibling.json
│ │ ├── inheritance_1parent2children2grandchildren1sibling_start_with_heading.json
│ │ ├── inheritance_2roots_listitem_listitem_task.json
│ │ ├── inheritance_2siblings.json
│ │ ├── inheritance_listitem_listitem_task.json
│ │ ├── inheritance_listitem_task.json
│ │ ├── inheritance_listitem_task_siblings.json
│ │ ├── inheritance_non_task_child.json
│ │ ├── inheritance_rendering_sample.json
│ │ ├── inheritance_task_2listitem_3task.json
│ │ ├── inheritance_task_listitem.json
│ │ ├── inheritance_task_listitem_mixed_grandchildren.json
│ │ ├── inheritance_task_listitem_task.json
│ │ ├── inheritance_task_mixed_children.json
│ │ ├── internal_heading_links.json
│ │ ├── jason_properties.json
│ │ ├── link_in_file_body.json
│ │ ├── link_in_file_body_with_custom_display_text.json
│ │ ├── link_in_heading.json
│ │ ├── link_in_task_html.json
│ │ ├── link_in_task_markdown_link.json
│ │ ├── link_in_task_wikilink.json
│ │ ├── link_in_yaml.json
│ │ ├── link_is_broken.json
│ │ ├── links_everywhere.json
│ │ ├── list_statuses.json
│ │ ├── list_styles.json
│ │ ├── multi_line_task_and_list_item.json
│ │ ├── multiple_headings.json
│ │ ├── no_heading.json
│ │ ├── no_yaml.json
│ │ ├── non_tasks.json
│ │ ├── numbered_list_items_standard.json
│ │ ├── numbered_list_items_with_paren.json
│ │ ├── one_task.json
│ │ ├── query_file_defaults_all_options_false.json
│ │ ├── query_file_defaults_all_options_null.json
│ │ ├── query_file_defaults_all_options_true.json
│ │ ├── query_file_defaults_ignore_global_query.json
│ │ ├── query_file_defaults_short_mode.json
│ │ ├── query_using_properties.json
│ │ ├── yaml_1_alias.json
│ │ ├── yaml_2_aliases.json
│ │ ├── yaml_all_property_types_empty.json
│ │ ├── yaml_all_property_types_populated.json
│ │ ├── yaml_capitalised_property_name.json
│ │ ├── yaml_complex_example.json
│ │ ├── yaml_complex_example_standardised.json
│ │ ├── yaml_custom_number_property.json
│ │ ├── yaml_tags_field_added_by_obsidian_but_not_populated.json
│ │ ├── yaml_tags_had_value_then_was_emptied_by_obsidian.json
│ │ ├── yaml_tags_has_multiple_values.json
│ │ ├── yaml_tags_is_empty.json
│ │ ├── yaml_tags_is_empty_list.json
│ │ ├── yaml_tags_with_one_value_on_new_line.json
│ │ ├── yaml_tags_with_one_value_on_single_line.json
│ │ ├── yaml_tags_with_two_values_on_one_line.json
│ │ ├── yaml_tags_with_two_values_on_two_lines.json
│ │ └── zero_width.json
├── Query
│ ├── Explain
│ │ ├── DocsSamplesForExplain.test.explain_boolean_combinations.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_boolean_combinations.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_example_global_query.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_expands_dates.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_expands_dates.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_explains_task_block_with_global_query_active.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_explains_task_block_with_global_query_active.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_line_continuation_-_double_slash.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_line_continuation_-_double_slash.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_line_continuation_-_single_slash.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_line_continuation_-_single_slash.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_nested_boolean_combinations.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_nested_boolean_combinations.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_placeholders.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_placeholders.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_placeholders_error.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_placeholders_error.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_query_file_defaults_explanation.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_query_file_defaults_explanation.approved.query.text
│ │ ├── DocsSamplesForExplain.test.explain_query_file_defaults_file_content.approved.md
│ │ ├── DocsSamplesForExplain.test.explain_regular_expression.approved.explanation.text
│ │ ├── DocsSamplesForExplain.test.explain_regular_expression.approved.query.text
│ │ ├── DocsSamplesForExplain.test.ts
│ │ ├── Explainer.test.ts
│ │ └── Explanation.test.ts
│ ├── Filter
│ │ ├── BacklinkField.test.ts
│ │ ├── BlockingField.test.ts
│ │ ├── BooleanDelimiters.test.ts
│ │ ├── BooleanField.test.boolean_query_-_exhaustive_tests_explain.approved.txt
│ │ ├── BooleanField.test.boolean_query_-_exhaustive_tests_preprocess_-_rewrite.approved.txt
│ │ ├── BooleanField.test.boolean_query_-_exhaustive_tests_preprocess_-_split_line.approved.txt
│ │ ├── BooleanField.test.ts
│ │ ├── BooleanFieldVerify.ts
│ │ ├── BooleanPreprocessor.test.ts
│ │ ├── CancelledDateField.test.ts
│ │ ├── CreatedDateField.test.ts
│ │ ├── DateField.test.ts
│ │ ├── DependsOnField.test.ts
│ │ ├── DescriptionField.test.ts
│ │ ├── DoneDateField.test.ts
│ │ ├── DueDateField.test.due_date_approval_tests.approved.md
│ │ ├── DueDateField.test.ts
│ │ ├── ExcludeSubItemsField.test.ts
│ │ ├── Field.test.ts
│ │ ├── FilenameField.test.ts
│ │ ├── Filter.test.ts
│ │ ├── FilterInstruction.test.ts
│ │ ├── FolderField.test.ts
│ │ ├── FunctionField.test.ts
│ │ ├── HappensDateField.test.ts
│ │ ├── HeadingField.test.ts
│ │ ├── IdField.test.ts
│ │ ├── PathField.test.ts
│ │ ├── PriorityField.test.ts
│ │ ├── RandomField.test.ts
│ │ ├── RecurrenceField.test.ts
│ │ ├── RecurringField.test.ts
│ │ ├── ReferenceDocs
│ │ │ └── FilterReference
│ │ │ │ ├── DateFieldReference.test.explain_date_reference_filters-date-examples.approved.explanation.text
│ │ │ │ ├── DateFieldReference.test.explain_date_reference_last-this-next-week-month-quarter-year.approved.explanation.text
│ │ │ │ ├── DateFieldReference.test.explain_date_reference_last-this-next-weekday.approved.explanation.text
│ │ │ │ ├── DateFieldReference.test.ts
│ │ │ │ ├── filters-date-examples.input.query
│ │ │ │ ├── last-this-next-week-month-quarter-year.input.query
│ │ │ │ └── last-this-next-weekday.input.query
│ │ ├── RootField.test.ts
│ │ ├── ScheduledDateField.test.ts
│ │ ├── StartDateField.test.ts
│ │ ├── StatusField.test.ts
│ │ ├── StatusNameField.test.ts
│ │ ├── StatusTypeField.test.ts
│ │ ├── TagsField.test.ts
│ │ ├── TextField.test.explains_regular_expression_searches_bulk_test.approved.txt
│ │ ├── TextField.test.ts
│ │ └── UrgencyField.test.ts
│ ├── FilterParser.test.ts
│ ├── Group
│ │ ├── Grouper.test.ts
│ │ ├── GroupingTreeNode.test.ts
│ │ └── TaskGroups.test.ts
│ ├── Matchers
│ │ ├── RegexMatcher.test.ts
│ │ └── SubstringMatcher.test.ts
│ ├── Query.test.ts
│ ├── QueryComponentOrError.test.ts
│ ├── QueryFileDefaults.test.ts
│ ├── QueryRendererHelper.test.ts
│ ├── QueryResult.test.ts
│ ├── Scanner.test.continue_lines_visualise_continue_lines.approved.txt
│ ├── Scanner.test.scan_visualise_scanning.approved.txt
│ ├── Scanner.test.ts
│ ├── SearchInfo.test.ts
│ ├── Sort
│ │ ├── Sort.test.Sort_save_default_sort_order.approved.text
│ │ ├── Sort.test.Sort_visualise_date_impact_on_default_sort_order.approved.txt
│ │ ├── Sort.test.Sort_visualise_default_sort_order.approved.txt
│ │ ├── Sort.test.ts
│ │ └── Sorter.test.ts
│ └── Statement.test.ts
├── Renderer
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_fully_populated_task.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_fully_populated_task_-_short_mode.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_parent-child_items.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_parent-child_items_hidden.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_parent-child_items_reverse_sorted.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_should_render_non_task_check_box_when_global_filter_is_enabled.approved.html
│ ├── QueryResultsRenderer.test.QueryResultsRenderer_tests_should_render_tasks_without_their_parents.approved.html
│ ├── QueryResultsRenderer.test.ts
│ ├── RenderingTestHelpers.ts
│ ├── TaskFieldRenderer.test.ts
│ ├── TaskLineRenderer.test.Visualise_HTML_Full_task_-_full_mode.approved.html
│ ├── TaskLineRenderer.test.Visualise_HTML_Full_task_-_short_mode.approved.html
│ ├── TaskLineRenderer.test.Visualise_HTML_Minimal_task_-_full_mode.approved.html
│ ├── TaskLineRenderer.test.Visualise_HTML_Minimal_task_-_short_mode.approved.html
│ └── TaskLineRenderer.test.ts
├── Scripting
│ ├── ExpandPlaceholders.test.ts
│ ├── Expression.test.Expression_result.approved.md
│ ├── Expression.test.Expression_returns_and_functions.approved.md
│ ├── Expression.test.ts
│ ├── Includes.test.ts
│ ├── QueryContext.test.ts
│ ├── QueryProperties.test.query_file_properties.approved.md
│ ├── QueryProperties.test.query_search_properties.approved.md
│ ├── QueryProperties.test.ts
│ ├── ScriptingReference
│ │ ├── CustomFiltering
│ │ │ ├── CustomFilteringExamples.test.dates_task.cancelled_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.cancelled_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.created_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.created_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.done_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.done_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.due.advanced_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.due.advanced_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.due_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.due_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.happens_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.happens_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.scheduled_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.scheduled_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.dates_task.start_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.dates_task.start_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.filename_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.filename_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.folder_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.folder_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.path_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.path_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.root_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.file.root_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.heading_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.file_properties_task.heading_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.obsidian_properties_task.file.frontmatter_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.obsidian_properties_task.file.frontmatter_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.blockLink_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.descriptionWithoutTags_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.description_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.description_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.isDone_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.isDone_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.isRecurring_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.isRecurring_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.lineNumber_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.originalMarkdown_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.priorityName_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.priorityName_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.priorityNumber_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.priorityNumber_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.recurrenceRule_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.recurrenceRule_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.tags.advanced_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.tags.advanced_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.tags_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.tags_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.urgency_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.other_properties_task.urgency_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.name_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.name_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.nextSymbol_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.nextSymbol_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.symbol_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.symbol_results.approved.txt
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.type_docs.approved.md
│ │ │ ├── CustomFilteringExamples.test.statuses_task.status.type_results.approved.txt
│ │ │ └── CustomFilteringExamples.test.ts
│ │ ├── CustomGrouping
│ │ │ ├── CustomGroupingExamples.test.dates_task.cancelled_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.cancelled_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.created_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.created_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.done_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.done_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.due.advanced_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.due.advanced_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.due_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.due_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.happens_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.happens_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.scheduled_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.scheduled_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dates_task.start_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dates_task.start_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dependencies_task.dependsOn_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dependencies_task.dependsOn_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.dependencies_task.id_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.dependencies_task.id_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.filename_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.filename_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.folder_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.folder_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.path_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.path_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.root_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.file.root_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.heading_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.file_properties_task.heading_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.obsidian_properties_task.file.frontmatter_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.obsidian_properties_task.file.frontmatter_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.blockLink_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.blockLink_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.descriptionWithoutTags_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.descriptionWithoutTags_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.description_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.description_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.isDone_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.isDone_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.isRecurring_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.isRecurring_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.lineNumber_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.lineNumber_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.originalMarkdown_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.originalMarkdown_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priorityName_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priorityName_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priorityNumber_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priorityNumber_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priority_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.priority_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.recurrenceRule_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.recurrenceRule_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.tags.advanced_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.tags.advanced_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.tags_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.tags_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.urgency_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.other_properties_task.urgency_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.special_cases_formatting_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.special_cases_formatting_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.name_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.name_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.nextSymbol_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.nextSymbol_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.symbol_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.symbol_results.approved.txt
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.type_docs.approved.md
│ │ │ ├── CustomGroupingExamples.test.statuses_task.status.type_results.approved.txt
│ │ │ └── CustomGroupingExamples.test.ts
│ │ ├── CustomSorting
│ │ │ ├── CustomSortingExamples.test.dates_task.cancelled_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.cancelled_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.created_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.created_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.done_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.done_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.due.advanced_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.due_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.due_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.happens_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.happens_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.scheduled_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.scheduled_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.dates_task.start_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.dates_task.start_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.filename_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.filename_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.folder_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.folder_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.path_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.path_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.root_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.file_properties_task.file.root_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.file_properties_task.heading_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.file_properties_task.heading_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.blockLink_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.blockLink_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.descriptionWithoutTags_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.descriptionWithoutTags_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.description_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.description_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.isDone_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.isDone_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.isRecurring_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.isRecurring_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.lineNumber_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.lineNumber_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.originalMarkdown_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.originalMarkdown_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.priorityName_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.priorityName_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.priorityNumber_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.priorityNumber_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.recurrenceRule_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.recurrenceRule_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.tags.advanced_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.tags.advanced_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.tags_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.tags_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.other_properties_task.urgency_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.other_properties_task.urgency_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.name_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.name_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.nextSymbol_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.nextSymbol_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.symbol_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.symbol_results.approved.txt
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.type_docs.approved.md
│ │ │ ├── CustomSortingExamples.test.statuses_task.status.type_results.approved.txt
│ │ │ └── CustomSortingExamples.test.ts
│ │ └── VerifyFunctionFieldSamples.ts
│ ├── ScriptingTestHelpers.ts
│ ├── TaskExpression.test.ts
│ ├── TaskProperties.test.task_date_fields.approved.md
│ ├── TaskProperties.test.task_dates.approved.md
│ ├── TaskProperties.test.task_dependency_fields.approved.md
│ ├── TaskProperties.test.task_file_properties.approved.md
│ ├── TaskProperties.test.task_frontmatter_properties.approved.md
│ ├── TaskProperties.test.task_other_fields.approved.md
│ ├── TaskProperties.test.task_status.approved.md
│ ├── TaskProperties.test.ts
│ ├── TasksFile.test.TasksFile_-_reading_frontmatter_should_read_yaml_all_property_types_empty.approved.json
│ ├── TasksFile.test.TasksFile_-_reading_frontmatter_should_read_yaml_all_property_types_populated.approved.json
│ ├── TasksFile.test.TasksFile_-_reading_frontmatter_should_read_yaml_complex_example.approved.json
│ ├── TasksFile.test.TasksFile_-_reading_frontmatter_should_read_yaml_complex_example_standardised.approved.json
│ └── TasksFile.test.ts
├── Statuses
│ ├── Status.test.ts
│ ├── StatusRegistry.test.ts
│ ├── StatusRegistryReport.test.StatusRegistryReport_should_create_a_report.approved.md
│ ├── StatusRegistryReport.test.ts
│ ├── StatusSettingsReport.test.StatusSettingsReport_should_create_set_of_sample_task_lines,_excluding_duplicate_and_empty_symbols.approved.md
│ ├── StatusSettingsReport.test.StatusSettingsReport_should_create_set_of_sample_task_lines_include_global_filter.approved.md
│ ├── StatusSettingsReport.test.StatusSettingsReport_should_include_problems_in_table.approved.md
│ ├── StatusSettingsReport.test.StatusSettingsReport_should_tabulate_StatusSettings.approved.md
│ ├── StatusSettingsReport.test.ts
│ └── StatusValidator.test.ts
├── Suggestor
│ ├── Suggestor.test.auto-complete_with__dataview__symbols_offers_basic_completion_options_for_an_empty_task.approved.json
│ ├── Suggestor.test.auto-complete_with__dataview__symbols_offers_correct_options_for_partial_due_date_lines.approved.txt
│ ├── Suggestor.test.auto-complete_with__dataview__symbols_offers_correct_options_for_partial_recurrence_lines.approved.txt
│ ├── Suggestor.test.auto-complete_with__dataview__symbols_show_all_suggested_text.approved.md
│ ├── Suggestor.test.auto-complete_with__emoji__symbols_offers_basic_completion_options_for_an_empty_task.approved.json
│ ├── Suggestor.test.auto-complete_with__emoji__symbols_offers_correct_options_for_partial_due_date_lines.approved.txt
│ ├── Suggestor.test.auto-complete_with__emoji__symbols_offers_correct_options_for_partial_recurrence_lines.approved.txt
│ ├── Suggestor.test.auto-complete_with__emoji__symbols_show_all_suggested_text.approved.md
│ └── Suggestor.test.ts
├── Task
│ ├── ListItem.test.ts
│ ├── ListItemHelpers.ts
│ ├── OnCompletion.test.ts
│ ├── OnCompletion.test.visualise_completion-behaviour_visualise.approved.txt
│ ├── Recurrence.test.ts
│ ├── Task.test.task_dependencies_blocking_and_blocked.approved.txt
│ ├── Task.test.ts
│ ├── TaskDependency.test.ts
│ ├── TaskLocation.test.ts
│ ├── TaskRegularExpressions.test.ts
│ └── Urgency.test.ts
├── TaskSerializer
│ ├── DataviewTaskSerializer.test.ts
│ ├── DefaultTaskSerializer.test.ts
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dates_dataview-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dates_dataview-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dates_tasksPluginEmoji-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dates_tasksPluginEmoji-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dependencies_dataview-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dependencies_dataview-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Emojis_tabulate-emojis.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_OnCompletion_dataview-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_OnCompletion_dataview-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_OnCompletion_tasksPluginEmoji-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_OnCompletion_tasksPluginEmoji-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Priorities_dataview-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Priorities_dataview-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Priorities_tasksPluginEmoji-include.approved.md
│ ├── DocsSamplesForTaskFormats.test.Serializer_Priorities_tasksPluginEmoji-snippet.approved.md
│ ├── DocsSamplesForTaskFormats.test.ts
│ └── TaskSerializer.test.ts
├── TestingTools
│ ├── ApprovalTestHelpers.ts
│ ├── ApprovalTestsDemo.test.ApprovalTests_JsonVerify.approved.json
│ ├── ApprovalTestsDemo.test.ApprovalTests_SimpleVerify.approved.txt
│ ├── ApprovalTestsDemo.test.ts
│ ├── AutoApprovingReporter.ts
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify2.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify3.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify4.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify5.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify6.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify7.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify8.approved.txt
│ ├── CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify9.approved.txt
│ ├── CombinationApprovalsAsync.test.demonstrate_async_combination_approvals_documentation_example.approved.txt
│ ├── CombinationApprovalsAsync.test.ts
│ ├── CombinationApprovalsAsync.ts
│ ├── DateTestHelpers.ts
│ ├── FilterTestHelpers.ts
│ ├── HTMLHelpers.ts
│ ├── MockDataHelpers.ts
│ ├── RecurrenceBuilder.test.ts
│ ├── RecurrenceBuilder.ts
│ ├── RunCombinations.ts
│ ├── SampleTasks.ts
│ ├── SortingTestHelpers.ts
│ ├── StatusExamples.ts
│ ├── StatusesTestHelpers.ts
│ ├── TaskBuilder.test.ts
│ ├── TaskBuilder.ts
│ ├── TestHelpers.ts
│ ├── VerifyMarkdown.ts
│ └── VerifyStatuses.ts
├── __mocks__
│ └── obsidian.ts
├── __test_data__
│ └── MockDataForTogglingTasks
│ │ ├── 1680_task_line_number_past_end_of_file.json
│ │ ├── 688_toggle_block_referenced_line_overwrites_wrong_line.json
│ │ └── single_task_valid_data.json
├── global-setup.js
├── lib
│ ├── ExceptionTools.test.ts
│ ├── HTMLCharacterEntities.test.ts
│ ├── Lazy.test.ts
│ ├── PriorityTools.test.ts
│ ├── PropertyCategory.test.ts
│ ├── RecordHelpers.test.ts
│ ├── RegExpTools.test.ts
│ ├── StringHelpers.test.ts
│ ├── TemplatingPluginTools.test.TemplatingPluginTools_date_templating_error_sample_for_docs.approved.text
│ ├── TemplatingPluginTools.test.ts
│ └── TypeDetection.test.ts
└── ui
│ ├── DateEditor.test.ts
│ ├── DateEditorWrapper.svelte
│ ├── DependencyHelpers.test.ts
│ ├── EditInstructions
│ ├── DateInstructions.test.ts
│ ├── MenuDividerInstruction.test.ts
│ ├── PriorityInstructions.test.ts
│ ├── SetTaskDependenciesInstruction.test.ts
│ └── StatusInstructions.test.ts
│ ├── EditTask.test.Edit_Modal_HTML_snapshot_tests_should_match_snapshot.approved.html
│ ├── EditTask.test.Edit_Modal_HTML_snapshot_tests_should_match_snapshot_-_without_access_keys.approved.html
│ ├── EditTask.test.Exhaustive_editing_Edit_and_save_All_inputs.approved.txt
│ ├── EditTask.test.ts
│ ├── EditTaskHelpers.test.ts
│ ├── EditableTask.test.ts
│ ├── Menus
│ ├── DateMenu.test.ts
│ ├── MenuTestingHelpers.ts
│ ├── PostponeMenu.test.ts
│ ├── PriorityMenu.test.ts
│ └── StatusMenu.test.ts
│ └── RenderingTestHelpers.ts
├── tsconfig.json
├── versions.json
└── yarn.lock
/.eslintignore:
--------------------------------------------------------------------------------
1 | main.js
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.css text eol=lf
2 | *.git* text eol=lf
3 | *.html text eol=lf
4 | *.js text eol=lf
5 | *.json text eol=lf
6 | *.jsonc text eol=lf
7 | *.lock text eol=lf
8 | *.md text eol=lf
9 | *.mjs text eol=lf
10 | *.ps1 text eol=lf
11 | *.py text eol=lf
12 | *.sh text eol=lf
13 | *.svelte text eol=lf
14 | *.text text eol=lf
15 | *.ts text eol=lf
16 | *.txt text eol=lf
17 | *.yml text eol=lf
18 | LICENSE text eol=lf
19 |
20 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: ["claremacrae"]
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Ask a question
4 | url: https://github.com/obsidian-tasks-group/obsidian-tasks/discussions/new?category=q-a
5 | about: Ask for help with using the Tasks plugin. In case your question has been asked before, for quicker results you can search existing Discussion Q&As.
6 |
--------------------------------------------------------------------------------
/.markdownlint-cli2.jsonc:
--------------------------------------------------------------------------------
1 | {
2 | "globs": [
3 | "!contributing/_meta",
4 | "!docs/_meta",
5 | "!docs/snippets-embedded-in-multiple-pages",
6 | "!docs-snippets",
7 | "!node_modules",
8 | "!tests",
9 | "!resources/sample_vaults/Tasks-Demo/_meta/templates",
10 | "!resources/sample_vaults/Tasks-Demo/Test Data",
11 | "!resources/sample_vaults/Tasks-Demo/Manual Testing/Smoke test Kanban Integration.md"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | trailingComma: 'all',
3 | printWidth: 120,
4 | tabWidth: 4,
5 | useTabs: false,
6 | singleQuote: true,
7 | bracketSpacing: true
8 | };
9 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "DavidAnson.vscode-markdownlint",
4 | "gamunu.vscode-yarn",
5 | "mrmlnc.vscode-scss",
6 | "Orta.vscode-jest",
7 | "svelte.svelte-vscode"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "npm.packageManager": "yarn",
3 | "svelte.enable-ts-plugin" : true
4 | }
5 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines Obsidian Tasks
2 |
3 | ## Thank you
4 |
5 | Thank you for wanting to contribute to Obsidian Tasks!
6 | Every contribution is much appreciated!
7 |
8 | ## Extensive documentation for contributors
9 |
10 | Please visit [**tasks-contributing**](https://publish.obsidian.md/tasks-contributing/) for lots of useful information about contributing to Tasks.
11 |
12 | Many thanks!
13 |
--------------------------------------------------------------------------------
/contributing/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "showInlineTitle": false,
3 | "showLineNumber": true,
4 | "strictLineBreaks": true,
5 | "promptDelete": false,
6 | "alwaysUpdateLinks": true,
7 | "readableLineLength": false,
8 | "spellcheck": true,
9 | "livePreview": false,
10 | "newFileLocation": "current",
11 | "useTab": false,
12 | "tabSize": 2
13 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/appearance.json:
--------------------------------------------------------------------------------
1 | {
2 | "accentColor": "",
3 | "theme": "system",
4 | "enabledCssSnippets": [
5 | "publish-simulation"
6 | ]
7 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/command-palette.json:
--------------------------------------------------------------------------------
1 | {
2 | "pinned": [
3 | "templater-obsidian:insert-templater"
4 | ]
5 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/community-plugins.json:
--------------------------------------------------------------------------------
1 | [
2 | "note-refactor-obsidian",
3 | "reveal-active-file-button",
4 | "table-editor-obsidian",
5 | "copy-publish-url",
6 | "cmdr",
7 | "vault-name-status-bar",
8 | "templater-obsidian",
9 | "tag-wrangler",
10 | "broken-links",
11 | "obsidian-plugin-update-tracker",
12 | "vault-nickname"
13 | ]
--------------------------------------------------------------------------------
/contributing/.obsidian/hotkeys.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor:toggle-comments": [],
3 | "markdown:toggle-preview": [
4 | {
5 | "modifiers": [
6 | "Mod"
7 | ],
8 | "key": "E"
9 | },
10 | {
11 | "modifiers": [
12 | "Mod"
13 | ],
14 | "key": "/"
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/broken-links/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.2.2",
3 | "previousVersion": "1.2.1",
4 | "groupBy": 0,
5 | "expandedFolderItems": [],
6 | "expandedFileItems": [],
7 | "expandedLinkItems": [],
8 | "folderSort": 0,
9 | "fileSort": 3,
10 | "linkSort": 3,
11 | "linkFilter": {
12 | "filterString": "",
13 | "matchCase": false
14 | },
15 | "ignoredFolders": [
16 | "_meta"
17 | ],
18 | "consolidateLinks": false
19 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/broken-links/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "broken-links",
3 | "name": "Broken Links",
4 | "version": "1.2.2",
5 | "minAppVersion": "1.0.0",
6 | "description": "Find broken links in your vault that don't connect to notes.",
7 | "author": "ipshing",
8 | "authorUrl": "https://github.com/ipshing",
9 | "isDesktopOnly": false,
10 | "fundingUrl": "https://ko-fi.com/ipshing"
11 | }
12 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/cmdr/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"cmdr","name":"Commander","version":"0.5.2","minAppVersion":"1.4.0","description":"Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.","author":"jsmorabito & phibr0","authorUrl":"https://github.com/phibr0","fundingUrl":"https://ko-fi.com/phibr0","isDesktopOnly":false}
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/copy-publish-url/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "homeNote": "Welcome",
3 | "publishPath": "https://publish.obsidian.md/tasks-contributing/",
4 | "enableContext": true,
5 | "enableOpenUrl": true,
6 | "enableGithub": false,
7 | "remoteUrl": "",
8 | "branch": "main"
9 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/copy-publish-url/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "copy-publish-url",
3 | "name": "Publish and GitHub URL",
4 | "version": "0.4.5",
5 | "minAppVersion": "0.12.15",
6 | "description": "Copy or open the URL of the corresponding note on your Publish site. You can also open its Git commit history on GitHub.",
7 | "author": "kometenstaub",
8 | "authorUrl": "https://github.com/kometenstaub",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/note-refactor-obsidian/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "includeFirstLineAsNoteHeading": false,
3 | "excludeFirstLineInNote": false,
4 | "headingFormat": "#",
5 | "newFileLocation": 1,
6 | "customFolder": "",
7 | "fileNamePrefix": "",
8 | "transcludeByDefault": false,
9 | "noteLinkTemplate": "",
10 | "refactoredNoteTemplate": ""
11 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/note-refactor-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "note-refactor-obsidian",
3 | "name": "Note Refactor",
4 | "version": "1.8.2",
5 | "description": "Extract note content into new notes and split notes",
6 | "isDesktopOnly": false,
7 | "js": "main.js",
8 | "css": "style.css"
9 | }
10 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/note-refactor-obsidian/styles.css:
--------------------------------------------------------------------------------
1 | .note-refactor-filename .setting-item-info {
2 | margin-right: 0;
3 | }
4 |
5 | .note-refactor-filename .setting-item-name {
6 | padding-top: 10px;
7 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/obsidian-plugin-update-tracker/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "daysToSuppressNewUpdates": 0,
3 | "dismissedVersionsByPluginId": {},
4 | "showIconOnMobile": true,
5 | "excludeBetaVersions": true,
6 | "excludeDisabledPlugins": true,
7 | "minUpdateCountToShowIcon": 1,
8 | "hoursBetweenCheckingForUpdates": 0.5
9 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/obsidian-plugin-update-tracker/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian-plugin-update-tracker","name":"Plugin Update Tracker","version":"1.6.2","minAppVersion":"0.15.0","description":"Know when installed plugins have updates and evaluate the risk of upgrading","author":"Obsidian","authorUrl":"https://github.com/swar8080/obsidian-plugin-update-tracker","isDesktopOnly":false}
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/reveal-active-file-button/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "reveal-active-file-button",
3 | "name": "Reveal Active File Button",
4 | "version": "2.0.3",
5 | "minAppVersion": "0.12.11",
6 | "description": "Add a button to the top of the File Explorer, to reveal the active file.",
7 | "author": "Clare Macrae",
8 | "authorUrl": "https://claremacrae.co.uk",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/table-editor-obsidian/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "formatType": "normal",
3 | "showRibbonIcon": true,
4 | "bindEnter": true,
5 | "bindTab": true
6 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/tag-wrangler/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "tag-wrangler",
3 | "name": "Tag Wrangler",
4 | "author": "PJ Eby",
5 | "authorUrl": "https://github.com/pjeby",
6 | "version": "0.6.4",
7 | "minAppVersion": "1.5.8",
8 | "description": "Rename, merge, toggle, and search tags from the tags view",
9 | "fundingUrl": "https://dirtsimple.org/tips/tag-wrangler",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/tag-wrangler/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/.obsidian/plugins/tag-wrangler/styles.css
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/templater-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "templater-obsidian",
3 | "name": "Templater",
4 | "version": "2.11.1",
5 | "description": "Create and use templates",
6 | "minAppVersion": "1.5.0",
7 | "author": "SilentVoid",
8 | "authorUrl": "https://github.com/SilentVoid13",
9 | "helpUrl": "https://silentvoid13.github.io/Templater/",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/vault-name-status-bar/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "vault-name-status-bar",
3 | "name": "Vault name in status bar",
4 | "version": "1.1.1",
5 | "minAppVersion": "1.1.0",
6 | "description": "Vault name in status bar. can be reduced to ::",
7 | "author": "1C0D",
8 | "authorUrl": "https://github.com/1C0D",
9 | "isDesktopOnly": true
10 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/plugins/vault-name-status-bar/styles.css:
--------------------------------------------------------------------------------
1 | .status-bar-vault-name {
2 | font-size: 110%;
3 | font-weight: bold;
4 | color: #424cd8;
5 | }
--------------------------------------------------------------------------------
/contributing/.obsidian/publish.json:
--------------------------------------------------------------------------------
1 | {
2 | "siteId": "b7ecf6976bea3f73619cb44bfc567c62",
3 | "host": "publish-01.obsidian.md",
4 | "included": [
5 | "Building",
6 | "Code",
7 | "Contributing",
8 | "Debugging",
9 | "Dependencies",
10 | "Documentation",
11 | "Releases",
12 | "Testing"
13 | ],
14 | "excluded": [
15 | "_meta"
16 | ]
17 | }
--------------------------------------------------------------------------------
/contributing/Architecture Decisions/About Architecture Decisions.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # About Architecture Decisions
6 |
7 | ## Introduction
8 |
9 | This a collection of [Architecture decision records (ADRs)](https://github.com/joelparkerhenderson/architecture-decision-record) for the Tasks plugin.
10 |
11 | If a design decision was non-obvious, we will record the thought process here.
12 |
13 | - [[ADR-001 - Nomenclature for Reusable Instruction Blocks Feature]]
14 |
--------------------------------------------------------------------------------
/contributing/Building/About Building.md:
--------------------------------------------------------------------------------
1 | # Local setup and workflow for changes to code and tests
2 |
3 | ## Yarn Package Manager
4 |
5 | This project uses the Yarn package manager for Javascript, and several formatting and linting tools.
6 | Below are specific setup instructions for changing code and tests, as well as tips for local development workflow.
7 |
8 | - [[Setting up build environment]]
9 | - [[Local development]]
10 |
11 | ## IDE-specific advice
12 |
13 | - [[Developing with WebStorm]]
14 |
--------------------------------------------------------------------------------
/contributing/Code/class-hierarchy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Code/class-hierarchy.png
--------------------------------------------------------------------------------
/contributing/Code/code-docs-index-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Code/code-docs-index-page.png
--------------------------------------------------------------------------------
/contributing/Code/webstorm-open-code-docs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Code/webstorm-open-code-docs.png
--------------------------------------------------------------------------------
/contributing/Debugging/Sample flame chart with Timing labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Debugging/Sample flame chart with Timing labels.png
--------------------------------------------------------------------------------
/contributing/Documentation/How the documentation is generated.md:
--------------------------------------------------------------------------------
1 | # How the documentation is generated
2 |
3 | We use [Obsidian Publish](https://obsidian.md/publish) for our documentation.
4 | You can read more about it at the [Obsidian Help](https://help.obsidian.md/Obsidian+Publish/Introduction+to+Obsidian+Publish).
5 |
6 | The `docs/` folder contains a properly configured Obsidian vault.
7 |
8 | - To view and edit the Tasks help pages, **open `docs/` as a folder in Obsidian** on your machine.
9 |
--------------------------------------------------------------------------------
/contributing/Documentation/publish-icon-in-ribbon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Documentation/publish-icon-in-ribbon.png
--------------------------------------------------------------------------------
/contributing/Releases/About Releases.md:
--------------------------------------------------------------------------------
1 | # Releasing the Tasks Plugin
2 |
3 | - [[How do I make a release]]
4 |
--------------------------------------------------------------------------------
/contributing/Testing/How do I smoke-test the Tasks plugin.md:
--------------------------------------------------------------------------------
1 | # How do I smoke-test the Tasks plugin?
2 |
3 | #testing/manual-testing
4 |
5 | Follow the steps in [resources/sample_vaults/Tasks-Demo/Manual Testing/Smoke Testing the Tasks Plugin.md](https://github.com/obsidian-tasks-group/obsidian-tasks/blob/main/resources/sample_vaults/Tasks-Demo/Manual%20Testing/Smoke%20Testing%20the%20Tasks%20Plugin.md).
6 |
--------------------------------------------------------------------------------
/contributing/Testing/Jest Test Framework.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # Jest Test Framework
6 |
7 | #testing/automated-testing
8 |
9 | The tests use the [ts-jest](https://www.npmjs.com/package/ts-jest) wrapper around the
10 | [jest](https://jestjs.io) test framework.
11 |
12 | The [Expect](https://jestjs.io/docs/expect) page is a good reference for the many jest testing features.
13 |
--------------------------------------------------------------------------------
/contributing/Translation/Set up Visual Studio Code for translation work.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # Set up Visual Studio Code for translation work
6 |
7 | #i18n
8 |
9 | TODO...
10 |
11 | Contributions welcomed, to populate this page.
12 |
--------------------------------------------------------------------------------
/contributing/Translation/Translate a new string.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # Translate a new string
6 |
7 | #i18n
8 |
9 | TODO...
10 |
--------------------------------------------------------------------------------
/contributing/Translation/WebStorm Easy I18n plugin settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/contributing/Translation/WebStorm Easy I18n plugin settings.png
--------------------------------------------------------------------------------
/contributing/User Support/About User Support.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # About User Support
6 |
7 | A slowly-growing list of techniques found useful doing user support.
8 |
9 | - [[Getting test vault to Mobile Device]]
10 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/file path for redirecting alias.md:
--------------------------------------------------------------------------------
1 | <% tp.file.path(true).replace(/\.md$/, "") %>
2 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/image embed.md:
--------------------------------------------------------------------------------
1 | <%-*
2 | const caption = await tp.system.prompt("Caption for image");
3 | -%>
4 | 
5 | <%* tR += caption %>
6 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/insert 'Released' callout for part of feature.md:
--------------------------------------------------------------------------------
1 | > [!released]
2 | > X (Y and Z) was introduced in Tasks X.Y.Z.
3 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/insert 'Released' callout for whole feature.md:
--------------------------------------------------------------------------------
1 | > [!released]
2 | > Introduced in Tasks X.Y.Z.
3 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/new documentation file.md:
--------------------------------------------------------------------------------
1 | <% tp.file.include("[[standard frontmatter]]") %>
2 | # <% tp.file.title %>
3 |
4 | <% tp.file.include("[[tags for related pages]]") %>
5 | ##
6 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/standard frontmatter.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/tags for related pages.md:
--------------------------------------------------------------------------------
1 | #placeholder-edit-me/insert-one-or-more-tags-here-separated-by-spaces
2 |
--------------------------------------------------------------------------------
/contributing/_meta/templates/we are tracking this in issue.md:
--------------------------------------------------------------------------------
1 | <%-*
2 | const issue_number = await tp.system.prompt("GitHub Issue Number");
3 | -%>
4 | We are tracking this in [issue #<%* tR += issue_number %>](<%* tR += issue_number %>).
5 |
--------------------------------------------------------------------------------
/docs-snippets/snippet-callout-titles-bug.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | > [!Warning] Warning: Obsidian bug in versions 1.6.0 to 1.6.3 has caused some tasks not to be found
4 | > See [[Missing tasks in callouts with some Obsidian 1.6.x versions]] for how to ==make Obsidian 1.6.5 fix its metadata cache==, in case it was broken by earlier 1.6.x versions.
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .jekyll-cache
4 | .jekyll-metadata
5 | vendor
6 |
--------------------------------------------------------------------------------
/docs/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "livePreview": false,
3 | "readableLineLength": false,
4 | "strictLineBreaks": true,
5 | "showLineNumber": true,
6 | "spellcheck": true,
7 | "newFileLocation": "current",
8 | "attachmentFolderPath": "images",
9 | "useTab": false,
10 | "promptDelete": false,
11 | "showInlineTitle": false,
12 | "alwaysUpdateLinks": true,
13 | "useMarkdownLinks": false,
14 | "tabSize": 2
15 | }
--------------------------------------------------------------------------------
/docs/.obsidian/appearance.json:
--------------------------------------------------------------------------------
1 | {
2 | "accentColor": "",
3 | "theme": "system",
4 | "enabledCssSnippets": [
5 | "publish-simulation"
6 | ]
7 | }
--------------------------------------------------------------------------------
/docs/.obsidian/command-palette.json:
--------------------------------------------------------------------------------
1 | {
2 | "pinned": [
3 | "templater-obsidian:insert-templater"
4 | ]
5 | }
--------------------------------------------------------------------------------
/docs/.obsidian/community-plugins.json:
--------------------------------------------------------------------------------
1 | [
2 | "table-editor-obsidian",
3 | "copy-publish-url",
4 | "cmdr",
5 | "reveal-active-file-button",
6 | "templater-obsidian",
7 | "tag-wrangler",
8 | "vault-name-status-bar",
9 | "broken-links",
10 | "obsidian-auto-link-title",
11 | "obsidian-plugin-update-tracker",
12 | "vault-nickname"
13 | ]
--------------------------------------------------------------------------------
/docs/.obsidian/hotkeys.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor:toggle-comments": [],
3 | "markdown:toggle-preview": [
4 | {
5 | "modifiers": [
6 | "Mod"
7 | ],
8 | "key": "E"
9 | },
10 | {
11 | "modifiers": [
12 | "Mod"
13 | ],
14 | "key": "/"
15 | }
16 | ]
17 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/broken-links/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "broken-links",
3 | "name": "Broken Links",
4 | "version": "1.2.2",
5 | "minAppVersion": "1.0.0",
6 | "description": "Find broken links in your vault that don't connect to notes.",
7 | "author": "ipshing",
8 | "authorUrl": "https://github.com/ipshing",
9 | "isDesktopOnly": false,
10 | "fundingUrl": "https://ko-fi.com/ipshing"
11 | }
12 |
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/cmdr/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"cmdr","name":"Commander","version":"0.5.2","minAppVersion":"1.4.0","description":"Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.","author":"jsmorabito & phibr0","authorUrl":"https://github.com/phibr0","fundingUrl":"https://ko-fi.com/phibr0","isDesktopOnly":false}
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/copy-publish-url/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "homeNote": "Introduction",
3 | "publishPath": "https://publish.obsidian.md/tasks/",
4 | "enableContext": true,
5 | "enableOpenUrl": true,
6 | "enableGithub": false,
7 | "remoteUrl": "/",
8 | "branch": ""
9 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/copy-publish-url/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "copy-publish-url",
3 | "name": "Publish and GitHub URL",
4 | "version": "0.4.5",
5 | "minAppVersion": "0.12.15",
6 | "description": "Copy or open the URL of the corresponding note on your Publish site. You can also open its Git commit history on GitHub.",
7 | "author": "kometenstaub",
8 | "authorUrl": "https://github.com/kometenstaub",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-auto-link-title/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "regex": {},
3 | "lineRegex": {},
4 | "linkRegex": {},
5 | "linkLineRegex": {},
6 | "imageRegex": {},
7 | "shouldReplaceSelection": true,
8 | "enhanceDefaultPaste": true,
9 | "enhanceDropEvents": true,
10 | "websiteBlacklist": "",
11 | "maximumTitleLength": 0,
12 | "useNewScraper": false
13 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-auto-link-title/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian-auto-link-title","name":"Auto Link Title","version":"1.5.5","minAppVersion":"0.12.17","description":"This plugin automatically fetches the titles of links from the web","author":"Matt Furden","authorUrl":"https://github.com/zolrath","isDesktopOnly":false}
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-auto-link-title/styles.css:
--------------------------------------------------------------------------------
1 | /* no styles */
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-plugin-update-tracker/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "daysToSuppressNewUpdates": 0,
3 | "dismissedVersionsByPluginId": {},
4 | "showIconOnMobile": true,
5 | "excludeBetaVersions": true,
6 | "excludeDisabledPlugins": true,
7 | "minUpdateCountToShowIcon": 1,
8 | "hoursBetweenCheckingForUpdates": 0.5
9 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-plugin-update-tracker/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian-plugin-update-tracker","name":"Plugin Update Tracker","version":"1.6.2","minAppVersion":"0.15.0","description":"Know when installed plugins have updates and evaluate the risk of upgrading","author":"Obsidian","authorUrl":"https://github.com/swar8080/obsidian-plugin-update-tracker","isDesktopOnly":false}
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/reveal-active-file-button/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "reveal-active-file-button",
3 | "name": "Reveal Active File Button",
4 | "version": "2.0.3",
5 | "minAppVersion": "0.12.11",
6 | "description": "Add a button to the top of the File Explorer, to reveal the active file.",
7 | "author": "Clare Macrae",
8 | "authorUrl": "https://claremacrae.co.uk",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/table-editor-obsidian/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "formatType": "normal",
3 | "showRibbonIcon": true,
4 | "bindEnter": true,
5 | "bindTab": true
6 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/table-editor-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"table-editor-obsidian","name":"Advanced Tables","author":"Tony Grosinger","authorUrl":"https://grosinger.net","description":"Improved table navigation, formatting, manipulation, and formulas","isDesktopOnly":false,"minAppVersion":"1.0.0","version":"0.22.1","js":"main.js","fundingUrl":{"Github Sponsor":"https://github.com/sponsors/tgrosinger","Buy me a Coffee":"https://buymeacoffee.com/tgrosinger","Paypal":"https://paypal.me/tgrosinger"},"donation":"https://buymeacoffee.com/tgrosinger"}
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/tag-wrangler/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "tag-wrangler",
3 | "name": "Tag Wrangler",
4 | "author": "PJ Eby",
5 | "authorUrl": "https://github.com/pjeby",
6 | "version": "0.6.4",
7 | "minAppVersion": "1.5.8",
8 | "description": "Rename, merge, toggle, and search tags from the tags view",
9 | "fundingUrl": "https://dirtsimple.org/tips/tag-wrangler",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/tag-wrangler/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/.obsidian/plugins/tag-wrangler/styles.css
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/templater-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "templater-obsidian",
3 | "name": "Templater",
4 | "version": "2.11.1",
5 | "description": "Create and use templates",
6 | "minAppVersion": "1.5.0",
7 | "author": "SilentVoid",
8 | "authorUrl": "https://github.com/SilentVoid13",
9 | "helpUrl": "https://silentvoid13.github.io/Templater/",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/vault-name-status-bar/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "vault-name-status-bar",
3 | "name": "Vault name in status bar",
4 | "version": "1.1.1",
5 | "minAppVersion": "1.1.0",
6 | "description": "Vault name in status bar. can be reduced to ::",
7 | "author": "1C0D",
8 | "authorUrl": "https://github.com/1C0D",
9 | "isDesktopOnly": true
10 | }
--------------------------------------------------------------------------------
/docs/.obsidian/plugins/vault-name-status-bar/styles.css:
--------------------------------------------------------------------------------
1 | .status-bar-vault-name {
2 | font-size: 110%;
3 | font-weight: bold;
4 | color: #424cd8;
5 | }
--------------------------------------------------------------------------------
/docs/.obsidian/publish.json:
--------------------------------------------------------------------------------
1 | {
2 | "siteId": "40e62a316a834ff6f495ebf1d122cae6",
3 | "host": "publish-01.obsidian.md",
4 | "included": [
5 | "Advanced",
6 | "Getting Started",
7 | "How To",
8 | "Installation",
9 | "Other Plugins",
10 | "Queries",
11 | "Quick Reference",
12 | "Reference",
13 | "Getting Started/Statuses",
14 | "Reference/Status Collections",
15 | "images",
16 | "Support and Help"
17 | ],
18 | "excluded": [
19 | "_meta"
20 | ]
21 | }
--------------------------------------------------------------------------------
/docs/Other Plugins/Meta Bind Plugin.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # Meta Bind Plugin
6 |
7 | #plugin/meta-bind
8 |
9 | ## Introduction
10 |
11 | The [Meta Bind](https://github.com/mProjectsCode/obsidian-meta-bind-plugin) allows Obsidian users to make their notes interactive with inline input fields, metadata displays, and buttons.
12 |
13 | It can even be used to create [[Make a query user interface|simple user interface to customise Tasks queries]].
14 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: false
3 | ---
4 |
5 | # Documentation for Obsidian Tasks
6 |
7 | ## Extensive guides for documentors
8 |
9 | Please visit our new [**About the Documentation**](https://publish.obsidian.md/tasks-contributing/Documentation/About+Documentation) site for lots of useful information about contributing to Tasks.
10 |
11 | Many thanks!
12 |
--------------------------------------------------------------------------------
/docs/Reference/About Reference.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | aliases:
4 | - Reference/Reference
5 | ---
6 |
7 | # About Reference
8 |
9 | #index-pages
10 |
11 | This section provides reference material - content which is typically too detailed for other parts of the documentation.
12 |
13 | ## Reference section contents
14 |
15 | - [[About Task Formats|Task Formats]]
16 | - [[About Status Collections]]
17 |
--------------------------------------------------------------------------------
/docs/Scripting/Presets.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
5 | # Presets
6 |
7 | #feature/scripting
8 |
9 | ```text
10 | preset my_snippet_from_settings
11 | ```
12 |
13 | You can only include full lines (valid instructions).
14 |
--------------------------------------------------------------------------------
/docs/_meta/templates/file path for redirecting alias.md:
--------------------------------------------------------------------------------
1 | <% tp.file.path(true).replace(/\.md$/, "") %>
2 |
--------------------------------------------------------------------------------
/docs/_meta/templates/image embed.md:
--------------------------------------------------------------------------------
1 | <%-*
2 | const caption = await tp.system.prompt("Caption for image");
3 | -%>
4 | 
5 | <%* tR += caption %>
6 |
--------------------------------------------------------------------------------
/docs/_meta/templates/insert 'Released' callout for part of feature.md:
--------------------------------------------------------------------------------
1 | > [!released]
2 | > X (Y and Z) was introduced in Tasks X.Y.Z.
3 |
--------------------------------------------------------------------------------
/docs/_meta/templates/insert 'Released' callout for whole feature.md:
--------------------------------------------------------------------------------
1 | > [!released]
2 | > Introduced in Tasks X.Y.Z.
3 |
--------------------------------------------------------------------------------
/docs/_meta/templates/insert line in to What's New.md:
--------------------------------------------------------------------------------
1 | - X.Y.Z:
2 | -
3 |
--------------------------------------------------------------------------------
/docs/_meta/templates/new documentation file.md:
--------------------------------------------------------------------------------
1 | <% tp.file.include("[[standard frontmatter]]") %>
2 | # <% tp.file.title %>
3 |
4 | <% tp.file.include("[[tags for related pages]]") %>
5 | ## ...
6 |
--------------------------------------------------------------------------------
/docs/_meta/templates/sample mermaid diagram.md:
--------------------------------------------------------------------------------
1 | ```mermaid
2 | flowchart LR
3 | 1[Input Data]
4 | 2[Updated Code]
5 | 3{Output the same?}
6 | 1 --> 2
7 | 2 --> 3
8 |
9 | 4[Pass]
10 | 3---|Yes|4
11 | linkStyle 2 stroke:green
12 |
13 | 5[Fail]
14 | 6[Open diff tool to show changes]
15 | 3---|No|5
16 | 5 --> 6
17 |
18 | linkStyle 3 stroke:red
19 | ```
20 |
--------------------------------------------------------------------------------
/docs/_meta/templates/standard frontmatter.md:
--------------------------------------------------------------------------------
1 | ---
2 | publish: true
3 | ---
4 |
--------------------------------------------------------------------------------
/docs/_meta/templates/tags for related pages.md:
--------------------------------------------------------------------------------
1 | #placeholder-edit-me/insert-one-or-more-tags-here-separated-by-spaces
2 |
--------------------------------------------------------------------------------
/docs/_meta/templates/we are tracking this in discussion.md:
--------------------------------------------------------------------------------
1 | <%-*
2 | const discussion_number = await tp.system.prompt("GitHub Discussion Number");
3 | -%>
4 | We are tracking this in [discussion #<%* tR += discussion_number %>](https://github.com/obsidian-tasks-group/obsidian-tasks/discussions/<%* tR += discussion_number %>).
5 |
--------------------------------------------------------------------------------
/docs/_meta/templates/we are tracking this in issue.md:
--------------------------------------------------------------------------------
1 | <%-*
2 | const issue_number = await tp.system.prompt("GitHub Issue Number");
3 | -%>
4 | We are tracking this in [issue #<%* tR += issue_number %>](https://github.com/obsidian-tasks-group/obsidian-tasks/issues/<%* tR += issue_number %>).
5 |
--------------------------------------------------------------------------------
/docs/images/acme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/acme.png
--------------------------------------------------------------------------------
/docs/images/api-create-taskline-modal-quickadd-capture-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/api-create-taskline-modal-quickadd-capture-example.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-edit-incorrect-task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-edit-incorrect-task.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-after-due-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-after-due-date.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-after-due-emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-after-due-emoji.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-after-priority.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-after-priority.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-after-repeat-emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-after-repeat-emoji.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-after-repeat-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-after-repeat-text.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-menu-initial-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-menu-initial-menu.png
--------------------------------------------------------------------------------
/docs/images/auto-suggest-preview-incorrect-task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/auto-suggest-preview-incorrect-task.png
--------------------------------------------------------------------------------
/docs/images/backlinks-default-style.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/backlinks-default-style.png
--------------------------------------------------------------------------------
/docs/images/backlinks-snippet-tasks-plugin-backlinks-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/backlinks-snippet-tasks-plugin-backlinks-icon.png
--------------------------------------------------------------------------------
/docs/images/backlinks-snippet-tasks-plugin-backlinks-small-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/backlinks-snippet-tasks-plugin-backlinks-small-grey.png
--------------------------------------------------------------------------------
/docs/images/change-status-context-menu-with-custom-statuses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/change-status-context-menu-with-custom-statuses.png
--------------------------------------------------------------------------------
/docs/images/dataview-settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/dataview-settings.png
--------------------------------------------------------------------------------
/docs/images/date-context-menu-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/date-context-menu-1.png
--------------------------------------------------------------------------------
/docs/images/date-context-menu-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/date-context-menu-2.png
--------------------------------------------------------------------------------
/docs/images/date-picker-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/date-picker-1.png
--------------------------------------------------------------------------------
/docs/images/date-picker-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/date-picker-2.png
--------------------------------------------------------------------------------
/docs/images/important_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/important_project.png
--------------------------------------------------------------------------------
/docs/images/modal-date-picker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/modal-date-picker.png
--------------------------------------------------------------------------------
/docs/images/modal-showing-date-needed-on-recurring-task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/modal-showing-date-needed-on-recurring-task.png
--------------------------------------------------------------------------------
/docs/images/modal-showing-new-statuses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/modal-showing-new-statuses.png
--------------------------------------------------------------------------------
/docs/images/modal-showing-unparsed-emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/modal-showing-unparsed-emoji.png
--------------------------------------------------------------------------------
/docs/images/modal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/modal.png
--------------------------------------------------------------------------------
/docs/images/on-completion-after.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/on-completion-after.png
--------------------------------------------------------------------------------
/docs/images/on-completion-before.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/on-completion-before.png
--------------------------------------------------------------------------------
/docs/images/postpone-future-task-context-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/postpone-future-task-context-menu.png
--------------------------------------------------------------------------------
/docs/images/postpone-future-task-default-action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/postpone-future-task-default-action.png
--------------------------------------------------------------------------------
/docs/images/postpone-overdue-task-context-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/postpone-overdue-task-context-menu.png
--------------------------------------------------------------------------------
/docs/images/postpone-overdue-task-default-action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/postpone-overdue-task-default-action.png
--------------------------------------------------------------------------------
/docs/images/query-file-defaults-file-properties-controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/query-file-defaults-file-properties-controls.png
--------------------------------------------------------------------------------
/docs/images/query-file-defaults-meta-bind-controls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/query-file-defaults-meta-bind-controls.png
--------------------------------------------------------------------------------
/docs/images/quickadd-settings-configure-capture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/quickadd-settings-configure-capture.png
--------------------------------------------------------------------------------
/docs/images/quickadd-settings-create-capture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/quickadd-settings-create-capture.png
--------------------------------------------------------------------------------
/docs/images/rebuild-vault-metadata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/rebuild-vault-metadata.png
--------------------------------------------------------------------------------
/docs/images/reminder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/reminder.png
--------------------------------------------------------------------------------
/docs/images/search-headings-for-date-and-tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/search-headings-for-date-and-tag.png
--------------------------------------------------------------------------------
/docs/images/settings-auto-suggest-task-content.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-auto-suggest-task-content.png
--------------------------------------------------------------------------------
/docs/images/settings-core-statuses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-core-statuses.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-add-unknown-statuses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-add-unknown-statuses.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-added-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-added-1.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-added.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-added.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-dialog-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-dialog-1.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-dialog-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-dialog-2.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-important-loop-added.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-important-loop-added.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-initial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-initial.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-its-theme-first-few.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-its-theme-first-few.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-minimal-theme-first-few.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-minimal-theme-first-few.png
--------------------------------------------------------------------------------
/docs/images/settings-custom-statuses-new-empty-status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-custom-statuses-new-empty-status.png
--------------------------------------------------------------------------------
/docs/images/settings-global-filter-with-filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-global-filter-with-filter.png
--------------------------------------------------------------------------------
/docs/images/settings-global-filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-global-filter.png
--------------------------------------------------------------------------------
/docs/images/settings-global-query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-global-query.png
--------------------------------------------------------------------------------
/docs/images/settings-optional-date-fields.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-optional-date-fields.png
--------------------------------------------------------------------------------
/docs/images/settings-provide-access-keys-in-dialogs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-provide-access-keys-in-dialogs.png
--------------------------------------------------------------------------------
/docs/images/settings-recurrence-location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-recurrence-location.png
--------------------------------------------------------------------------------
/docs/images/settings-recurrence-remove-scheduled-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-recurrence-remove-scheduled-date.png
--------------------------------------------------------------------------------
/docs/images/settings-restart-after-change.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-restart-after-change.png
--------------------------------------------------------------------------------
/docs/images/settings-statuses-initial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-statuses-initial.png
--------------------------------------------------------------------------------
/docs/images/settings-statuses-report-samples.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-statuses-report-samples.png
--------------------------------------------------------------------------------
/docs/images/settings-statuses-report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-statuses-report.png
--------------------------------------------------------------------------------
/docs/images/settings-task-format.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-task-format.png
--------------------------------------------------------------------------------
/docs/images/settings-use-filename-for-date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/settings-use-filename-for-date.png
--------------------------------------------------------------------------------
/docs/images/show-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/show-tree.png
--------------------------------------------------------------------------------
/docs/images/snippet-slrvb-alternate-checkboxes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/snippet-slrvb-alternate-checkboxes.png
--------------------------------------------------------------------------------
/docs/images/styling-sample-tasks-default-appearance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/styling-sample-tasks-default-appearance.png
--------------------------------------------------------------------------------
/docs/images/styling-sample-tasks-slrvb-custom-checkboxes-modified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/styling-sample-tasks-slrvb-custom-checkboxes-modified.png
--------------------------------------------------------------------------------
/docs/images/styling-sample-tasks-slrvb-custom-checkboxes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/styling-sample-tasks-slrvb-custom-checkboxes.png
--------------------------------------------------------------------------------
/docs/images/styling-sample-tasks-style-settings-options-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/styling-sample-tasks-style-settings-options-1.png
--------------------------------------------------------------------------------
/docs/images/styling-sample-tasks-style-settings-options-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/styling-sample-tasks-style-settings-options-2.png
--------------------------------------------------------------------------------
/docs/images/task-dependencies-blocked-by-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/task-dependencies-blocked-by-example.png
--------------------------------------------------------------------------------
/docs/images/task-dependencies-party.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/task-dependencies-party.png
--------------------------------------------------------------------------------
/docs/images/task-dependencies-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/task-dependencies-search.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-alt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-alt.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-default.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-gray.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-stylish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-stylish.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-svg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-svg.png
--------------------------------------------------------------------------------
/docs/images/tasks-buttons-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-buttons-text.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-circular-checkboxes-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-circular-checkboxes-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-color-due-today-and-overdue-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-color-due-today-and-overdue-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-complete-example-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-complete-example-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-grid-layout-snippet-query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-grid-layout-snippet-query.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-grid-layout-snippet-reading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-grid-layout-snippet-reading.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-highlight-specific-tag-green-glow-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-highlight-specific-tag-green-glow-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-highlight-specific-tag-round-red-description-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-highlight-specific-tag-round-red-description-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-priority-as-checkbox-color-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-priority-as-checkbox-color-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-style-status-symbols-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-style-status-symbols-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-style-status-types-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-style-status-types-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks-plugin-tags-links-recurrence-gray-snippet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks-plugin-tags-links-recurrence-gray-snippet.png
--------------------------------------------------------------------------------
/docs/images/tasks_custom_groups_categorise_dates.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks_custom_groups_categorise_dates.png
--------------------------------------------------------------------------------
/docs/images/tasks_custom_groups_with_formatting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks_custom_groups_with_formatting.png
--------------------------------------------------------------------------------
/docs/images/tasks_grouped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks_grouped.png
--------------------------------------------------------------------------------
/docs/images/tasks_queries.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks_queries.png
--------------------------------------------------------------------------------
/docs/images/tasks_ungrouped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/tasks_ungrouped.png
--------------------------------------------------------------------------------
/docs/images/theme-anuppuccin-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-anuppuccin-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-aura-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-aura-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-border-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-border-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-ebullientworks-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-ebullientworks-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-its-reading-view-sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-its-reading-view-sample.png
--------------------------------------------------------------------------------
/docs/images/theme-its-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-its-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-lyt-mode-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-lyt-mode-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-minimal-reading-view-sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-minimal-reading-view-sample.png
--------------------------------------------------------------------------------
/docs/images/theme-minimal-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-minimal-reading-view.png
--------------------------------------------------------------------------------
/docs/images/theme-things-reading-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/docs/images/theme-things-reading-view.png
--------------------------------------------------------------------------------
/mdsnippets.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/SimonCropp/MarkdownSnippets/master/schema.json",
3 | "ExcludeDirectories": [ "node_modules", "contributing/_meta", "docs/_meta", "coverage", "venv" ],
4 | "Convention": "InPlaceOverwrite",
5 | "TocLevel": 5,
6 | "OmitSnippetLinks": true,
7 | "UrlPrefix": "https://github.com/obsidian-tasks-group/obsidian-tasks/blob/main"
8 | }
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.gitignore:
--------------------------------------------------------------------------------
1 | Tasks Plugin - Review and check your Statuses*
2 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "legacyEditor": false,
3 | "livePreview": false,
4 | "useTab": false,
5 | "readableLineLength": false,
6 | "newFileLocation": "current",
7 | "attachmentFolderPath": "./",
8 | "spellcheck": true,
9 | "showInlineTitle": false,
10 | "showLineNumber": true,
11 | "alwaysUpdateLinks": true,
12 | "showUnsupportedFiles": true,
13 | "promptDelete": false
14 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/appearance.json:
--------------------------------------------------------------------------------
1 | {
2 | "theme": "system",
3 | "enabledCssSnippets": [
4 | "tasks-code-block-blue-border",
5 | "js-engine-code-block-border",
6 | "dataview-block",
7 | "dataview-clare",
8 | "dataview-blocks",
9 | "widen-property-labels"
10 | ],
11 | "accentColor": ""
12 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/command-palette.json:
--------------------------------------------------------------------------------
1 | {
2 | "pinned": [
3 | "obsidian-tasks-plugin:edit-task",
4 | "obsidian-tasks-plugin:toggle-done",
5 | "quickadd:choice:bc717930-2b21-4755-b373-77df97ec953d"
6 | ]
7 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/broken-links/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "broken-links",
3 | "name": "Broken Links",
4 | "version": "1.2.2",
5 | "minAppVersion": "1.0.0",
6 | "description": "Find broken links in your vault that don't connect to notes.",
7 | "author": "ipshing",
8 | "authorUrl": "https://github.com/ipshing",
9 | "isDesktopOnly": false,
10 | "fundingUrl": "https://ko-fi.com/ipshing"
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/cmdr/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"cmdr","name":"Commander","version":"0.5.2","minAppVersion":"1.4.0","description":"Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.","author":"jsmorabito & phibr0","authorUrl":"https://github.com/phibr0","fundingUrl":"https://ko-fi.com/phibr0","isDesktopOnly":false}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/dataview/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "dataview",
3 | "name": "Dataview",
4 | "version": "0.5.68",
5 | "minAppVersion": "0.13.11",
6 | "description": "Complex data views for the data-obsessed.",
7 | "author": "Michael Brenan ",
8 | "authorUrl": "https://github.com/blacksmithgu",
9 | "helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/helpmate/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "acknowledgedWebUse": true,
3 | "includeObsidianHelp": true,
4 | "obsidianHelpUrl": "https://help.obsidian.md",
5 | "includeObsidianDevHelp": true,
6 | "obsidianDevHelpUrl": "https://docs.obsidian.md/Home",
7 | "includeHelpMateHelp": true,
8 | "userResources": "",
9 | "forceIframe": false
10 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/helpmate/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"helpmate","name":"HelpMate","version":"1.0.11","minAppVersion":"1.7.2","description":"Integrating help systems into the Obsidian UI.","author":"TfTHacker","authorUrl":"https://github.com/TfTHacker/","helpUrl":"https://tfthacker.com/HelpMate","isDesktopOnly":false,"fundingUrl":{"Support my work":"https://tfthacker.com/sponsor"}}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/hot-reload/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"hot-reload","name":"Hot Reload","author":"PJ Eby","authorUrl":"https://github.com/pjeby","version":"0.1.11","minAppVersion":"0.15.9","description":"Automatically reload in-development plugins when their files are changed","isDesktopOnly":true}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/js-engine/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "js-engine",
3 | "name": "JS Engine",
4 | "version": "0.3.2",
5 | "minAppVersion": "1.4.0",
6 | "description": "Run JavaScript from within your notes.",
7 | "author": "Moritz Jung",
8 | "authorUrl": "https://www.moritzjung.dev/",
9 | "fundingUrl": "https://github.com/sponsors/mProjectsCode",
10 | "helpUrl": "https://www.moritzjung.dev/obsidian-js-engine-plugin-docs/",
11 | "isDesktopOnly": false
12 | }
13 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/number-headings-obsidian/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "skipTopLevel": true,
3 | "firstLevel": 2,
4 | "maxLevel": 6,
5 | "styleLevel1": "1",
6 | "styleLevelOther": "1",
7 | "auto": false,
8 | "separator": "",
9 | "contents": "",
10 | "skipHeadings": "",
11 | "startAt": "",
12 | "off": false
13 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/number-headings-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "number-headings-obsidian",
3 | "name": "Number Headings",
4 | "version": "1.16.0",
5 | "minAppVersion": "1.4.0",
6 | "description": "Automatically number or re-number headings in an Obsidian document",
7 | "author": "Kevin Albrecht (onlyafly@gmail.com)",
8 | "authorUrl": "https://www.kevinalbrecht.com",
9 | "isDesktopOnly": false
10 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/number-headings-obsidian/styles.css:
--------------------------------------------------------------------------------
1 | div.number-headings-button-container > button {
2 | font-weight: normal;
3 | }
4 |
5 | div.number-headings-question {
6 | font-weight: bold;
7 | margin-bottom: 10px;
8 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-kanban/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "show-checkboxes": false
3 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-kanban/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "obsidian-kanban",
3 | "name": "Kanban",
4 | "version": "2.0.51",
5 | "minAppVersion": "1.0.0",
6 | "description": "Create markdown-backed Kanban boards in Obsidian.",
7 | "author": "mgmeyers",
8 | "authorUrl": "https://github.com/mgmeyers/obsidian-kanban",
9 | "helpUrl": "https://publish.obsidian.md/kanban/Obsidian+Kanban+Plugin",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-plugin-update-tracker/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "daysToSuppressNewUpdates": 0,
3 | "dismissedVersionsByPluginId": {},
4 | "showIconOnMobile": true,
5 | "excludeBetaVersions": true,
6 | "excludeDisabledPlugins": true,
7 | "minUpdateCountToShowIcon": 1,
8 | "hoursBetweenCheckingForUpdates": 1.5
9 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-plugin-update-tracker/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian-plugin-update-tracker","name":"Plugin Update Tracker","version":"1.6.2","minAppVersion":"0.15.0","description":"Know when installed plugins have updates and evaluate the risk of upgrading","author":"Obsidian","authorUrl":"https://github.com/swar8080/obsidian-plugin-update-tracker","isDesktopOnly":false}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-plugin-update-tracker/styles.css
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-style-settings/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "checkbox@@check-color": true,
3 | "checkbox@@check-bg": true,
4 | "checkbox@@chst-reg": true,
5 | "checkbox@@chst-chk": true,
6 | "anuppuccin-theme-settings@@anp-custom-checkboxes": true,
7 | "anuppuccin-theme-settings@@anp-speech-bubble": true
8 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-style-settings/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian-style-settings","name":"Style Settings","version":"1.0.9","minAppVersion":"0.11.5","description":"Offers controls for adjusting theme, plugin, and snippet CSS variables.","author":"mgmeyers","authorUrl":"https://github.com/mgmeyers/obsidian-style-settings","isDesktopOnly":false}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-tasks-plugin/.hotreload:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian-tasks-plugin/.hotreload
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian42-brat/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "pluginList": [
3 | "pjeby/hot-reload"
4 | ],
5 | "pluginSubListFrozenVersion": [],
6 | "themesList": [],
7 | "updateAtStartup": false,
8 | "updateThemesAtStartup": false,
9 | "enableAfterInstall": true,
10 | "loggingEnabled": false,
11 | "loggingPath": "BRAT-log",
12 | "loggingVerboseEnabled": false,
13 | "debuggingMode": false,
14 | "notificationsEnabled": true
15 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian42-brat/manifest.json:
--------------------------------------------------------------------------------
1 | {"id":"obsidian42-brat","name":"BRAT","version":"1.0.6","minAppVersion":"1.7.2","description":"Easily install a beta version of a plugin for testing.","author":"TfTHacker","authorUrl":"https://github.com/TfTHacker/obsidian42-brat","helpUrl":"https://tfthacker.com/BRAT","isDesktopOnly":false,"fundingUrl":{"Visit my site":"https://tfthacker.com"}}
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/obsidian42-brat/styles.css:
--------------------------------------------------------------------------------
1 | .brat-modal .modal-button-container {
2 | margin-top: 5px !important;
3 | }
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/open-plugin-settings/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "pluginCmdr": [
3 | {
4 | "id": "obsidian-tasks-plugin",
5 | "name": "Tasks",
6 | "commandName": "Open Tasks plugin settings"
7 | }
8 | ]
9 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/open-plugin-settings/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "open-plugin-settings",
3 | "name": "Open Plugin Settings",
4 | "version": "1.3.2",
5 | "minAppVersion": "0.15.0",
6 | "description": "Create a command to open a specified plugin settings.",
7 | "author": "Mara-Li",
8 | "authorUrl": "https://www.github.com/lisandra-dev",
9 | "fundingUrl": "https://ko-fi.com/lisandra_dev",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/quickadd/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "quickadd",
3 | "name": "QuickAdd",
4 | "version": "1.13.2",
5 | "minAppVersion": "1.6.0",
6 | "description": "Quickly add new pages or content to your vault.",
7 | "author": "Christian B. B. Houmann",
8 | "authorUrl": "https://bagerbach.com",
9 | "fundingUrl": "https://www.buymeacoffee.com/chhoumann",
10 | "helpUrl": "https://quickadd.obsidian.guide/docs/",
11 | "isDesktopOnly": false
12 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/reveal-active-file-button/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "reveal-active-file-button",
3 | "name": "Reveal Active File Button",
4 | "version": "2.0.3",
5 | "minAppVersion": "0.12.11",
6 | "description": "Add a button to the top of the File Explorer, to reveal the active file.",
7 | "author": "Clare Macrae",
8 | "authorUrl": "https://claremacrae.co.uk",
9 | "isDesktopOnly": false
10 | }
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/table-editor-obsidian/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "formatType": "normal",
3 | "showRibbonIcon": true,
4 | "bindEnter": true,
5 | "bindTab": true
6 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/templater-obsidian/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "templater-obsidian",
3 | "name": "Templater",
4 | "version": "2.11.1",
5 | "description": "Create and use templates",
6 | "minAppVersion": "1.5.0",
7 | "author": "SilentVoid",
8 | "authorUrl": "https://github.com/SilentVoid13",
9 | "helpUrl": "https://silentvoid13.github.io/Templater/",
10 | "isDesktopOnly": false
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/vault-name-status-bar/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "vault-name-status-bar",
3 | "name": "Vault name in status bar",
4 | "version": "1.1.1",
5 | "minAppVersion": "1.1.0",
6 | "description": "Vault name in status bar. can be reduced to ::",
7 | "author": "1C0D",
8 | "authorUrl": "https://github.com/1C0D",
9 | "isDesktopOnly": true
10 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/plugins/vault-name-status-bar/styles.css:
--------------------------------------------------------------------------------
1 | .status-bar-vault-name {
2 | font-size: 110%;
3 | font-weight: bold;
4 | color: #424cd8;
5 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/dataview-blocks.css:
--------------------------------------------------------------------------------
1 | :not(.callout-content) > .block-language-dataview {
2 | background-color: #fcfcfc;
3 | padding: 5px 5px;
4 | border: 2px solid #ba55ff;
5 | border-radius: 5px;
6 | margin: 1em 0;
7 | }
8 |
9 | :not(.callout-content) > .block-language-dataviewjs {
10 | background-color: #fcfcfc;
11 | padding: 5px 5px;
12 | border: 2px solid #ff55f1;
13 | border-radius: 5px;
14 | margin: 1em 0;
15 | }
16 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/js-engine-code-block-border.css:
--------------------------------------------------------------------------------
1 | /* Make JS Engine code blocks stand out visually */
2 | :not(.callout-content) > .block-language-js-engine {
3 | padding: 5px 15px;
4 | border: 2px solid var(--color-red);
5 | border-radius: 5px;
6 | margin: 1em 0;
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-buttons-alt.css:
--------------------------------------------------------------------------------
1 | .tasks-edit::after {
2 | content: '\1f589';
3 | }
4 |
5 | .tasks-postpone::after {
6 | content: '\2bee';
7 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-buttons-gray.css:
--------------------------------------------------------------------------------
1 | .tasks-edit, .tasks-postpone {
2 | filter: grayscale(100%);
3 | }
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-buttons-stylish.css:
--------------------------------------------------------------------------------
1 | .tasks-edit::after {
2 | content: '\1f58b';
3 | }
4 |
5 | .tasks-postpone::after {
6 | content: '\1f4a4';
7 | }
8 |
9 | .tasks-edit, .tasks-postpone {
10 | background: linear-gradient(to bottom, #ffda89, #ffa07a);
11 | padding: 2px 5px;
12 | border-radius: var(--radius-s);
13 | box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
14 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-buttons-text.css:
--------------------------------------------------------------------------------
1 | .tasks-edit, .tasks-postpone {
2 | font-size: var(--font-ui-smaller);
3 | font-variant: small-caps;
4 | font-weight: bold;
5 | margin-left: 1em;
6 | }
7 |
8 | .tasks-edit::after {
9 | content: '[edit]';
10 | }
11 |
12 | .tasks-postpone::after {
13 | content: '[move]';
14 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-code-block-blue-border.css:
--------------------------------------------------------------------------------
1 | /* Make Tasks code blocks stand out visually, to distinguish them from Task lists in Reading mode */
2 | :not(.callout-content) > .block-language-tasks {
3 | padding: 5px 15px;
4 | border: 2px solid var(--color-blue);
5 | border-radius: 5px;
6 | margin: 1em 0;
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-backlinks-small-grey.css:
--------------------------------------------------------------------------------
1 | /* By David Phillips (autonia) https://github.com/autonia
2 | From https://github.com/obsidian-tasks-group/obsidian-tasks/discussions/622#discussioncomment-2649299
3 | */
4 | .tasks-backlink {
5 | font-size: 0.7em;
6 | opacity: 0.6;
7 | filter: grayscale(60%);
8 | }
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-circular-checkboxes.css:
--------------------------------------------------------------------------------
1 | ul > li.plugin-tasks-list-item .task-list-item-checkbox {
2 | margin-inline-start: 0;
3 | margin: 5px 2px;
4 | border-radius: 50%;
5 | }
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-explain-text-blue.css:
--------------------------------------------------------------------------------
1 | /* Make the Tasks plugin's 'explain' output stand out in blue */
2 | .plugin-tasks-query-explanation {
3 | color: var(--color-blue);
4 | }
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-highlight-specific-tag-green-glow.css:
--------------------------------------------------------------------------------
1 | a.tag[data-tag-name="#task/atHome"] {
2 | box-shadow: 0 0 5px green;
3 | }
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-highlight-specific-tag-round-red-description.css:
--------------------------------------------------------------------------------
1 | .task-description span:has(.tag[data-tag-name="#task/strategic"]) {
2 | background: #ffbfcc;
3 | border-radius: 10px;
4 | padding: 2px 8px;
5 | }
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-style-status-symbols.css:
--------------------------------------------------------------------------------
1 | li.task-list-item[data-task="/"] .task-list-item-checkbox {
2 | box-shadow: 0 0 10px green !important;
3 | }
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-style-status-types.css:
--------------------------------------------------------------------------------
1 | li.task-list-item[data-task-status-type="TODO"] .task-list-item-checkbox,
2 | li.task-list-item[data-task-status-type="IN_PROGRESS"] .task-list-item-checkbox {
3 | box-shadow: 0 0 10px green !important;
4 | }
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/tasks-plugin-tags-links-recurrence-gray.css:
--------------------------------------------------------------------------------
1 | .tasks-list-text a.tag {
2 | color: var(--list-marker-color);
3 | }
4 |
5 | .tasks-backlink a.internal-link {
6 | color: var(--list-marker-color);
7 | }
8 |
9 | .task-recurring {
10 | color: var(--list-marker-color);
11 | }
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/snippets/widen-property-labels.css:
--------------------------------------------------------------------------------
1 | /* Make property labels wider, to fit the names of Tasks-specific properties */
2 | .metadata-content {
3 | --metadata-label-width: 14em;
4 | }
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/AnuPpuccin/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "AnuPpuccin",
3 | "version": "1.5.0",
4 | "minAppVersion": "1.6.0",
5 | "author": "Anubis",
6 | "authorUrl": "https://github.com/AnubisNekhet"
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Aura/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Aura",
3 | "minAppVersion": "1.6.0",
4 | "author": "Ashwin Jadhav",
5 | "authorUrl": "https://github.com/ashwinjadhav818/",
6 | "version": "2.3.3"
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Border/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Border",
3 | "version": "1.12.11",
4 | "minAppVersion": "0.16.0",
5 | "author": "Akifyss",
6 | "authorUrl": "https://github.com/Akifyss"
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Ebullientworks/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Ebullientworks",
3 | "version": "1.0.2",
4 | "minAppVersion": "0.16.0",
5 | "author": "Ebullientworks",
6 | "authorUrl": "https://github.com/ebullient",
7 | "fundingUrl": "https://www.buymeacoffee.com/ebullient"
8 | }
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/ITS Theme/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ITS Theme",
3 | "version": "1.3.38",
4 | "minAppVersion": "0.16.0",
5 | "author": "SlRvb",
6 | "authorUrl": "https://github.com/SlRvb"
7 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/LYT Mode/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "LYT Mode",
3 | "version": "1.9.1",
4 | "minAppVersion": "1.0",
5 | "author": "Nick Milo"
6 | }
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Minimal/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Minimal",
3 | "version": "8.0.0",
4 | "minAppVersion": "1.9.0",
5 | "author": "@kepano",
6 | "authorUrl": "https://twitter.com/kepano",
7 | "fundingUrl": "https://www.buymeacoffee.com/kepano"
8 | }
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Prism/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Prism",
3 | "version": "3.6.0",
4 | "minAppVersion": "1.6.0",
5 | "author": "Damian Korcz",
6 | "authorUrl": "https://github.com/damiankorcz",
7 | "fundingUrl": "https://www.buymeacoffee.com/DamianKorcz"
8 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/.obsidian/themes/Things/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Things",
3 | "version": "2.1.20",
4 | "minAppVersion": "1.0.0",
5 | "author": "@colineckert",
6 | "authorUrl": "https://twitter.com/colineckert"
7 | }
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Formats/All Formats Parsing.md:
--------------------------------------------------------------------------------
1 | # All Formats Parsing
2 |
3 | ## Tasks Format
4 |
5 | - [/] #task This was Tasks format ⏫ 🔁 every day 🛫 2023-04-05 ⏳ 2023-04-06 📅 2023-04-07
6 |
7 | ## Dataview format
8 |
9 | - [/] #task This was dataview [priority:: high] [repeat:: every day] [start:: 2023-04-05] [scheduled:: 2023-04-06] [due:: 2023-04-07]
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Functions/Fields for Functions - Demo.md:
--------------------------------------------------------------------------------
1 | # Fields for Functions - Demo
2 |
3 | ## Status
4 |
5 | ```tasks
6 | group by function task.status.name
7 | group by function task.status.symbol
8 | group by function task.status.nextSymbol
9 | group by function task.status.type
10 |
11 | limit 10
12 | ```
13 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/How To/Find tasks in notes with particular tag.md:
--------------------------------------------------------------------------------
1 | # Find tasks in notes with particular tag
2 |
3 | Suppose we wanted to find all tasks in notes that had a particular tag `#examples` in the frontmatter.
4 |
5 | Since Tasks X.Y.Z, this is now possible in Tasks queries:
6 |
7 | ```tasks
8 | filter by function task.file.property('tags').includes('#examples')
9 | ```
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Important Project.md:
--------------------------------------------------------------------------------
1 | # Important Project
2 |
3 | - [ ] #task Something about interwebs 📅 2021-11-22
4 | - [x] #task Something about s.th. ⏳ 2021-11-21 ✅ 2021-11-21
5 |
6 | ## Trash is important
7 |
8 | - [ ] #task Also: take out the trash!
9 | - [ ] #task Throw the trash away
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Edit Task Modal samples.md:
--------------------------------------------------------------------------------
1 | # Edit Task Modal samples
2 |
3 | ## Task to edit
4 |
5 | - [/] #task Task with every field set 🆔 y3yryw ⛔ c5mw2c,2ypqea 🔺 🔁 every April and December on the 1st and 24th ➕ 2024-04-27 🛫 2024-04-28 ⏳ 2024-04-29 📅 2024-04-30
6 |
7 | ## Tasks for testing dependencies
8 |
9 | - [ ] #task Sample 1 🆔 c5mw2c
10 | - [ ] #task Sample 2 🆔 2ypqea
11 | - [ ] #task Sample 3 ⛔ y3yryw
12 | - [ ] #task Sample 4 ⛔ y3yryw
13 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Frontmatter/Project 1.md:
--------------------------------------------------------------------------------
1 | ---
2 | project: proj1
3 | ---
4 |
5 | # Project 1
6 |
7 | - [ ] #task Task in 'Project 1'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Frontmatter/Project 2.md:
--------------------------------------------------------------------------------
1 | ---
2 | project: proj2
3 | ---
4 |
5 | # Project 2
6 |
7 | - [ ] #task Task in 'Project 2' [[#Project 2]]
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Internal Heading Links/Internal Heading Links.md:
--------------------------------------------------------------------------------
1 | # Internal Heading Links
2 |
3 | ```tasks
4 | filename includes internal_heading_links
5 |
6 | sort by function task.lineNumber
7 |
8 | group by heading
9 |
10 | hide backlinks
11 | ```
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Internal Heading Links/Other File.md:
--------------------------------------------------------------------------------
1 | # Other File
2 |
3 | ## Some Header
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/README - Manual Testing.md:
--------------------------------------------------------------------------------
1 | # README - Manual Testing
2 |
3 | ## Purpose
4 |
5 | This folder contains files that are useful for:
6 |
7 | - verifying the existence of reported bugs
8 | - manual testing of proposed fixes for the bugs
9 |
10 | ## File naming
11 |
12 | Where files are for testing individual issues, PRs or discussions, please name the file like this:
13 |
14 | `[issue number] - [brief summary]`
15 |
16 | Thank you.
17 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Scheduled Date Implied/Nov 05, 2022.md:
--------------------------------------------------------------------------------
1 | # Nov 05, 2022
2 |
3 | - [ ] #task Scheduled date read from filename which **exactly matches** the custom format in settings - `MMM DD, YYYY`
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Scheduled Date Implied/Scheduled Implied - 2022-11-05.md:
--------------------------------------------------------------------------------
1 | # Scheduled Implied - 2022-11-05
2 |
3 | - [ ] #task Scheduled date read from filename which **contains** the built-in format `YYYY-MM-DD`
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Scheduled Date Implied/Scheduled Implied - 20221105.md:
--------------------------------------------------------------------------------
1 | # Scheduled Implied - 20221105
2 |
3 | - [ ] #task Scheduled date read from filename which **contains** the built-in format `YYYY-MM-DD`
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Scheduled Date Implied/Scheduled Implied - Nov 05, 2022.md:
--------------------------------------------------------------------------------
1 | # Scheduled Implied - Nov 05, 2022
2 |
3 | - [ ] #task No date scheduled - should **not** use date in filename as scheduled date, as the date in the filename is **only a substring** of the custom format in settings - `MMM DD, YYYY`
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Scheduled Date Implied/Search for Scheduled Dates.md:
--------------------------------------------------------------------------------
1 | # Search for Scheduled Dates
2 |
3 | Look at the backlinks on the tasks, to see their filenames, to understand the behaviour.
4 |
5 | None of these tasks has any ⏳ scheduled date value.
6 |
7 | ```tasks
8 | folder includes {{query.file.folder}}
9 | group by function task.scheduled.moment ? '✅ Has scheduled date from filename' : '❌ No scheduled date from filename'
10 | group by scheduled
11 | ```
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - block-language-tasks selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - block-language-tasks selected.png
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - hover over block-language-tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - hover over block-language-tasks.png
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - select an element.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsidian-tasks-group/obsidian-tasks/a29e7f900193571cee1b0982be21978784512fc5/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - select an element.png
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Seeing the Query as HTML/HTML from Query - short mode - empty list.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Smoke test Kanban Integration.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | kanban-plugin: board
4 |
5 | ---
6 |
7 | ## To Do
8 |
9 | - [ ] #task Should show Tasks context menu
10 | - [ ] Should not show Tasks context menu
11 |
12 |
13 |
14 |
15 | %% kanban:settings
16 | ```
17 | {"kanban-plugin":"board","list-collapse":[false]}
18 | ```
19 | %%
20 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Manual Testing/Task Toggling Scenarios/Embed File in to Note - File to Embed.md:
--------------------------------------------------------------------------------
1 | # Embed File in to Note - File to Embed
2 |
3 | ## Category 3
4 |
5 | - [ ] #task task3a
6 | - [ ] #task task3b
7 | - [ ] #task task3c
8 |
9 | ## Category 4
10 |
11 | - [ ] #task task4a
12 | - [ ] #task task4b - has section and task number 0 when shown embedded in another file ^fromseparatefile
13 | - [ ] #task task4c
14 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Settings Files/data 1.22.0.json:
--------------------------------------------------------------------------------
1 | {
2 | "globalFilter": "#task",
3 | "removeGlobalFilter": true,
4 | "setDoneDate": true,
5 | "autoSuggestInEditor": true,
6 | "autoSuggestMinMatch": 0,
7 | "autoSuggestMaxItems": 6,
8 | "provideAccessKeys": true,
9 | "useFilenameAsScheduledDate": true,
10 | "filenameAsDateFolders": [],
11 | "features": {
12 | "INTERNAL_TESTING_ENABLED_BY_DEFAULT": true
13 | }
14 | }
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/.gitignore:
--------------------------------------------------------------------------------
1 | tasks-stress-test*
2 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 1.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 1
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 100.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 100
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 1000.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 1000
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 150.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 150
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 200.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 200
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 2000.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 2000
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 25.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 25
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 250.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 250
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 3000.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 3000
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 4000.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 4000
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 50.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 50
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 500.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 500
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 5000.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 5000
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Stress Test/limit 750.md:
--------------------------------------------------------------------------------
1 | ---
2 | creation date: 2024-03-23 15:14
3 | tags:
4 | aliases:
5 | -
6 | ---
7 |
8 | # limit 750
9 |
10 | ```tasks
11 | folder includes {{query.file.folder}}
12 | sort by path
13 |
14 | # Use the filename as an instruction:
15 | {{query.file.filenameWithoutExtension}}
16 |
17 | #explain
18 | ```
19 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Styling/Styling the Backlinks.md:
--------------------------------------------------------------------------------
1 | # Styling the Backlinks
2 |
3 | Here is an example task block that does not hide any components of the output.
4 |
5 | It shows that the the backlink (the file and heading names) can quite dominate the results.
6 |
7 | ```tasks
8 | not done
9 | description includes trash
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Tasks.md:
--------------------------------------------------------------------------------
1 | # Tasks
2 |
3 | ## All
4 |
5 | ```tasks
6 | ```
7 |
8 | ## Open tasks from Important Project
9 |
10 | ```tasks
11 | not done
12 | path includes Important Project
13 | ```
14 |
15 | ## Due before 6th of December
16 |
17 | ```tasks
18 | not done
19 | due before 2021-12-06
20 | ```
21 |
22 | ## Short Mode
23 |
24 | ```tasks
25 | not done
26 | due before 2021-12-06
27 | short mode
28 | ```
29 |
30 | ## No match
31 |
32 | ```tasks
33 | not done
34 | done after 2021-11-21
35 | ```
36 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/blockquote.md:
--------------------------------------------------------------------------------
1 | # blockquote
2 |
3 | > - [ ] #task Task in 'blockquote'
4 | > - [ ] #task Task indented in 'blockquote'
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/callout.md:
--------------------------------------------------------------------------------
1 | # callout
2 |
3 | > [!todo]
4 | > - [ ] #task Task in 'callout'
5 | > - [ ] #task Task indented in 'callout'
6 |
7 | ```tasks
8 | not done
9 | path includes {{query.file.path}}
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/callout_custom.md:
--------------------------------------------------------------------------------
1 | # callout_custom
2 |
3 | > [!callout_custom]
4 | > - [ ] #task Task in 'callout_custom'
5 | > - [ ] #task Task indented in 'callout_custom'
6 |
7 | ```tasks
8 | not done
9 | path includes {{query.file.path}}
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/callout_labelled.md:
--------------------------------------------------------------------------------
1 | # callout_labelled
2 |
3 | > [!todo] callout_labelled
4 | > - [ ] #task Task in 'callout_labelled'
5 | > - [ ] #task Task indented in 'callout_labelled'
6 |
7 | ```tasks
8 | not done
9 | path includes {{query.file.path}}
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/callouts_nested_issue_2890_labelled.md:
--------------------------------------------------------------------------------
1 | > [!Calendar]+ MONTH
2 | >> [!Check]+ GROUP
3 | >>> [!Attention]+ Correction TITLE
4 | >>> Some stuff goes here
5 | >>> - [ ] #task Correction1
6 | >>> - [ ] #task Correction2
7 | >>> - [ ] #task Correction3
8 | >>> - [ ] #task Correction4
9 |
10 | ```tasks
11 | not done
12 | path includes {{query.file.path}}
13 | ```
14 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/callouts_nested_issue_2890_unlabelled.md:
--------------------------------------------------------------------------------
1 | > [!Calendar]+
2 | >> [!Check]+
3 | >>> [!Attention]+
4 | >>> Some stuff goes here
5 | >>> - [ ] #task Correction1
6 | >>> - [ ] #task Correction2
7 | >>> - [ ] #task Correction3
8 | >>> - [ ] #task Correction4
9 |
10 | ```tasks
11 | not done
12 | path includes {{query.file.path}}
13 | ```
14 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/docs_sample_for_explain_query_file_defaults.md:
--------------------------------------------------------------------------------
1 | ---
2 | TQ_extra_instructions: |-
3 | folder includes {{query.file.folder}}
4 | not done
5 | TQ_short_mode: true
6 | TQ_show_tree: true
7 | ---
8 |
9 | ```tasks
10 | explain
11 | ```
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/empty_yaml.md:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 | # empty_yaml
5 |
6 | - [ ] #task Task in 'empty_yaml'
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/example_kanban.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | kanban-plugin: basic
4 |
5 | ---
6 |
7 | ## Backlog
8 |
9 | - [ ] #task Task in 'example_kanban'
10 |
11 |
12 | %% kanban:settings
13 | ```
14 | {"kanban-plugin":"basic"}
15 | ```
16 | %%
17 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent1child.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent
2 | - [ ] #task child
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent1child1newroot_after_header.md:
--------------------------------------------------------------------------------
1 | # first header
2 |
3 | - [ ] #task parent task
4 | - [ ] #task child task 1
5 |
6 | ## second header
7 |
8 | - [ ] #task root task
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent1child1sibling_emptystring.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent task
2 | - [ ] #task child task 1
3 |
4 | - [ ] #task sibling
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent
2 | - [ ] #task child 1
3 | - [ ] #task child 2
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children1grandchild.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent task
2 | - [ ] #task child task 1
3 | - [ ] #task child task 2
4 | - [ ] #task grandchild 1
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children1sibling.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent
2 | - [ ] #task child 1
3 | - [ ] #task child 2
4 | - [ ] #task sibling
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children2grandchildren.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent task
2 | - [ ] #task child task 1
3 | - [ ] #task grandchild 1
4 | - [ ] #task child task 2
5 | - [ ] #task grandchild 2
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children2grandchildren1sibling.md:
--------------------------------------------------------------------------------
1 | - [ ] #task parent task
2 | - [ ] #task child task 1
3 | - [ ] #task grandchild 1
4 | - [ ] #task child task 2
5 | - [ ] #task grandchild 2
6 | - [ ] #task sibling
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_1parent2children2grandchildren1sibling_start_with_heading.md:
--------------------------------------------------------------------------------
1 | # Test heading
2 |
3 | - [ ] #task parent task
4 | - [ ] #task child task 1
5 | - [ ] #task grandchild 1
6 | - [ ] #task child task 2
7 | - [ ] #task grandchild 2
8 | - [ ] #task sibling
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_2roots_listitem_listitem_task.md:
--------------------------------------------------------------------------------
1 | - parent list item 1
2 | - child list item 1
3 | - [ ] grandchild task 1
4 |
5 | - parent list item 2
6 | - child list item 2
7 | - [ ] grandchild task 2
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_2siblings.md:
--------------------------------------------------------------------------------
1 | - [ ] #task sibling 1
2 | - [ ] #task sibling 2
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_listitem_listitem_task.md:
--------------------------------------------------------------------------------
1 | - parent list item
2 | - child list item
3 | - [ ] grandchild task
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_listitem_task.md:
--------------------------------------------------------------------------------
1 | - parent list item
2 | - [ ] child task
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_listitem_task_siblings.md:
--------------------------------------------------------------------------------
1 | - list item
2 | - [ ] task
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_non_task_child.md:
--------------------------------------------------------------------------------
1 | - [ ] #task task parent
2 | - [ ] #task task child
3 | - [ ] non-task child
4 | - [x] non-task child status x
5 | - list item child
6 |
7 | ```tasks
8 | filename includes {{query.file.filename}}
9 | show tree
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_rendering_sample.md:
--------------------------------------------------------------------------------
1 | - grandparent list item
2 | - [ ] parent 1
3 | - [ ] child 1
4 | - [ ] grandchild 1
5 | - list item grand grand child
6 | - [ ] child 2
7 | - non task grandchild
8 | - [ ] grand grand child
9 | - [ ] parent 2
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_task_2listitem_3task.md:
--------------------------------------------------------------------------------
1 | - [ ] parent task
2 | - child list item 1
3 | - [ ] grandchild task 1
4 | - [ ] grandchild task 2
5 | - child list item 2
6 | - [ ] grandchild task 3
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_task_listitem.md:
--------------------------------------------------------------------------------
1 | - [ ] parent task
2 | - child list item
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_task_listitem_mixed_grandchildren.md:
--------------------------------------------------------------------------------
1 | - [ ] parent task
2 | - child list item
3 | - grandchild list item 1
4 | - [ ] grandchild task
5 | - grandchild list item 2
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_task_listitem_task.md:
--------------------------------------------------------------------------------
1 | - [ ] parent task
2 | - child list item
3 | - [ ] grandchild task
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/inheritance_task_mixed_children.md:
--------------------------------------------------------------------------------
1 | - [ ] parent task
2 | - [ ] child task 1
3 | - child list item 1
4 | - [ ] child task 2
5 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/jason_properties.md:
--------------------------------------------------------------------------------
1 | ---
2 | {
3 | "tags": "journal",
4 | "publish": false
5 | }
6 | ---
7 |
8 | # jason_properties
9 |
10 | - [ ] #task Task in 'jason_properties'
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_file_body.md:
--------------------------------------------------------------------------------
1 | # link_in_file_body
2 |
3 | I link to [[yaml_tags_is_empty]]
4 |
5 | - [ ] #task Task in 'link_in_file_body'
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_file_body_with_custom_display_text.md:
--------------------------------------------------------------------------------
1 | # link_in_file_body_with_custom_display_text
2 |
3 | I link to [[yaml_tags_is_empty|a file and use custom display text]]
4 |
5 | - [ ] #task Task in 'link_in_file_body_with_custom_display_text'
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_heading.md:
--------------------------------------------------------------------------------
1 | # link_in_heading
2 |
3 | ## I link to [[multiple_headings]]
4 |
5 | - [ ] #task Task in 'link_in_heading'
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_task_html.md:
--------------------------------------------------------------------------------
1 | # link_in_task_html
2 |
3 | - [ ] #task Task in 'link_in_task_html' - see the [Tasks Documentation](https://publish.obsidian.md/tasks/Introduction)
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_task_markdown_link.md:
--------------------------------------------------------------------------------
1 | # link_in_task_markdown_link
2 |
3 | - [ ] #task Task in 'link_in_task_markdown_link' [jason_properties](jason_properties) [multiple_headings](multiple_headings)
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_task_wikilink.md:
--------------------------------------------------------------------------------
1 | # link_in_task_wikilink
2 |
3 | - [ ] #task Task in 'link_in_task_wikilink' [[link_in_task_wikilink]] [[multiple_headings]]
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_in_yaml.md:
--------------------------------------------------------------------------------
1 | ---
2 | test-link: "[[yaml_tags_is_empty]]"
3 | ---
4 |
5 | # link_in_yaml
6 |
7 | - [ ] #task Task in 'link_in_yaml'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/link_is_broken.md:
--------------------------------------------------------------------------------
1 | # link_is_broken
2 |
3 | - [ ] #task Task in 'link_is_broken' [[broken link - do not fix me]]
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/links_everywhere.md:
--------------------------------------------------------------------------------
1 | ---
2 | link-in-frontmatter: "[[link_in_yaml]]"
3 | ---
4 | # links_everywhere
5 |
6 | A link in the file body: [[link_in_file_body]]
7 |
8 | ## A link in a [[link_in_heading]]
9 |
10 | - [ ] #task Task in 'links_everywhere' - a link on the task: [[link_in_task_wikilink]]
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/list_statuses.md:
--------------------------------------------------------------------------------
1 | `cachedMetadata.listItems` have a `task` field which is the single-character "status symbol".
2 |
3 | - [ ] #task Todo
4 | - [/] #task In Progress
5 | - [x] #task Done ✅ 2024-05-26
6 | - [-] #task Cancelled ❌ 2024-05-26
7 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/list_styles.md:
--------------------------------------------------------------------------------
1 | - [ ] #task task 1 starting with a hyphen
2 | - [ ] #task task 2 starting with a hyphen
3 |
4 | * [ ] #task task 1 starting with an asterisk
5 | * [ ] #task task 2 starting with an asterisk
6 |
7 | + [ ] #task task 1 starting with a plus sign
8 | + [ ] #task task 2 starting with a plus sign
9 |
10 | 1. [ ] #task task 1 in a numbered list
11 | 2. [ ] #task task 2 in a numbered list
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/multi_line_task_and_list_item.md:
--------------------------------------------------------------------------------
1 | # multi_line_task_and_list_item
2 |
3 | - [ ] #task Task in 'multi_line_task_and_list_item'
4 | task line 1
5 | task line 2
6 | - muli-line list item in 'multi_line_task_and_list_item'
7 | list item line 1
8 | list item line 2
9 |
10 | See: https://github.com/obsidian-tasks-group/obsidian-tasks/issues/2061:
11 | Multi-line tasks (indented lines below a task items) are not shown in Reading mode and Tasks query results
12 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/no_heading.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Task in 'no_heading'
2 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/no_yaml.md:
--------------------------------------------------------------------------------
1 | # no_yaml
2 |
3 | - [ ] #task Task in 'no_yaml'
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/numbered_list_items_standard.md:
--------------------------------------------------------------------------------
1 | # numbered_list_items_standard
2 |
3 | 1. [ ] #task Task 1 in 'numbered_list_items_standard'
4 | 1. Sub-item 1
5 | 2. [ ] #task Task 2 in 'numbered_list_items_standard'
6 | 1. Sub-item 2
7 | 3. List item in 'numbered_list_items_standard'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/numbered_list_items_with_paren.md:
--------------------------------------------------------------------------------
1 | # numbered_list_items_with_paren
2 |
3 | 1) [ ] #task Task 1 in 'numbered_list_items_with_paren'
4 | 1) Sub-item 1
5 | 2) [ ] #task Task 2 in 'numbered_list_items_with_paren'
6 | 1) Sub-item 2
7 | 3) List item in 'numbered_list_items_with_paren'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/one_task.md:
--------------------------------------------------------------------------------
1 | - [ ] #task the only task here
2 |
3 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/query_file_defaults_ignore_global_query.md:
--------------------------------------------------------------------------------
1 | ---
2 | TQ_extra_instructions: |-
3 | description includes I came from the TQ_extra_instructions property
4 | ignore global query
5 | ---
6 |
7 | # query_file_defaults_ignore_global_query
8 |
9 | - [ ] #task Task in 'query_file_defaults_ignore_global_query'
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/query_file_defaults_short_mode.md:
--------------------------------------------------------------------------------
1 | ---
2 | TQ_short_mode: true
3 | ---
4 |
5 | # query_file_defaults_short_mode
6 |
7 | - [ ] #task Task in 'query_file_defaults_short_mode'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_1_alias.md:
--------------------------------------------------------------------------------
1 | ---
2 | aliases:
3 | - YAML Alias 1
4 | ---
5 |
6 | # yaml_1_alias
7 |
8 | - [ ] #task Task in 'yaml_1_alias'
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_2_aliases.md:
--------------------------------------------------------------------------------
1 | ---
2 | aliases:
3 | - YAML Alias 1
4 | - YAML Alias 2
5 | ---
6 |
7 | # yaml_2_aliases
8 |
9 | - [ ] #task Task in 'yaml_2_aliases'
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_all_property_types_empty.md:
--------------------------------------------------------------------------------
1 | ---
2 | sample_checkbox_property:
3 | sample_date_property:
4 | sample_date_and_time_property:
5 | sample_list_property:
6 | sample_number_property:
7 | sample_text_property:
8 | sample_link_property:
9 | sample_link_list_property:
10 | aliases:
11 | tags:
12 | creation date:
13 | ---
14 | # yaml_all_property_types_empty
15 |
16 | - [ ] #task Task in 'yaml_all_property_types_empty'
17 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_capitalised_property_name.md:
--------------------------------------------------------------------------------
1 | ---
2 | CAPITAL_property: some value
3 | ---
4 |
5 | # yaml_capitalised_property_name
6 |
7 | - [ ] #task Task in 'yaml_capitalised_property_name'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_custom_number_property.md:
--------------------------------------------------------------------------------
1 | ---
2 | custom_number_prop: 42
3 | ---
4 |
5 | - [ ] #task Task in 'yaml_custom_number_property'
6 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_field_added_by_obsidian_but_not_populated.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | ---
4 |
5 | # yaml_tags_field_added_by_obsidian_but_not_populated
6 |
7 | - [ ] #task Task in 'yaml_tags_field_added_by_obsidian_but_not_populated'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_had_value_then_was_emptied_by_obsidian.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: []
3 | ---
4 |
5 |
6 | # yaml_tags_had_value_then_was_emptied_by_obsidian
7 |
8 | - [ ] #task Task in 'yaml_tags_had_value_then_was_emptied_by_obsidian'
9 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_has_multiple_values.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | - multiple1
4 | - multiple2
5 | ---
6 |
7 | # yaml_tags_has_multiple_values
8 |
9 | - [ ] #task Task in 'yaml_tags_has_multiple_values'
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_is_empty.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | ---
4 |
5 | # yaml_tags_is_empty
6 |
7 | - [ ] #task Task in 'yaml_tags_is_empty'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_is_empty_list.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: []
3 | ---
4 |
5 | # yaml_tags_is_empty_list
6 |
7 | - [ ] #task Task in 'yaml_tags_is_empty_list'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_with_one_value_on_new_line.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | - single-value-new-line
4 | ---
5 |
6 |
7 | # yaml_tags_with_one_value_on_new_line
8 |
9 | - [ ] #task Task in 'yaml_tags_with_one_value_on_new_line'
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_with_one_value_on_single_line.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: single-value-single-line
3 | ---
4 |
5 | # yaml_tags_with_one_value_on_single_line
6 |
7 | - [ ] #task Task in 'yaml_tags_with_one_value_on_single_line'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_with_two_values_on_one_line.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: value-1-of-2-on-one-line, value-2-of-2-on-one-line
3 | ---
4 |
5 | # yaml_tags_with_two_values_on_one_line
6 |
7 | - [ ] #task Task in 'yaml_tags_with_two_values_on_one_line'
8 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/yaml_tags_with_two_values_on_two_lines.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | - value-1-of-2-on-two-lines
4 | - value-2-of-2-on-two-lines
5 | ---
6 |
7 | # yaml_tags_with_two_values_on_two_lines
8 |
9 | - [ ] #task Task in 'yaml_tags_with_two_values_on_two_lines'
10 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/Test Data/zero_width.md:
--------------------------------------------------------------------------------
1 | # zero_width
2 |
3 | - Root 1
4 | - [ ] #task Task line 1 in 'zero_width' - indented by tab character
5 | - Root 2
6 | - [ ] #task Task line 2 in 'zero_width' - indented by ZWSP + tab character
7 |
8 | ```tasks
9 | path includes {{query.file.path}}
10 | ```
11 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/_meta/templates/Test Data file.md:
--------------------------------------------------------------------------------
1 | # <% tp.file.title %>
2 |
3 | - [ ] #task Task in '<% tp.file.title %>'
4 |
--------------------------------------------------------------------------------
/resources/sample_vaults/Tasks-Demo/_meta/templates/convert_test_data_markdown_to_js.md:
--------------------------------------------------------------------------------
1 | <%- tp.user.convert_test_data_markdown_to_js(tp) -%>
2 |
--------------------------------------------------------------------------------
/resources/screenshots/README-resources-screenshots.md:
--------------------------------------------------------------------------------
1 | # resources/screenshots
2 |
3 | New images should be put in `docs/images/` please.
4 |
5 | For details, see .
6 |
--------------------------------------------------------------------------------
/src/Config/Themes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './AnuPpuccinThemeCollection';
2 | export * from './AuraThemeCollection';
3 | export * from './BorderThemeCollection';
4 | export * from './EbullientworksThemeCollection';
5 | export * from './ITSThemeCollection';
6 | export * from './LYTModeThemeCollection';
7 | export * from './MinimalThemeCollection';
8 | export * from './ThingsThemeCollection';
9 |
--------------------------------------------------------------------------------
/src/Config/featureConfiguration.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "index": 9999,
4 | "internalName": "INTERNAL_TESTING_ENABLED_BY_DEFAULT",
5 | "displayName": "Test Item. Used to validate the Feature Framework.",
6 | "description": "Description",
7 | "enabledByDefault": true,
8 | "stable": false
9 | }
10 | ]
11 |
--------------------------------------------------------------------------------
/src/Layout/LayoutHelpers.ts:
--------------------------------------------------------------------------------
1 | export function generateHiddenClassForTaskList(hiddenClasses: string[], hide: boolean, component: string) {
2 | if (hide) {
3 | hiddenClasses.push(hiddenComponentClassName(component));
4 | }
5 | }
6 |
7 | function hiddenComponentClassName(component: string) {
8 | return `tasks-layout-hide-${component}`;
9 | }
10 |
--------------------------------------------------------------------------------
/src/lib/TypeDetection.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Return a string representation of the {@link value}'s type, for showing to users, such as in error messages.
3 | * @param value
4 | */
5 | export function getValueType(value: any): string {
6 | if (value === null) {
7 | return 'null';
8 | }
9 |
10 | const type = typeof value;
11 | if (type === 'object') {
12 | return value.constructor.name;
13 | }
14 |
15 | return type;
16 | }
17 |
--------------------------------------------------------------------------------
/src/styles.scss:
--------------------------------------------------------------------------------
1 | @import 'flatpickr/dist/flatpickr.css';
2 | @import './Renderer/Renderer';
3 | @import './ui/EditTask';
4 | @import './ui/Dependency';
5 | @import './Config/SettingsTab';
6 | @import './Config/PresetsSettingsUI';
7 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | const sveltePreprocess = require('svelte-preprocess');
2 |
3 | module.exports = {
4 | preprocess: sveltePreprocess(),
5 | };
6 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DefaultsDocs/DocsSamplesForDefaults.test.DocsSamplesForDefaults_demo-short-mode_instructions.approved.txt:
--------------------------------------------------------------------------------
1 | short mode
2 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DefaultsDocs/DocsSamplesForDefaults.test.DocsSamplesForDefaults_demo-short-mode_yaml.approved.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | TQ_short_mode: true
3 | ---
4 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DocsSamplesForStatuses.test.DefaultStatuses_important-cycle.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | | Status Symbol | Next Status Symbol | Status Name | Status Type | Needs Custom Styling |
4 | | ----- | ----- | ----- | ----- | ----- |
5 | | `!` | `D` | Important | `TODO` | Yes |
6 | | `D` | `X` | Doing - Important | `IN_PROGRESS` | Yes |
7 | | `X` | `!` | Done - Important | `DONE` | Yes |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DocsSamplesForStatuses.test.DefaultStatuses_pro-con-cycle.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | | Status Symbol | Next Status Symbol | Status Name | Status Type | Needs Custom Styling |
4 | | ----- | ----- | ----- | ----- | ----- |
5 | | `P` | `C` | Pro | `NON_TASK` | Yes |
6 | | `C` | `P` | Con | `NON_TASK` | Yes |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DocsSamplesForStatuses.test.DefaultStatuses_todo-in_progress-done.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | | Status Symbol | Next Status Symbol | Status Name | Status Type | Needs Custom Styling |
4 | | ----- | ----- | ----- | ----- | ----- |
5 | | `space` | `/` | Todo | `TODO` | No |
6 | | `/` | `x` | In Progress | `IN_PROGRESS` | Yes |
7 | | `x` | `space` | Done | `DONE` | No |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DocsSamplesForStatuses.test.Theme_Ebullientworks_Tasks.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task `space` Unchecked
4 | - [x] #task `x` Checked
5 | - [-] #task `-` Cancelled
6 | - [/] #task `/` In Progress
7 | - [>] #task `>` Deferred
8 | - [!] #task `!` Important
9 | - [?] #task `?` Question
10 | - [r] #task `r` Review
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/DocsSamplesForStatuses.test.Theme_Ebullientworks_Text.approved.txt:
--------------------------------------------------------------------------------
1 | - [ ] #task `space` Unchecked
2 | - [x] #task `x` Checked
3 | - [-] #task `-` Cancelled
4 | - [/] #task `/` In Progress
5 | - [>] #task `>` Deferred
6 | - [!] #task `!` Important
7 | - [?] #task `?` Question
8 | - [r] #task `r` Review
9 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/ValidateTasks.test.validate-tasks_all-emojis-emojis.approved.text:
--------------------------------------------------------------------------------
1 | 🔺⏫🔼🔽⏬🛫➕⏳📅✅❌🔁🏁⛔🆔
2 |
--------------------------------------------------------------------------------
/tests/DocumentationSamples/ValidateTasks.test.validate-tasks_find_problem_dates.approved.text:
--------------------------------------------------------------------------------
1 |
2 | ````text
3 | ```tasks
4 | # These instructions need to be all on one line:
5 | (cancelled date is invalid) OR (created date is invalid) OR (done date is invalid) OR (due date is invalid) OR (scheduled date is invalid) OR (start date is invalid)
6 |
7 | # Optionally, uncomment this line and exclude your templates location
8 | # path does not include _templates
9 |
10 | group by path
11 | ```
12 | ````
13 |
--------------------------------------------------------------------------------
/tests/Obsidian/File.test.replaceTaskWithTasks_issue_1680_-_Cannot_read_properties_of_undefined.approved.txt:
--------------------------------------------------------------------------------
1 | Success. Line found OK. No error reported.
2 |
--------------------------------------------------------------------------------
/tests/Obsidian/File.test.replaceTaskWithTasks_issue_688_-_block_referenced_task.approved.txt:
--------------------------------------------------------------------------------
1 | Success. Line found OK. No error reported.
2 |
--------------------------------------------------------------------------------
/tests/Obsidian/File.test.replaceTaskWithTasks_valid_2-task_test.approved.txt:
--------------------------------------------------------------------------------
1 | Success. Line found OK. No error reported.
2 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_boolean_combinations.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | not done
4 |
5 | (due before tomorrow) AND (is recurring) =>
6 | AND (All of):
7 | due before tomorrow =>
8 | due date is before 2022-10-22 (Saturday 22nd October 2022)
9 | is recurring
10 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_boolean_combinations.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | explain
3 | not done
4 | (due before tomorrow) AND (is recurring)
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_example_global_query.approved.query.text:
--------------------------------------------------------------------------------
1 | limit 50
2 | heading includes tasks
3 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_expands_dates.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | starts after 2 years ago =>
4 | start date is after 2020-10-21 (Wednesday 21st October 2020) OR no start date
5 |
6 | scheduled after 1 week ago =>
7 | scheduled date is after 2022-10-14 (Friday 14th October 2022)
8 |
9 | due before tomorrow =>
10 | due date is before 2022-10-22 (Saturday 22nd October 2022)
11 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_expands_dates.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | starts after 2 years ago
3 | scheduled after 1 week ago
4 | due before tomorrow
5 | explain
6 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_explains_task_block_with_global_query_active.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of the global query:
2 |
3 | heading includes tasks
4 |
5 | At most 50 tasks.
6 |
7 | Explanation of this Tasks code block query:
8 |
9 | not done
10 |
11 | due next week =>
12 | due date is between:
13 | 2022-10-24 (Monday 24th October 2022) and
14 | 2022-10-30 (Sunday 30th October 2022) inclusive
15 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_explains_task_block_with_global_query_active.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | not done
3 | due next week
4 | explain
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_line_continuation_-_double_slash.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | description includes \\ =>
4 | description includes \
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_line_continuation_-_double_slash.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | # Search for a single backslash:
3 | description includes \\
4 | explain
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_line_continuation_-_single_slash.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | (priority is highest) OR \
4 | (priority is lowest)
5 | =>
6 | (priority is highest) OR (priority is lowest) =>
7 | OR (At least one of):
8 | priority is highest
9 | priority is lowest
10 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_line_continuation_-_single_slash.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | (priority is highest) OR \
3 | (priority is lowest)
4 | explain
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_placeholders.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | explain
3 | path includes {{query.file.path}}
4 | path includes {{query.file.pathWithoutExtension}}
5 | root includes {{query.file.root}}
6 | folder includes {{query.file.folder}}
7 | filename includes {{query.file.filename}}
8 | filename includes {{query.file.filenameWithoutExtension}}
9 |
10 | description includes Some Cryptic String {{! Inline comments are removed before search }}
11 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_placeholders_error.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | Query has an error:
4 | There was an error expanding one or more placeholders.
5 |
6 | The error message was:
7 | Unknown property: query.file.fileName
8 |
9 | The problem is in:
10 | filename includes {{query.file.fileName}}
11 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_placeholders_error.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | # query.file.fileName is invalid, because of the capital N.
3 | # query.file.filename is the correct property name.
4 | filename includes {{query.file.fileName}}
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_query_file_defaults_explanation.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of the Query File Defaults (from properties/frontmatter in the query's file):
2 |
3 | folder includes {{query.file.folder}} =>
4 | folder includes Test Data/
5 |
6 | not done
7 |
8 | short mode
9 |
10 | show tree
11 |
12 | Explanation of this Tasks code block query:
13 |
14 | No filters supplied. All tasks will match the query.
15 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_query_file_defaults_explanation.approved.query.text:
--------------------------------------------------------------------------------
1 | explain
2 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_query_file_defaults_file_content.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ````text
4 | ---
5 | TQ_extra_instructions: |-
6 | folder includes {{query.file.folder}}
7 | not done
8 | TQ_short_mode: true
9 | TQ_show_tree: true
10 | ---
11 |
12 | ```tasks
13 | explain
14 | ```
15 | ````
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_regular_expression.approved.explanation.text:
--------------------------------------------------------------------------------
1 | Explanation of this Tasks code block query:
2 |
3 | path regex matches /^Root/Sub-Folder/Sample File\.md/i =>
4 | using regex: '^Root\/Sub-Folder\/Sample File\.md' with flag 'i'
5 |
--------------------------------------------------------------------------------
/tests/Query/Explain/DocsSamplesForExplain.test.explain_regular_expression.approved.query.text:
--------------------------------------------------------------------------------
1 |
2 | explain
3 | path regex matches /^Root/Sub-Folder/Sample File\.md/i
4 |
--------------------------------------------------------------------------------
/tests/Query/Filter/ReferenceDocs/FilterReference/filters-date-examples.input.query:
--------------------------------------------------------------------------------
1 | description includes ------------------------------
2 |
3 | due today
4 |
5 | description includes ------------------------------
6 |
7 | due yesterday
8 | due today
9 | due tomorrow
10 | due next monday
11 | due last friday
12 | due 14 days ago
13 | due in two weeks
14 | due 14 October
15 | due May
16 |
--------------------------------------------------------------------------------
/tests/Query/QueryComponentOrError.test.ts:
--------------------------------------------------------------------------------
1 | import { QueryComponentOrError } from '../../src/Query/QueryComponentOrError';
2 |
3 | describe('QueryComponentOrError', () => {
4 | it('should check validity', () => {
5 | expect(QueryComponentOrError.fromObject('instruction', 42).isValid()).toBe(true);
6 | expect(QueryComponentOrError.fromError('instruction', 'error message').isValid()).toBe(false);
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/tests/Query/Sort/Sort.test.Sort_save_default_sort_order.approved.text:
--------------------------------------------------------------------------------
1 | sort by status.type
2 | sort by urgency
3 | sort by due
4 | sort by priority
5 | sort by path
6 |
--------------------------------------------------------------------------------
/tests/Scripting/QueryProperties.test.query_search_properties.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | | Field | Type | Example |
4 | | ----- | ----- | ----- |
5 | | `query.allTasks` | `Task[]` | `[... an array with all the Tasks-tracked tasks in the vault ...]` |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.cancelled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.cancelled.format('dddd') === 'Wednesday'
6 | ```
7 |
8 | - Find tasks cancelled on Wednesdays, that is, any Wednesday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.cancelled_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.cancelled.format('dddd') === 'Wednesday'
6 | Find tasks cancelled on Wednesdays, that is, any Wednesday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 | - [ ] my description ❌ 2023-05-31
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.created_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.created.format('dddd') === 'Monday'
6 | ```
7 |
8 | - Find tasks created on Mondays, that is, any Monday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.created_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.created.format('dddd') === 'Monday'
6 | Find tasks created on Mondays, that is, any Monday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 |
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.done_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.done.format('dddd') === 'Thursday'
6 | ```
7 |
8 | - Find tasks done on Thursdays, that is, any Thursday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.done_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.done.format('dddd') === 'Thursday'
6 | Find tasks done on Thursdays, that is, any Thursday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 | - [ ] my description ✅ 2023-06-01
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.due_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.due.format('dddd') === 'Tuesday'
6 | ```
7 |
8 | - Find tasks due on Tuesdays, that is, any Tuesday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.due_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.due.format('dddd') === 'Tuesday'
6 | Find tasks due on Tuesdays, that is, any Tuesday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 | - [ ] my description 📅 2023-05-30
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.happens_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.happens.format('dddd') === 'Friday'
6 | ```
7 |
8 | - Find tasks happens on Fridays, that is, any Friday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.happens_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.happens.format('dddd') === 'Friday'
6 | Find tasks happens on Fridays, that is, any Friday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 | - [ ] my description 📅 2023-06-02
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.scheduled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.scheduled.format('dddd') === 'Wednesday'
6 | ```
7 |
8 | - Find tasks scheduled on Wednesdays, that is, any Wednesday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.scheduled_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.scheduled.format('dddd') === 'Wednesday'
6 | Find tasks scheduled on Wednesdays, that is, any Wednesday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 | - [ ] my description ⏳ 2023-05-31
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.start_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.start.format('dddd') === 'Sunday'
6 | ```
7 |
8 | - Find tasks starting on Sundays, that is, any Sunday.
9 | - On non-English systems, you may need to supply the day of the week in the local language.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.dates_task.start_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.start.format('dddd') === 'Sunday'
6 | Find tasks starting on Sundays, that is, any Sunday.
7 | On non-English systems, you may need to supply the day of the week in the local language.
8 | =>
9 |
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.blockLink_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.descriptionWithoutTags_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.description_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.description.length > 100
6 | ```
7 |
8 | - Find tasks with long descriptions.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.lineNumber_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.originalMarkdown_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.other_properties_task.priorityName_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.priorityName !== 'Normal'
6 | ```
7 |
8 | - The same as `priority is not none`.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.statuses_task.status.name_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.status.name === 'Unknown'
6 | ```
7 |
8 | - Find all tasks with custom statuses not yet added to the Tasks settings.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.statuses_task.status.name_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.status.name === 'Unknown'
6 | Find all tasks with custom statuses not yet added to the Tasks settings.
7 | =>
8 | - [p] Unknown symbol
9 | - [s] Toggles to self
10 | - [P] Pro
11 | - [C] Con
12 | - [Q] Question
13 | - [A] Answer
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.statuses_task.status.nextSymbol_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | filter by function task.status.symbol === task.status.nextSymbol
6 | ```
7 |
8 | - Find tasks that toggle to themselves, because the next symbol is the same as the current symbol.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomFiltering/CustomFilteringExamples.test.statuses_task.status.nextSymbol_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom filters
2 |
3 |
4 |
5 | filter by function task.status.symbol === task.status.nextSymbol
6 | Find tasks that toggle to themselves, because the next symbol is the same as the current symbol.
7 | =>
8 | - [] Status EMPTY
9 | ====================================================================================
10 |
11 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.cancelled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.cancelled.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by cancelled", except it uses an empty string instead of "No cancelled date" if there is no cancelled date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.created_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.created.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by created", except it uses an empty string instead of "No created date" if there is no created date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.done_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.done.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by done", except it uses an empty string instead of "No done date" if there is no done date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.happens_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.happens.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by happens", except it uses an empty string instead of "No happens date" if there is no happens date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.happens_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.happens.format("YYYY-MM-DD dddd")
6 | Like "group by happens", except it uses an empty string instead of "No happens date" if there is no happens date.
7 | =>
8 | 2023-05-30 Tuesday
9 | 2023-05-31 Wednesday
10 | 2023-06-01 Thursday
11 | 2023-06-02 Friday
12 | ====================================================================================
13 |
14 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.scheduled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.scheduled.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by scheduled", except it uses an empty string instead of "No scheduled date" if there is no scheduled date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dates_task.start_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.start.format("YYYY-MM-DD dddd")
6 | ```
7 |
8 | - Like "group by start", except it uses an empty string instead of "No start date" if there is no start date.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dependencies_task.id_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.id
6 | ```
7 |
8 | - Group by task Ids, if any.
9 | - Note that currently there is no way to access any tasks that are blocked by these Ids.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.dependencies_task.id_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.id
6 | Group by task Ids, if any.
7 | Note that currently there is no way to access any tasks that are blocked by these Ids.
8 | =>
9 | dcf64c
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.file_properties_task.file.root_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.file.root
6 | ```
7 |
8 | - Like 'group by root' except that it does not escape any Markdown formatting characters in the root.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.file_properties_task.file.root_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.file.root
6 | Like 'group by root' except that it does not escape any Markdown formatting characters in the root.
7 | =>
8 | /
9 | a/
10 | e/
11 | ====================================================================================
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.blockLink_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.blockLink.replace(' ^', '')
6 | ```
7 |
8 | - DO NOT RELEASE UNTIL THE LEADING SPACE IS REMOVED FROM BLOCKLINKS. Removing the leading space and carat prevents the rendered heading itself being treated as a blocklink.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.blockLink_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.blockLink.replace(' ^', '')
6 | DO NOT RELEASE UNTIL THE LEADING SPACE IS REMOVED FROM BLOCKLINKS. Removing the leading space and carat prevents the rendered heading itself being treated as a blocklink.
7 | =>
8 | ca47c7
9 | fromseparatefile
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.isDone_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.isDone ? "Action Required" : "Nothing To Do"
6 | ```
7 |
8 | - Use JavaScript's ternary operator to choose what to do for true (after the ?) and false (after the :) values.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.isDone_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.isDone ? "Action Required" : "Nothing To Do"
6 | Use JavaScript's ternary operator to choose what to do for true (after the ?) and false (after the :) values.
7 | =>
8 | Action Required
9 | Nothing To Do
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.isRecurring_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.isRecurring ? "Recurring" : "Non-Recurring"
6 | ```
7 |
8 | - Use JavaScript's ternary operator to choose what to do for true (after the ?) and false (after the :) values.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.isRecurring_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.isRecurring ? "Recurring" : "Non-Recurring"
6 | Use JavaScript's ternary operator to choose what to do for true (after the ?) and false (after the :) values.
7 | =>
8 | Non-Recurring
9 | Recurring
10 | ====================================================================================
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.lineNumber_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.lineNumber_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.priorityNumber_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.priorityNumber
6 | ```
7 |
8 | - Group by the task's priority number, where Highest is 0 and Lowest is 5.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.priorityNumber_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.priorityNumber
6 | Group by the task's priority number, where Highest is 0 and Lowest is 5.
7 | =>
8 | 0
9 | 1
10 | 2
11 | 3
12 | 4
13 | 5
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.priority_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - ``group by function task.priority``
4 | - Group by the task's priority number, where Highest is 0 and Lowest is 5.
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.priority_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom groupers
2 |
3 |
4 |
5 | group by function task.priority
6 | Group by the task's priority number, where Highest is 0 and Lowest is 5
7 | =>
8 | 0
9 | 1
10 | 2
11 | 3
12 | 4
13 | 5
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.other_properties_task.recurrenceRule_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.recurrenceRule.replace('when done', '==when done==')
6 | ```
7 |
8 | - Group by recurrence rule, highlighting any occurrences of the words "when done".
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.statuses_task.status.name_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function task.status.name
6 | ```
7 |
8 | - Identical to "group by status.name".
9 |
10 | ```javascript
11 | group by function task.status.name.toUpperCase()
12 | ```
13 |
14 | - Convert the status names to capitals.
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.statuses_task.status.nextSymbol_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function "Next status symbol: " + task.status.nextSymbol.replace(" ", "space")
6 | ```
7 |
8 | - Group by the next status symbol, making space characters visible.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomGrouping/CustomGroupingExamples.test.statuses_task.status.symbol_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | group by function "Status symbol: " + task.status.symbol.replace(" ", "space")
6 | ```
7 |
8 | - Group by the status symbol, making space characters visible.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.cancelled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.cancelled.format("dddd")
6 | ```
7 |
8 | - Sort by cancelled date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.created_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.created.format("dddd")
6 | ```
7 |
8 | - Sort by created date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.done_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.done.format("dddd")
6 | ```
7 |
8 | - Sort by done date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.due.advanced_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.due_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.due.format("dddd")
6 | ```
7 |
8 | - Sort by due date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.happens_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.happens.format("dddd")
6 | ```
7 |
8 | - Sort by happens date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.scheduled_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.scheduled.format("dddd")
6 | ```
7 |
8 | - Sort by scheduled date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.dates_task.start_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.start.format("dddd")
6 | ```
7 |
8 | - Sort by start date's day of the week, alphabetically.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.file_properties_task.file.filename_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.file.filename
6 | ```
7 |
8 | - Like 'sort by filename' but includes the file extension.
9 |
10 | ```javascript
11 | sort by function task.file.filenameWithoutExtension
12 | ```
13 |
14 | - Like 'sort by filename'.
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.file_properties_task.file.path_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.file.path
6 | ```
7 |
8 | - Like 'Sort by path' but includes the file extension.
9 |
10 | ```javascript
11 | sort by function task.file.pathWithoutExtension
12 | ```
13 |
14 | - Like 'Sort by path'.
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.file_properties_task.file.root_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.file.root
6 | ```
7 |
8 | - Enable sorting by the root folder.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.file_properties_task.heading_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.heading
6 | ```
7 |
8 | - Like 'sort by heading'.
9 | - Any tasks with no preceding heading have `task.heading` values of `null`, and these tasks sort before any tasks with headings.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.blockLink_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.blockLink
6 | ```
7 |
8 | - DO NOT RELEASE UNTIL THE LEADING SPACE IS REMOVED FROM BLOCKLINKS. Removing the leading space and carat prevents the rendered heading itself being treated as a blocklink.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.isRecurring_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.isRecurring
6 | ```
7 |
8 | - Sort by whether the task is recurring: recurring tasks will be listed before non-recurring ones.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.lineNumber_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.lineNumber
6 | ```
7 |
8 | - Sort by the line number of the task's original line in the MarkDown file.
9 | - This is useful if you are unhappy with the [[Sorting#default sort order]].
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.lineNumber_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom sorters
2 |
3 |
4 |
5 | sort by function task.lineNumber
6 | Sort by the line number of the task's original line in the MarkDown file.
7 | This is useful if you are unhappy with the [[Sorting#default sort order]].
8 | =>
9 | - [ ] line 0
10 | - [ ] line 42
11 | ====================================================================================
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.originalMarkdown_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.originalMarkdown
6 | ```
7 |
8 | - Sort by the raw text of the task's original line in the MarkDown file.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.priorityNumber_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.priorityNumber
6 | ```
7 |
8 | - Sort by the task's priority number, where Highest is 0 and Lowest is 5.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.recurrenceRule_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.recurrenceRule
6 | ```
7 |
8 | - Sort by recurrence rule.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.tags.advanced_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.other_properties_task.urgency_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function reverse task.urgency
6 | ```
7 |
8 | - Sort by task urgency values.
9 | - We use `reverse` to put the most urgent tasks first.
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.name_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.status.name
6 | ```
7 |
8 | - Identical to "Sort by status.name".
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.name_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom sorters
2 |
3 |
4 |
5 | sort by function task.status.name
6 | Identical to "Sort by status.name".
7 | =>
8 | - [-] Status Cancelled
9 | - [x] Status Done
10 | - [] Status EMPTY
11 | - [/] Status In Progress
12 | - [Q] Status Non-Task
13 | - [ ] Status Todo
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.nextSymbol_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.status.nextSymbol
6 | ```
7 |
8 | - Sort by the next status symbol.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.nextSymbol_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom sorters
2 |
3 |
4 |
5 | sort by function task.status.nextSymbol
6 | Sort by the next status symbol.
7 | =>
8 | - [] Status EMPTY
9 | - [x] Status Done
10 | - [-] Status Cancelled
11 | - [Q] Status Non-Task
12 | - [/] Status In Progress
13 | - [ ] Status Todo
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.symbol_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.status.symbol
6 | ```
7 |
8 | - Sort by the status symbol.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.symbol_results.approved.txt:
--------------------------------------------------------------------------------
1 | Results of custom sorters
2 |
3 |
4 |
5 | sort by function task.status.symbol
6 | Sort by the status symbol.
7 | =>
8 | - [] Status EMPTY
9 | - [ ] Status Todo
10 | - [-] Status Cancelled
11 | - [/] Status In Progress
12 | - [Q] Status Non-Task
13 | - [x] Status Done
14 | ====================================================================================
15 |
16 |
--------------------------------------------------------------------------------
/tests/Scripting/ScriptingReference/CustomSorting/CustomSortingExamples.test.statuses_task.status.type_docs.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ```javascript
5 | sort by function task.status.type
6 | ```
7 |
8 | - Unlike "Sort by status.type", this sorts the status types in alphabetical order.
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/Scripting/TasksFile.test.TasksFile_-_reading_frontmatter_should_read_yaml_all_property_types_empty.approved.json:
--------------------------------------------------------------------------------
1 | {
2 | "aliases": null,
3 | "creation date": null,
4 | "sample_checkbox_property": null,
5 | "sample_date_and_time_property": null,
6 | "sample_date_property": null,
7 | "sample_link_list_property": null,
8 | "sample_link_property": null,
9 | "sample_list_property": null,
10 | "sample_number_property": null,
11 | "sample_text_property": null,
12 | "tags": []
13 | }
14 |
--------------------------------------------------------------------------------
/tests/Statuses/StatusSettingsReport.test.StatusSettingsReport_should_create_set_of_sample_task_lines,_excluding_duplicate_and_empty_symbols.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] Sample task 1: status symbol=`space` status name='Todo'
2 | - [x] Sample task 2: status symbol=`x` status name='Done'
3 | - [/] Sample task 3: status symbol=`/` status name='A slash'
4 | - [p] Sample task 4: status symbol=`p` status name='A p'
5 |
--------------------------------------------------------------------------------
/tests/Statuses/StatusSettingsReport.test.StatusSettingsReport_should_create_set_of_sample_task_lines_include_global_filter.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Sample task 1: status symbol=`space` status name='Todo'
2 | - [x] #task Sample task 2: status symbol=`x` status name='Done'
3 | - [/] #task Sample task 3: status symbol=`/` status name='A slash'
4 | - [p] #task Sample task 4: status symbol=`p` status name='A p'
5 |
--------------------------------------------------------------------------------
/tests/Statuses/StatusSettingsReport.test.StatusSettingsReport_should_tabulate_StatusSettings.approved.md:
--------------------------------------------------------------------------------
1 | | Status Symbol | Next Status Symbol | Status Name | Status Type | Problems (if any) |
2 | | ----- | ----- | ----- | ----- | ----- |
3 | | `space` | `x` | Todo | `TODO` | |
4 | | `x` | `space` | Done | `DONE` | |
5 | | `/` | `x` | In Progress | `IN_PROGRESS` | |
6 | | `-` | `space` | Cancelled | `CANCELLED` | |
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dates_dataview-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Has a created date [created:: 2023-04-13]
2 | - [ ] #task Has a scheduled date [scheduled:: 2023-04-14]
3 | - [ ] #task Has a start date [start:: 2023-04-15]
4 | - [ ] #task Has a due date [due:: 2023-04-16]
5 | - [x] #task Has a done date [completion:: 2023-04-17]
6 | - [-] #task Has a cancelled date [cancelled:: 2023-04-18]
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dates_tasksPluginEmoji-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task Has a created date ➕ 2023-04-13
4 | - [ ] #task Has a scheduled date ⏳ 2023-04-14
5 | - [ ] #task Has a start date 🛫 2023-04-15
6 | - [ ] #task Has a due date 📅 2023-04-16
7 | - [x] #task Has a done date ✅ 2023-04-17
8 | - [-] #task Has a cancelled date ❌ 2023-04-18
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dates_tasksPluginEmoji-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Has a created date ➕ 2023-04-13
2 | - [ ] #task Has a scheduled date ⏳ 2023-04-14
3 | - [ ] #task Has a start date 🛫 2023-04-15
4 | - [ ] #task Has a due date 📅 2023-04-16
5 | - [x] #task Has a done date ✅ 2023-04-17
6 | - [-] #task Has a cancelled date ❌ 2023-04-18
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dependencies_dataview-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task do this first [id:: dcf64c]
4 | - [ ] #task do this after first and some other task [dependsOn:: dcf64c,0h17ye]
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dependencies_dataview-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task do this first [id:: dcf64c]
2 | - [ ] #task do this after first and some other task [dependsOn:: dcf64c,0h17ye]
3 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task do this first 🆔 dcf64c
4 | - [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye
5 |
6 |
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task do this first 🆔 dcf64c
2 | - [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye
3 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_OnCompletion_dataview-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task Keep this task when done
4 | - [ ] #task Keep this task when done too [onCompletion:: keep]
5 | - [ ] #task Remove this task when done [onCompletion:: delete]
6 | - [ ] #task Remove completed instance of this recurring task when done [repeat:: every day] [onCompletion:: delete]
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_OnCompletion_dataview-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Keep this task when done
2 | - [ ] #task Keep this task when done too [onCompletion:: keep]
3 | - [ ] #task Remove this task when done [onCompletion:: delete]
4 | - [ ] #task Remove completed instance of this recurring task when done [repeat:: every day] [onCompletion:: delete]
5 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_OnCompletion_tasksPluginEmoji-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task Keep this task when done
4 | - [ ] #task Keep this task when done too 🏁 keep
5 | - [ ] #task Remove this task when done 🏁 delete
6 | - [ ] #task Remove completed instance of this recurring task when done 🔁 every day 🏁 delete
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_OnCompletion_tasksPluginEmoji-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Keep this task when done
2 | - [ ] #task Keep this task when done too 🏁 keep
3 | - [ ] #task Remove this task when done 🏁 delete
4 | - [ ] #task Remove completed instance of this recurring task when done 🔁 every day 🏁 delete
5 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Priorities_dataview-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task Lowest priority [priority:: lowest]
4 | - [ ] #task Low priority [priority:: low]
5 | - [ ] #task Normal priority
6 | - [ ] #task Medium priority [priority:: medium]
7 | - [ ] #task High priority [priority:: high]
8 | - [ ] #task Highest priority [priority:: highest]
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Priorities_dataview-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Lowest priority [priority:: lowest]
2 | - [ ] #task Low priority [priority:: low]
3 | - [ ] #task Normal priority
4 | - [ ] #task Medium priority [priority:: medium]
5 | - [ ] #task High priority [priority:: high]
6 | - [ ] #task Highest priority [priority:: highest]
7 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Priorities_tasksPluginEmoji-include.approved.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [ ] #task Lowest priority ⏬
4 | - [ ] #task Low priority 🔽
5 | - [ ] #task Normal priority
6 | - [ ] #task Medium priority 🔼
7 | - [ ] #task High priority ⏫
8 | - [ ] #task Highest priority 🔺
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/TaskSerializer/DocsSamplesForTaskFormats.test.Serializer_Priorities_tasksPluginEmoji-snippet.approved.md:
--------------------------------------------------------------------------------
1 | - [ ] #task Lowest priority ⏬
2 | - [ ] #task Low priority 🔽
3 | - [ ] #task Normal priority
4 | - [ ] #task Medium priority 🔼
5 | - [ ] #task High priority ⏫
6 | - [ ] #task Highest priority 🔺
7 |
--------------------------------------------------------------------------------
/tests/TestingTools/ApprovalTestsDemo.test.ApprovalTests_JsonVerify.approved.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fred",
3 | "age": 30
4 | }
5 |
--------------------------------------------------------------------------------
/tests/TestingTools/ApprovalTestsDemo.test.ApprovalTests_SimpleVerify.approved.txt:
--------------------------------------------------------------------------------
1 | Hello From Approvals
2 |
--------------------------------------------------------------------------------
/tests/TestingTools/CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify2.approved.txt:
--------------------------------------------------------------------------------
1 | title
2 | (0 + 2) => 2
3 | (0 + 3) => 3
4 | (1 + 2) => 3
5 | (1 + 3) => 4
6 |
--------------------------------------------------------------------------------
/tests/TestingTools/CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify3.approved.txt:
--------------------------------------------------------------------------------
1 | title
2 | (0 + 2 + 4) => 6
3 | (0 + 2 + 5) => 7
4 | (0 + 3 + 4) => 7
5 | (0 + 3 + 5) => 8
6 | (1 + 2 + 4) => 7
7 | (1 + 2 + 5) => 8
8 | (1 + 3 + 4) => 8
9 | (1 + 3 + 5) => 9
10 |
--------------------------------------------------------------------------------
/tests/TestingTools/CombinationApprovalsAsync.test.CombinationApprovalsAsync_verify4.approved.txt:
--------------------------------------------------------------------------------
1 | title
2 | (0 + 2 + 4 + 6) => 12
3 | (0 + 2 + 4 + 7) => 13
4 | (0 + 2 + 5 + 6) => 13
5 | (0 + 2 + 5 + 7) => 14
6 | (0 + 3 + 4 + 6) => 13
7 | (0 + 3 + 4 + 7) => 14
8 | (0 + 3 + 5 + 6) => 14
9 | (0 + 3 + 5 + 7) => 15
10 | (1 + 2 + 4 + 6) => 13
11 | (1 + 2 + 4 + 7) => 14
12 | (1 + 2 + 5 + 6) => 14
13 | (1 + 2 + 5 + 7) => 15
14 | (1 + 3 + 4 + 6) => 14
15 | (1 + 3 + 4 + 7) => 15
16 | (1 + 3 + 5 + 6) => 15
17 | (1 + 3 + 5 + 7) => 16
18 |
--------------------------------------------------------------------------------
/tests/TestingTools/CombinationApprovalsAsync.test.demonstrate_async_combination_approvals_documentation_example.approved.txt:
--------------------------------------------------------------------------------
1 | sample outputs
2 | (0, hello, true) => 0 'hello' true
3 | (0, hello, false) => 0 'hello' false
4 | (0, world, true) => 0 'world' true
5 | (0, world, false) => 0 'world' false
6 | (1, hello, true) => 1 'hello' true
7 | (1, hello, false) => 1 'hello' false
8 | (1, world, true) => 1 'world' true
9 | (1, world, false) => 1 'world' false
10 |
--------------------------------------------------------------------------------
/tests/TestingTools/HTMLHelpers.ts:
--------------------------------------------------------------------------------
1 | import * as prettier from 'prettier';
2 |
3 | export function prettifyHTML(modalHTML: string) {
4 | return prettier.format(modalHTML, {
5 | parser: 'html',
6 | bracketSameLine: true,
7 | htmlWhitespaceSensitivity: 'ignore',
8 | printWidth: 120,
9 | });
10 | }
11 |
--------------------------------------------------------------------------------
/tests/TestingTools/SortingTestHelpers.ts:
--------------------------------------------------------------------------------
1 | import type { Sorter } from '../../src/Query/Sort/Sorter';
2 | import type { Task } from '../../src/Task/Task';
3 | import { Sort } from '../../src/Query/Sort/Sort';
4 | import { SearchInfo } from '../../src/Query/SearchInfo';
5 |
6 | export function sortBy(sorters: Sorter[], tasks: Task[]) {
7 | return Sort.by(sorters, tasks, SearchInfo.fromAllTasks(tasks));
8 | }
9 |
--------------------------------------------------------------------------------
/tests/global-setup.js:
--------------------------------------------------------------------------------
1 | module.exports = async () => {
2 | process.env.TZ = 'UTC';
3 |
4 | /*
5 | * Below is an example alternative time zone, for experimentation.
6 | * See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
7 | * Note: Currently many tests fail if the timezone is changed, due to
8 | * the use of `moment.toISOString()` in the `toEqualMoment()`
9 | * custom matcher in our tests.
10 | */
11 | // process.env.TZ = 'Pacific/Auckland';
12 | };
13 |
--------------------------------------------------------------------------------