joplin-plugin-inline-todo 1.9.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
- ### Confluence Style
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: @assignee (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.
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
- @assignee 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 assignees.
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 Confluence 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 Confluence style instead.
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 | Assignee | Due | Tags | Notebook | Note |
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 assignee field of the confluence style. This will allow for assignees like @"Caleb John"
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": "1.9.0",
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.7",
5
- "version": "1.9.0",
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:5ff31bda3dfbc7364008647696b15cdc18e26c0085d4950deef13a302b723d74",
31
- "_publish_commit": "master:7c04ab48d866b195cd4c83829bb3e3cf5db3998a"
30
+ "_publish_hash": "sha256:4668b00de8700de8f70393261977d988cfa0e21a4b1f662c27430d55a1b68890",
31
+ "_publish_commit": "master:187b75a9b6b92a8cbb272632740c512f549d86c5"
32
32
  }