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
|
+
}
|
|
Binary file
|
|
@@ -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
|
+
}
|