Markdown Tasks
Manage each task as an individual Markdown file in Visual Studio Code.
Features
- Task Management: View and manage tasks in a dedicated Webview table.
- Filter & Sort: Filter by Priority, Status, Tags, and Title. Sort by Updated date, Alphabetical order, or Due date.
- Template System: Create new tasks easily using customizable templates.
- Bulk Operations: Add or remove tags from all files in a folder.
- Migemo Support: Japanese fuzzy search support for task titles.
Getting Started
- Install the extension.
- Open a folder or workspace.
- Enable the extension by setting
markdownTasks.enabled to true in your settings or via the prompt.
- Open the "Markdown Tasks" view in the Activity Bar.
Path Configuration
You can configure where the extension looks for tasks and templates using markdownTasks.searchPaths and markdownTasks.templatePaths.
Path Variables
Variables must be placed at the start of the path string.
${workspaceFolder}: The root of the currently open workspace.
${workspaceFolder:name}: The root of a specific workspace folder (required for multi-root workspaces).
Relative Paths
If you have a single folder open, you can use relative paths (e.g., docs/tasks).
- Paths starting with
./ or ../ are not allowed.
- Relative paths are not allowed in multi-root workspaces (use
${workspaceFolder:name} instead).
Each task is a Markdown file with YAML frontmatter.
---
title: My Task
priority: High
status: Active
tags:
- work
- project
due: 2023-12-31
---
Task description goes here...
- title: Task title (optional, defaults to filename).
- priority: Priority level (configurable).
- status: Status label (configurable).
- tags: List of tags.
- due: Due date string (e.g., YYYY-MM-DD).
Template System
You can define templates for creating new tasks. Configure markdownTasks.templatePaths to point to your template folder.
Template Example:
---
titleTemplate: Daily Log ${yyyy}-${MM}-${dd}
outputDirectory: ${workspaceFolder}/logs/${yyyy}/${MM}
tags:
- log
---
## Notes
Special Frontmatter Keys
titleTemplate: Defines the default title for the new task. Supports variables:
${yyyy}: Year
${MM}: Month
${dd}: Day
outputDirectory: Destination folder for the new task. Supports:
${workspaceFolder}: Workspace root.
${yyyy}, ${MM}, ${dd}: Date variables.
These keys are removed from the generated task file.
Configuration
| Setting |
Description |
Default |
markdownTasks.enabled |
Enable the extension. |
false |
markdownTasks.searchPaths |
Directories to scan for tasks. Supports variables (at start) and clean relative paths (single-root only). |
[] |
markdownTasks.templatePaths |
Directories containing task templates. Supports variables (at start) and clean relative paths (single-root only). |
[] |
markdownTasks.priorities |
List of priority levels. |
[] |
markdownTasks.statuses |
List of status labels. |
[] |
markdownTasks.itemsPerPage |
Number of tasks per page. |
20 |
markdownTasks.indentSize |
Indentation size for frontmatter. |
2 |
markdownTasks.migemoDictPath |
Path to Migemo dictionary for fuzzy search. Supports absolute paths. |
"" |
Commands
MarkdownTasks: Create a new task: Create a task from a template.
Add Tag to Folder Files: Add a specific tag to all Markdown files in a folder.
Remove Tag from Folder Files: Remove a specific tag from all Markdown files in a folder.
Open Source Attribution
This extension uses the following Open Source Software: