joplin-plugin-inline-todo 1.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 ADDED
@@ -0,0 +1,117 @@
1
+ # Inline TODOs
2
+ A plugin that allows you to manage your TODOs anywhere in your notes and view a summary in one place.
3
+
4
+ This plugin was initially written before the plugin system and interacted with Joplin through the API. I've been using it like that for the last few years. I finally took the time to translate it into the official Plugin system. Its implementation is pretty specific to my workflow and I don't plan to update it much, as it works for me.
5
+
6
+ # Installation
7
+ - Go to `Tools -> Options -> Plugins`
8
+ - Search for "Inline TODO" in the search box
9
+ - Click Install and restart Joplin
10
+ - Create a Todo Summary in your folder of choice (Tools -> Create TODO Summary Note)
11
+
12
+
13
+ # Configuration
14
+ ## TODO Types
15
+ ### Confluence Style
16
+ 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 (making it trivial to check the box and hide the TODO from the summary).
17
+ This format does have the limitation that it only accepts dates of the form YYYY-MM-DD.
18
+
19
+ The basic form is a checkbox, followed by @category (this can be anything, including an assignee), followed by an optional date (prefixed with //), and finally the TODO content.
20
+
21
+ ```
22
+ I take a lot of notes about various things. It can be helpful to
23
+ keep my TODOs together with the content they pertain to.
24
+
25
+ - [ ] @TODO Think about how to make a plugin to solve this
26
+
27
+ This way the TODO benefits from context.
28
+
29
+ - [ ] @TODO //2022-04-04 Release the TODO plugin!
30
+
31
+ I'd still like a way to view all these! See below.
32
+ ```
33
+
34
+
35
+ ### Link Style
36
+ This is a simple TODO style that I've been using for the last few years. It intentionally uses the markdown link syntax which gives it highlighting in the editor and the viewer.
37
+ This format can accept a [wider variety](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#date_time_string_format) of date formats.
38
+
39
+ The basic form is a link, where the name is "TODO" and the date replaces the URL section. The TODO content just follows after.
40
+
41
+ ```
42
+ I take a lot of notes about various things. It can be helpful to
43
+ keep my TODOs together with the content they pertain to.
44
+
45
+ [TODO]() Think about how to make a plugin to solve this
46
+
47
+ This way the TODO benefits from context.
48
+
49
+ [TODO](2022-04-04) Release the TODO plugin!
50
+
51
+ I'd still like a way to view all these! See below.
52
+ ```
53
+
54
+ ### List Style
55
+ 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.
56
+
57
+ ```
58
+ I take a lot of notes about various things. It can be helpful to
59
+ keep my TODOs together with the content they pertain to.
60
+
61
+ - [ ] Think about how to make a plugin to solve this
62
+
63
+ This way the TODO benefits from context.
64
+
65
+ - [ ] Release the TODO plugin!
66
+
67
+ I'd still like a way to view all these! See below.
68
+ ```
69
+
70
+
71
+ ## Summary Types
72
+ There are two supported summary styles.
73
+
74
+ ### Plain
75
+ This is the basic style that I created for myself, and have been using for the last few years.
76
+
77
+ It starts by showing all the TODOs that have dates under the DUE section (sorted by date). After that, all the other TODOs are shown in no specific order under their respective category and parent notebook.
78
+
79
+ This style is meant for personal use, the table method (below) is recommended for more complex use.
80
+
81
+ ```
82
+ # DUE
83
+ - [Note a](:/e710b7af31fc47c89ca5fc4d3c0ecb3a): 2022-01-13 Have some me time
84
+
85
+ - [Note b](:/beef7ed6d91649149751cea8d14af02d): 2022-03-12 Meat delivery
86
+
87
+ # Bob
88
+ ## Folder 2
89
+ - [Note c](:/ef3aac56ffa246baa6a96cc94dd8f25e): Call Teddy
90
+
91
+ # Linda
92
+ ## Folder 1
93
+ - [Note b](:/beef7ed6d91649149751cea8d14af02d): I'll get to this eventually
94
+ ```
95
+
96
+ ### Table
97
+ This is particularly powerful when combined with hieuthi's [table sorting plugin](https://discourse.joplinapp.org/t/plugin-markdown-table-sortable/21846).
98
+
99
+ ```
100
+ | Task | Assignee | Due | Notebook | Note |
101
+ | ---- | -------- | --- | -------- | ---- |
102
+ | Have some me time | Linda | 2022-01-13 | Folder 3 | [Note a](:/e710b7af31fc47c89ca5fc4d3c0ecb3a)
103
+ | Call Teddy | Bob | | Folder 2 | [Note c](:/ef3aac56ffa246baa6a96cc94dd8f25e)
104
+ | I'll get to this eventually | Linda | | Folder 1 | [Note b](:/beef7ed6d91649149751cea8d14af02d)
105
+ | Meat delivery | Bob | 2022-03-12 | Folder 1 | [Note b](:/beef7ed6d91649149751cea8d14af02d)
106
+ ```
107
+
108
+
109
+ # Roadmap
110
+ 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.
111
+ ### Ideas
112
+ - [ ] More robust date handling for List style TODO
113
+ - [ ] Add in the fuzzy date handling (e.g. mid april)
114
+ - [ ] Add a renderer component that adds html ids (so we can scroll to TODOs)
115
+ - [ ] Add support for the [Metis plugin](https://github.com/hieuthi/joplin-plugin-metis) (todo.txt)
116
+ - [ ] [xit format](https://xit.jotaen.net/)
117
+
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "joplin-plugin-inline-todo",
3
+ "version": "1.0.0",
4
+ "scripts": {
5
+ "dist": "webpack --joplin-plugin-config buildMain && webpack --joplin-plugin-config buildExtraScripts && webpack --joplin-plugin-config createArchive",
6
+ "prepare": "npm run dist",
7
+ "update": "npm install -g generator-joplin && yo joplin --update",
8
+ "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",
9
+ "postversion": "npm run updatetags && git push origin master --tags",
10
+ "version": "sed -i '/\\\"version\\\": \\\"/s/[^\\\"]*\\\",/'\"$npm_package_version\\\",/\" src/manifest.json && git add src/manifest.json"
11
+ },
12
+ "license": "MIT",
13
+ "keywords": [
14
+ "joplin-plugin", "todo"
15
+ ],
16
+ "devDependencies": {
17
+ "@types/node": "^14.0.14",
18
+ "chalk": "^4.1.0",
19
+ "copy-webpack-plugin": "^6.1.0",
20
+ "fs-extra": "^9.0.1",
21
+ "glob": "^7.1.6",
22
+ "on-build-webpack": "^0.1.0",
23
+ "tar": "^6.0.5",
24
+ "ts-loader": "^7.0.5",
25
+ "typescript": "^3.9.3",
26
+ "webpack": "^4.43.0",
27
+ "webpack-cli": "^3.3.11",
28
+ "yargs": "^16.2.0"
29
+ }
30
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extraScripts": [
3
+ "types.ts",
4
+ "builder.ts",
5
+ "settings_tables.ts",
6
+ "summaryFormatters/table.ts",
7
+ "summaryFormatters/plain.ts",
8
+ "summary.ts"
9
+ ]
10
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "id": "plugin.calebjohn.todo",
4
+ "app_min_version": "2.7",
5
+ "version": "1.0.0",
6
+ "name": "Inline TODO",
7
+ "description": "Write TODOs *everywhere* and view them in one place.",
8
+ "author": "Caleb John",
9
+ "homepage_url": "https://github.com/CalebJohn/joplin-inline-todo#readme",
10
+ "repository_url": "https://github.com/CalebJohn/joplin-inline-todo",
11
+ "keywords": [
12
+ "todo",
13
+ "productivity"
14
+ ],
15
+ "_publish_hash": "sha256:20c2e0a02fbc2a6a68b272f2e8dcc193d009f43ecc41294ef47f1fdc3c2e86f7",
16
+ "_publish_commit": "master:39922806ca28d86d8abb9bc94f52d9b2bebdb4ad"
17
+ }