joplin-plugin-calendar-notes 0.9.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Henry Heino
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,204 @@
1
+ # Calendar Notes
2
+
3
+ Calendar Notes is a Joplin plugin that adds a small calendar panel for opening or creating day-based notes.
4
+
5
+ Use it as a lightweight daily journal, work log, meeting diary, or any workflow where one note should represent one calendar day.
6
+
7
+ ## Features
8
+
9
+ - Open a calendar from the note toolbar or the **Tools** menu.
10
+ - Click any day to open the note for that date.
11
+ - Automatically create the note if it does not exist yet.
12
+ - Highlight calendar days that already have matching notes.
13
+ - Navigate between months and jump back to today.
14
+ - Configure the note title format.
15
+ - Choose whether the week starts on Monday or Sunday.
16
+ - Store new calendar notes in a dedicated notebook path.
17
+ - Use an existing Joplin note as a template for newly created calendar notes.
18
+ - Supports English and Russian UI text.
19
+
20
+ ## Requirements
21
+
22
+ - Joplin **3.5** or newer.
23
+
24
+ ## Installation
25
+
26
+ ### From Joplin
27
+
28
+ When the plugin is available in the Joplin plugin registry:
29
+
30
+ 1. Open **Tools → Options → Plugins**.
31
+ 2. Search for **Calendar Notes**.
32
+ 3. Install the plugin and restart Joplin if prompted.
33
+
34
+ ### Manual installation
35
+
36
+ 1. Download the plugin `.jpl` file from the release artifacts.
37
+ 2. Open **Tools → Options → Plugins**.
38
+ 3. Choose **Install from file**.
39
+ 4. Select the downloaded `.jpl` file.
40
+ 5. Restart Joplin if prompted.
41
+
42
+ ## Usage
43
+
44
+ 1. Click the calendar button in the note toolbar, or use **Tools → Toggle Calendar**.
45
+ 2. The calendar panel opens with the current month.
46
+ 3. Click a day:
47
+ - if a matching note already exists, it is opened;
48
+ - otherwise, a new note is created and opened.
49
+ 4. Use **Previous**, **Next**, and **Today** to navigate the calendar.
50
+ 5. Use **Refresh** if you want to update calendar markers manually.
51
+
52
+ ## How notes are matched
53
+
54
+ Calendar Notes identifies existing notes by their title.
55
+
56
+ For each visible day, the plugin builds the expected title using the configured note title format. If a note with exactly that title exists anywhere in Joplin, the day is marked as having a note.
57
+
58
+ By default, notes are named using this format:
59
+
60
+ ```text
61
+ {{YYYY-MM-dd}}
62
+ ```
63
+
64
+ For example, the note for January 5, 2026 is created as:
65
+
66
+ ```text
67
+ 2026-01-05
68
+ ```
69
+
70
+ > Existing calendar notes are searched globally by title in all notebooks. New notes are created in the configured notebook path, or in the currently selected notebook if no path is configured.
71
+
72
+ ## Settings
73
+
74
+ Open **Tools → Options → Calendar Notes** to configure the plugin.
75
+
76
+ ### Note title format
77
+
78
+ Controls how calendar note titles are generated.
79
+
80
+ Date expressions must be wrapped in `{{...}}`. Text outside the braces is kept as-is.
81
+
82
+ Examples:
83
+
84
+ ```text
85
+ {{YYYY-MM-dd}}
86
+ Daily note {{dd.MM.YYYY}}
87
+ Journal / {{YYYY}}-{{MM}}-{{dd}}
88
+ ```
89
+
90
+ Supported date tokens:
91
+
92
+ | Token | Meaning | Example |
93
+ | --- | --- | --- |
94
+ | `YYYY`, `yyyy` | Four-digit year | `2026` |
95
+ | `YY` | Two-digit year | `26` |
96
+ | `MM`, `mm` | Two-digit month | `01` |
97
+ | `M`, `m` | Month without leading zero | `1` |
98
+ | `DD`, `dd` | Two-digit day | `05` |
99
+ | `D`, `d` | Day without leading zero | `5` |
100
+
101
+ ### Week starts on
102
+
103
+ Controls the first day of the week in the calendar panel.
104
+
105
+ Available values:
106
+
107
+ - Monday
108
+ - Sunday
109
+
110
+ ### Calendar notes notebook path
111
+
112
+ Controls where new calendar notes are created.
113
+
114
+ Example:
115
+
116
+ ```text
117
+ Calendar Notes/2026
118
+ ```
119
+
120
+ If the path does not exist, the plugin creates the missing notebooks automatically.
121
+
122
+ If this setting is empty, new notes are created in the currently selected notebook. If no notebook is selected, Joplin's first available notebook is used as a fallback.
123
+
124
+ Notebook paths may use `/` or `\` as separators.
125
+
126
+ ### New calendar note template path
127
+
128
+ Allows using an existing Joplin note as the body template for newly created calendar notes.
129
+
130
+ Example:
131
+
132
+ ```text
133
+ Templates/Calendar note
134
+ ```
135
+
136
+ If this setting is empty, new calendar notes are created with an empty body.
137
+
138
+ The value is a Joplin note path. The last path segment is treated as the template note title, and the previous segments are treated as notebook names.
139
+
140
+ ## Template placeholders
141
+
142
+ Template note bodies support placeholders that are replaced when a calendar note is created.
143
+
144
+ Example template:
145
+
146
+ ```markdown
147
+ # {{title}}
148
+
149
+ Date: {{date}}
150
+
151
+ ## Plan
152
+
153
+ -
154
+
155
+ ## Notes
156
+
157
+
158
+ ## Summary
159
+
160
+ ```
161
+
162
+ Supported placeholders:
163
+
164
+ | Placeholder | Meaning | Example |
165
+ | --- | --- | --- |
166
+ | `{{title}}`, `{{noteTitle}}` | Generated note title | `2026-01-05` |
167
+ | `{{date}}`, `{{isoDate}}` | ISO date | `2026-01-05` |
168
+ | `{{YYYY}}`, `{{yyyy}}` | Four-digit year | `2026` |
169
+ | `{{YY}}` | Two-digit year | `26` |
170
+ | `{{MM}}`, `{{mm}}` | Two-digit month | `01` |
171
+ | `{{M}}`, `{{m}}` | Month without leading zero | `1` |
172
+ | `{{DD}}`, `{{dd}}` | Two-digit day | `05` |
173
+ | `{{D}}`, `{{d}}` | Day without leading zero | `5` |
174
+ | `{{date:dd.MM.YYYY}}` | Custom date expression | `05.01.2026` |
175
+
176
+ The `date:` placeholder accepts the same date tokens as the note title format.
177
+
178
+ ## Important notes
179
+
180
+ - Matching is title-based. If several notes have the same generated title, the plugin opens the first matching note returned by Joplin.
181
+ - Changing the note title format changes which existing notes are recognized as calendar notes.
182
+ - Existing notes are searched in all notebooks, even when a calendar notes notebook path is configured.
183
+ - New notes receive their user-created and user-updated timestamps set to the start of the selected local day.
184
+ - The plugin does not move or rename existing notes automatically.
185
+
186
+ ## Development
187
+
188
+ Install dependencies:
189
+
190
+ ```bash
191
+ npm install
192
+ ```
193
+
194
+ Build the plugin:
195
+
196
+ ```bash
197
+ npm run dist
198
+ ```
199
+
200
+ The build process creates the plugin package in the generated publish output used by the Joplin plugin tooling.
201
+
202
+ ## License
203
+
204
+ MIT
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "joplin-plugin-calendar-notes",
3
+ "version": "0.9.0",
4
+ "description": "Create notes for any day in the calendar",
5
+ "author": "Eugene Lesnov",
6
+ "scripts": {
7
+ "dist": "webpack --env joplin-plugin-config=buildMain && webpack --env joplin-plugin-config=buildExtraScripts && webpack --env joplin-plugin-config=createArchive",
8
+ "prepare": "npm run dist",
9
+ "updateVersion": "webpack --env joplin-plugin-config=updateVersion",
10
+ "update": "npm install -g generator-joplin && yo joplin --node-package-manager npm --update --force"
11
+ },
12
+ "license": "MIT",
13
+ "keywords": [
14
+ "joplin-plugin"
15
+ ],
16
+ "files": [
17
+ "publish"
18
+ ],
19
+ "homepage": "https://github.com/eugene-lesnov/joplin-plugin-calendar-notes",
20
+ "repository": {
21
+ "url": "https://github.com/eugene-lesnov/joplin-plugin-calendar-notes"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^18.7.13",
25
+ "chalk": "^4.1.0",
26
+ "copy-webpack-plugin": "^11.0.0",
27
+ "fs-extra": "^10.1.0",
28
+ "glob": "^8.0.3",
29
+ "tar": "^6.1.11",
30
+ "ts-loader": "^9.3.1",
31
+ "typescript": "^4.8.2",
32
+ "webpack": "^5.74.0",
33
+ "webpack-cli": "^4.10.0"
34
+ }
35
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "manifest_version": 1,
3
+ "id": "com.github.eugenelesnov.CalendarNotes",
4
+ "app_min_version": "3.5",
5
+ "version": "1.0.0",
6
+ "name": "Calendar Notes",
7
+ "description": "Create notes for any day in the calendar.",
8
+ "author": "Eugene Lesnov",
9
+ "homepage_url": "",
10
+ "repository_url": "",
11
+ "keywords": [],
12
+ "categories": [],
13
+ "screenshots": [],
14
+ "icons": {},
15
+ "promo_tile": {},
16
+ "_publish_hash": "sha256:f51b4c4f78a7b5cd1146b6658db394f377cfb79afe250e020859964d139f6d53",
17
+ "_publish_commit": "main:8f0d5859e4476bb189b4458321918a64a05e538e"
18
+ }