joplin-plugin-inline-todo 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -26,12 +26,12 @@ The basic function of this plugin is to have a single note where you can view al
|
|
|
26
26
|
- Joplin -> Preferences (macOS))
|
|
27
27
|
|
|
28
28
|
## TODO Types
|
|
29
|
-
###
|
|
29
|
+
### Metalist Style
|
|
30
30
|
Inspired by [this post](https://discourse.joplinapp.org/t/create-a-task-report-plugin-for-a-joplin-note-taking-app/21177) on the Joplin forum. This is the preferred style because it uses the markdown checkbox format (plus some special syntax), making it trivial to check the box and hide the TODO from the summary.
|
|
31
31
|
|
|
32
|
-
The basic form is a checkbox, followed any (or all) of: @
|
|
32
|
+
The basic form is a checkbox, followed any (or all) of: @category (this is a primary filtering field, so there can only be one), //date, +tags, and finally the TODO content. Having at least on of these special fields is required for the todo to be picked up by the plugin, without them it is just a plain checkbox.
|
|
33
33
|
|
|
34
|
-
@
|
|
34
|
+
@category does not need to be a person, it can also be viewed as a category. It will sometimes affect the rendering of the content by grouping categories.
|
|
35
35
|
```
|
|
36
36
|
I take a lot of notes about various things. It can be helpful to
|
|
37
37
|
keep my TODOs together with the content they pertain to.
|
|
@@ -66,7 +66,7 @@ I'd still like a way to view all these! See below.
|
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### List Style
|
|
69
|
-
This style just uses markdown checklist items. What sets this apart from the
|
|
69
|
+
This style just uses markdown checklist items. What sets this apart from the Metalist style is the lack of support for categories and dates in this style. This style was created for users that are already happy using plain checklists for their tasks, but want an additional place to collect them. For most users, I recommend the Metalist style instead.
|
|
70
70
|
|
|
71
71
|
```
|
|
72
72
|
I take a lot of notes about various things. It can be helpful to
|
|
@@ -111,7 +111,7 @@ This style is meant for personal use, the table method (below) is recommended fo
|
|
|
111
111
|
This is particularly powerful when combined with hieuthi's [table sorting plugin](https://discourse.joplinapp.org/t/plugin-markdown-table-sortable/21846). (warning: if you use the "apply sorting" feature, the sort will be overwritten when a new summary is written, don't rely on it!).
|
|
112
112
|
|
|
113
113
|
```
|
|
114
|
-
| Task |
|
|
114
|
+
| Task | Category | Due | Tags | Notebook | Note |
|
|
115
115
|
| ---- | -------- | --- | ---- | -------- | ---- |
|
|
116
116
|
| Have some me time | Linda | 2022-01-13 | | Folder 3 | [Note a](:/e710b7af31fc47c89ca5fc4d3c0ecb3a)
|
|
117
117
|
| Call Teddy | Bob | | repairs | Folder 2 | [Note c](:/ef3aac56ffa246baa6a96cc94dd8f25e)
|
|
@@ -126,11 +126,40 @@ Todos can be filtered such that the plugin will only display Todos from specific
|
|
|
126
126
|
<!-- inline-todo-plugin Work "Special Project" -->
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
+
## Custom Editor (GUI View)
|
|
130
|
+
The plugin includes an optional custom editor that replaces the markdown summary note with an interactive GUI. This gives you a more visual way to work with your TODOs, with the ability to filter, sort, and manage tasks directly from the interface.
|
|
131
|
+
|
|
132
|
+
The powerful feature of the custom editor is the **saved filters**. Instead of having a single view of all your TODOs, you can create multiple named filter views that each show a different subset of your tasks. For example, you might have:
|
|
133
|
+
- A "Work" filter showing only TODOs from work-related notebooks
|
|
134
|
+
- A "This Week" filter showing only TODOs due in the next 7 days
|
|
135
|
+
- A "High Priority" filter for tasks with specific tags or categories
|
|
136
|
+
- A "Project X" filter combining specific notebooks, categories, and tags
|
|
137
|
+
|
|
138
|
+
Each saved filter appears in the sidebar with a count of open TODOs matching that filter, making it easy to see at a glance what needs attention. You can quickly switch between filters to get different perspectives on your TODO list without creating multiple summary notes.
|
|
139
|
+
|
|
140
|
+
Filters can combine criteria including:
|
|
141
|
+
- Notebooks
|
|
142
|
+
- Notes
|
|
143
|
+
- Categories (@category)
|
|
144
|
+
- Tags (+tag)
|
|
145
|
+
- Due dates (relative to the current date)
|
|
146
|
+
- Completion status
|
|
147
|
+
|
|
148
|
+
### Enabling the Custom Editor
|
|
149
|
+
The custom editor is currently off by default, but will be enabled by default in a future release.
|
|
150
|
+
|
|
151
|
+
To enable it now:
|
|
152
|
+
1. Go to `Tools -> Options -> Inline TODO` (Windows/Linux) or `Joplin -> Preferences -> Inline TODO` (macOS)
|
|
153
|
+
2. Check the box for "Enable custom editor for summary notes"
|
|
154
|
+
3. Open or navigate to your TODO summary note
|
|
155
|
+
|
|
156
|
+
The custom editor will automatically activate when you open a summary note (any note containing the `<!-- inline-todo-plugin -->` comment). If it doesn't open automatically, press the eye icon in the top right corner of the screen, this eye is used to toggle between the typical Joplin editor, and the new custom editor. You can click on TODOs to jump to their source note, mark them complete, or apply filters to focus on specific subsets of tasks.
|
|
157
|
+
|
|
129
158
|
|
|
130
159
|
# Roadmap
|
|
131
160
|
I consider this plugin to be finished (it meets my needs). But below are some ideas that I will implement in the future if I have some time.
|
|
132
161
|
### Ideas
|
|
133
|
-
- [ ] Add in support for spaces in the
|
|
162
|
+
- [ ] Add in support for spaces in the category field of the metalist style. This will allow for categories like @"Caleb John"
|
|
134
163
|
- [ ] Add in the fuzzy date handling (e.g. mid april)
|
|
135
164
|
- [ ] Add a renderer component that adds html ids (so we can scroll to TODOs)
|
|
136
165
|
- [ ] Add support for the [Metis plugin](https://github.com/hieuthi/joplin-plugin-metis) (todo.txt)
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joplin-plugin-inline-todo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dist": "webpack --env joplin-plugin-config=buildMain && webpack --env joplin-plugin-config=buildExtraScripts && webpack --env joplin-plugin-config=createArchive",
|
|
6
6
|
"prepare": "npm run dist",
|
|
7
7
|
"updateVersion": "webpack --env joplin-plugin-config=updateVersion",
|
|
8
8
|
"update": "npm install -g generator-joplin && yo joplin --node-package-manager npm --update --force",
|
|
9
|
+
"preversion": "npm run test",
|
|
9
10
|
"updatetags": "LOGS=$(git log $(git describe --tags --abbrev=0 HEAD~1)..HEAD~1 --oneline) && git tag -fam \"v$npm_package_version\n\n$LOGS\" v$npm_package_version && git tag -fa v$npm_package_version",
|
|
11
|
+
"test": "jest",
|
|
10
12
|
"postversion": "npm run updatetags && git push origin master --tags",
|
|
11
13
|
"version": "sed -i '/\\\"version\\\": \\\"/s/[^\\\"]*\\\",/'\"$npm_package_version\\\",/\" src/manifest.json && git add src/manifest.json"
|
|
12
14
|
},
|
|
@@ -17,23 +19,52 @@
|
|
|
17
19
|
"todo"
|
|
18
20
|
],
|
|
19
21
|
"devDependencies": {
|
|
22
|
+
"@eslint/js": "^9.38.0",
|
|
23
|
+
"@tailwindcss/cli": "^4.1.14",
|
|
24
|
+
"@types/jest": "^30.0.0",
|
|
20
25
|
"@types/node": "^18.7.13",
|
|
21
26
|
"chalk": "^4.1.0",
|
|
27
|
+
"class-variance-authority": "^0.7.1",
|
|
28
|
+
"clsx": "^2.1.1",
|
|
22
29
|
"copy-webpack-plugin": "^11.0.0",
|
|
30
|
+
"esbuild-loader": "^4.4.0",
|
|
31
|
+
"eslint": "^9.38.0",
|
|
32
|
+
"eslint-plugin-react": "^7.37.5",
|
|
33
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
23
34
|
"fs-extra": "^10.1.0",
|
|
24
35
|
"glob": "^8.0.3",
|
|
36
|
+
"globals": "^16.4.0",
|
|
37
|
+
"jest": "^30.2.0",
|
|
38
|
+
"lucide-react": "^0.544.0",
|
|
25
39
|
"on-build-webpack": "^0.1.0",
|
|
40
|
+
"react": "^19.1.1",
|
|
41
|
+
"react-dom": "^19.1.1",
|
|
42
|
+
"tailwind-merge": "^3.3.1",
|
|
43
|
+
"tailwindcss": "^4.1.14",
|
|
26
44
|
"tar": "^6.1.11",
|
|
45
|
+
"ts-jest": "^29.4.6",
|
|
27
46
|
"ts-loader": "^9.3.1",
|
|
47
|
+
"tw-animate-css": "^1.4.0",
|
|
28
48
|
"typescript": "^4.8.2",
|
|
49
|
+
"typescript-eslint": "^8.46.2",
|
|
29
50
|
"webpack": "^5.74.0",
|
|
30
51
|
"webpack-cli": "^4.10.0",
|
|
31
52
|
"yargs": "^16.2.0"
|
|
32
53
|
},
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"ics": "^3.8.1"
|
|
35
|
-
},
|
|
36
54
|
"files": [
|
|
37
55
|
"publish"
|
|
38
|
-
]
|
|
56
|
+
],
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@joplin/utils": "^3.4.1",
|
|
59
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
60
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
61
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
62
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
63
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
64
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
65
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
66
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
67
|
+
"luxon": "^3.7.2",
|
|
68
|
+
"react-select": "^5.10.2"
|
|
69
|
+
}
|
|
39
70
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! For license information please see index.js.LICENSE.txt */
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 1,
|
|
3
3
|
"id": "plugin.calebjohn.todo",
|
|
4
|
-
"app_min_version": "2
|
|
5
|
-
"version": "
|
|
4
|
+
"app_min_version": "3.4.2",
|
|
5
|
+
"version": "2.0.0",
|
|
6
6
|
"name": "Inline TODO",
|
|
7
7
|
"description": "Write TODOs *everywhere* and view them in one place.",
|
|
8
8
|
"author": "Caleb John",
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
"48": "icons/48.png",
|
|
28
28
|
"128": "icons/128.png"
|
|
29
29
|
},
|
|
30
|
-
"_publish_hash": "sha256:
|
|
31
|
-
"_publish_commit": "master:
|
|
30
|
+
"_publish_hash": "sha256:4668b00de8700de8f70393261977d988cfa0e21a4b1f662c27430d55a1b68890",
|
|
31
|
+
"_publish_commit": "master:187b75a9b6b92a8cbb272632740c512f549d86c5"
|
|
32
32
|
}
|