Task States

by lucasmantuan
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Toggle task states by clicking the checkbox, cycling through TODO, STANDBY, DONE, CANCELLED, PRIORITY and PROGRESS directly in Markdown task lists.

Reviews

No reviews yet.

Stats

stars
96
downloads
0
forks
25
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Task States

Toggle and customize Markdown task states by clicking the checkbox, with per-state colors, an optional date tag, and a drag-to-reorder click cycle.

Features

  • Cycle task states with a single checkbox click, in Reading view, Live Preview, and Source mode.
  • Six cyclic states plus a non-cyclic [:] NOTE state, each with its own Markdown marker, name, and color.
  • Per-state customization: name, checkbox color, text color, and strikethrough.
  • Drag-and-drop reordering of the intermediate states, which also changes the click cycle.
  • Optional date on any task: pick it from a calendar button or a command, shown formatted in Reading view.
  • Configurable date format, language, and tag colors.
  • Everything is stored as plain Markdown in the note, and no other plugin is required.
  • Works with -, *, and + task bullets, nested tasks, and blockquote task lines.
  • Works on desktop and mobile.

State cycle

Clicking a task checkbox advances it to the next state:

Marker State Default color
[ ] TODO grey
[!] PRIORITY green
[>] PROGRESS amber
[*] STANDBY purple
[-] CANCELLED red
[x] DONE grey

The cycle runs TODO → PRIORITY → PROGRESS → STANDBY → CANCELLED → DONE → back to TODO.

TODO is always first and DONE is always last. The four intermediate states (PRIORITY, PROGRESS, STANDBY, CANCELLED) can be reordered by drag-and-drop in the settings, which changes the click cycle accordingly.

NOTE state (non-cyclic)

  • [:] NOTE stays outside the click cycle.
  • Apply it by typing the [:] marker on a task line. Clicking its checkbox leaves the state unchanged.
  • Customize its name and color in the settings, under "Non-cyclic State".

Task dates

Each task can carry a date, written on the task line as the inline field [data:: YYYY-MM-DD].

  • In Reading view, a small calendar button appears next to each task checkbox. Click it to open a date picker with Clear, Today, Cancel, and Apply.
  • In the editor, run the command "Add or update task date" to set the date on the task at the cursor. You can assign it a hotkey (there is a shortcut button in the settings).
  • In Reading view the date is displayed formatted and styled as a tag, while the raw [data:: ...] text stays in the note.

Customization

Open Settings, go to Community plugins, and select Task States.

Task State Names and Colors

  • Rename any state. The Markdown markers themselves are fixed.
  • Set each state's checkbox color (the circle in front of its marker).
  • Set the task text color for STANDBY, CANCELLED, and DONE.
  • Toggle strikethrough on the task text for CANCELLED and DONE (shown as a wavy line in the state color).
  • Drag the intermediate states by the handle to set the click cycle order.

Non-cyclic State

  • Name and color for the [:] NOTE state.

Displayed Date Format

  • Format: the date pattern, for example DD MMMM, YYYY, DD/MM/YYYY, or MMMM D, YYYY.
  • Locale: the language code, for example pt-br, en, es, or fr.

Date Tag Colors

  • Background color and opacity of the date tag.
  • Color and opacity of the formatted date text.

Date Hotkey

  • A button that opens the hotkey settings already filtered to the date command.

Restore Defaults

  • Resets names, colors, text colors, strikethrough, cycle order, and all date settings.

Usage

  1. Open a Markdown note with task items, for example - [ ] Task.
  2. Click directly on the checkbox to advance the state.
  3. Type [:] for a NOTE, or use the calendar button or command to add a date.

How it works

  • In Reading view, the plugin intercepts checkbox clicks, finds the matching task line in the note, and rewrites that line's marker.
  • In Source mode and Live Preview, it resolves the clicked line in the editor and updates that task marker directly.
  • Names, colors, text colors, strikethrough, and tag colors are applied through CSS variables set on the document, so changes take effect immediately.
  • An unknown marker is normalized to [ ] (TODO) on the next click, except the non-cyclic [:] NOTE marker, which is preserved.

Compatibility

The date is stored as the inline field [data:: YYYY-MM-DD], which the Dataview plugin can read. The formatted display in Reading view works on its own and does not require any other plugin.

Installation

From Obsidian

  1. Open Settings, go to Community plugins, and turn off Restricted mode.
  2. Browse the community plugins, search for "Task States", install it, and enable it.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Copy them into <vault>/.obsidian/plugins/task-states/.
  3. Reload Obsidian and enable the plugin in Settings, under Community plugins.

License

Released under the MIT License. See LICENSE.