Victor Wiebe
57eae2b7f8
Phase 3: calendar grid rendering with hover cards and Unscheduled section
...
- src/Gtd/groupEvents.ts: render-ready day/week/month grouping mirroring
upstream semantics (empty groups across the span, month-coloured tiles,
primary labels on month/year boundaries, current-period flag). Divergence:
the span always includes today so the highlight is visible.
- Grouping runs in the main process; payload now carries calendar.groups +
calendar.unscheduled. Webview is a pure DOM builder.
- Webview rebuilds upstream's .event-calendar / .group / .hover-card
structure so existing CSS applies: tile per period, first event's
icon/2-chars (+N for multiples), bg/fg colours, hover card listing
events with type glyphs and strikethrough for completed todos.
- Drilldown: single-event tiles open the note directly; hover-card rows
and Unscheduled chips are individually clickable.
- Stable pastel from note-id hash replaces upstream's per-render random
colour for events without bg-colour.
- Unscheduled section: chip list below the grid (the GTD bucket).
- 9 new grouping tests (42 total)
2026-06-12 18:38:04 -04:00
Victor Wiebe
fc1b2fcabf
Phase 2: real data layer — folder scope, gtd blocks, inclusion matrix
...
- src/Gtd/: pure, unit-tested modules
- parseCalendarConfig: SPEC defaults + warnings for invalid options
- folderScope: BFS scope resolution (this-folder / children / depth N)
- gtdBlock: extract + YAML-parse the first ```gtd fence (empty block
is a valid opt-in; malformed YAML opts in with a surfaced warning)
- resolveDate: gtd date (iso + mm-dd-yyyy) overrides todo_due; nothing
resolvable -> unscheduled (null date)
- collectEvents: orchestrates scope -> fetch -> inclusion matrix ->
date resolution -> sort; always excludes the calendar note
- index.ts: JoplinDataAdapter with pagination; getEvents now returns real
events plus warnings and scan stats
- Webview debug view shows real data: counts, warnings, colours, icons,
strikethrough for completed todos, tooltip from text:
- 24 new unit tests (33 total)
2026-06-12 18:37:47 -04:00
Victor Wiebe
16242a2f44
Phase 1: gtd-calendar fence, webview round trip, drilldown proof
...
- New markdown-it content script intercepts ```gtd-calendar fences and
emits a placeholder div (config URI-encoded in a data attribute)
- New webview asset (gtd-calendar-webview.js) finds placeholders, requests
data via webviewApi.postMessage, renders a debug view, and wires
click-to-open drilldown (openNote command)
- index.ts registers the content script and handles getEvents/openNote;
getEvents parses the YAML config for real but returns hardcoded events,
including one pointing at the current note to prove drilldown
- Old event-calendar content script removed; Calendar/ classes retained
for reuse in Phase 3
- Fork CSS section appended (placeholder, error, debug styles)
2026-06-12 17:55:40 -04:00
Victor Wiebe
5791ee5ec2
Phase 0: rename plugin to GTD Calendar; fix week view grouping bug
...
- New manifest id com.victorwiebe.joplin.plugin.gtd-calendar (coexists with upstream)
- Version reset to 0.1.0
- Fix Calendar/index.ts importing MonthGrouping as WeekGrouping (upstream bug:
week view silently grouped by month)
2026-06-12 17:47:50 -04:00
dfd003c4c2
Add SPEC.md
2026-06-12 15:55:07 +02:00
3cd6c61fa5
Update README.md
2026-06-12 15:54:22 +02:00
Franco Speziali
be1e4c9b97
Updated versioning info
2026-05-27 15:11:14 +02:00
Franco Speziali
6891818d1b
Added coloured blocks for different months
2026-05-27 15:08:13 +02:00
Franco Speziali
7b858f5255
Fixed broken test
2026-05-27 14:37:42 +02:00
Franco Speziali
0020381c08
Maintenance update; updated packages, updated jest tests to use ESM
2026-05-27 14:31:10 +02:00
Franco Speziali
e800147eaa
Default to day grouping if invalid parameter
2023-05-25 15:55:39 +02:00
Franco Speziali
ea994df145
Folder restructuring; grouped view logic together
2023-05-25 15:39:19 +02:00
Franco Speziali
b18c50c205
Removed year grouping
2023-05-25 15:18:14 +02:00
Franco Speziali
904a9c0691
Changed folder structure; all Calendar logic now in src/Calendar
2023-05-25 14:53:22 +02:00
Franco Speziali
f65a4f119f
Updated manifest
2023-02-16 23:13:31 +01:00
Franco Speziali
5c5f71bf06
Fixed localisation of calendar days
2023-02-16 23:09:49 +01:00
Franco Speziali
21c5dfb426
Ran npm run update, updated date-fns packages, changed to version 0.2.2
2023-02-16 22:38:03 +01:00
Franco Speziali
ff2c3794d6
Small CSS fix to allow readability with different themes
2022-10-26 16:26:32 +02:00
Franco Speziali
02a8a7e6eb
Updated versioning, package-lock.json
2022-06-14 18:47:32 +02:00
Franco Speziali
3d19819fb2
Added highlighting for events that fall under the today's day or month
2022-06-14 18:43:41 +02:00
Franco Speziali
a936de4285
Added option for grouping by year (for handling events that span multiple years)
2022-06-14 18:40:47 +02:00
Franco Speziali
1d848131a3
Added default behaviour for events with no icons - use first two letters from title
2022-06-14 18:06:15 +02:00
Franco Speziali
842a3fdcca
Refactored HtmlRenderer - re-organised folder structure
2022-04-25 17:23:01 +02:00
Franco Speziali
e171e443ba
Updated versioning
2022-04-24 22:45:15 +02:00
Franco Speziali
20b4935ed7
Updated README
2022-04-24 22:45:01 +02:00
Franco Speziali
675308db50
Ran Joplin update command
2022-04-24 22:19:45 +02:00
Franco Speziali
e860fcbf79
Renamed EventGroupingHtmlRenderer to make it simpler (HtmlRenderer)
2022-04-24 22:14:28 +02:00
Franco Speziali
da62052e79
Refactored entire rendering module; added new feature for "highlighting" a group, when the current date falls within that group
2022-04-24 22:12:58 +02:00
Franco Speziali
024abebf2a
Added proxy methods for date-fns
2022-04-24 12:24:22 +02:00
Franco Speziali
8c8095bda7
Updated README
2022-04-14 21:46:02 +02:00
Franco Speziali
d6aad53da9
Updated Calendar typings
2022-03-23 17:32:03 +01:00
Franco Speziali
51dfb8cd7f
Updated typescript types for Event
2022-03-23 17:32:03 +01:00
Franco Speziali
97d8429f22
Removed separate Config class
2022-03-23 17:32:00 +01:00
Franco Speziali
b9cbe21203
Removed separate Config class
2022-03-23 11:37:00 +01:00
Franco Speziali
722ddb41e5
Refactoring; Separated EventGrouping class into separate classes for Day, Week, Month. Logic moved upstream into Calendar class. Simplified render selection in interface
2022-03-23 11:28:11 +01:00
Franco Speziali
1e3688ca04
Some renamed groupTypes => groupType as this references a single groupType
2022-03-23 10:34:39 +01:00
Franco Speziali
88a21c5cf2
Minor updates to README
2022-03-22 16:10:24 +01:00
Franco Speziali
d4fad7bc9a
Organised styles
2022-03-22 16:10:03 +01:00
Franco Speziali
f102aa7aad
Updated README
2022-03-17 22:42:17 +01:00
Franco Speziali
665de3f8b1
Added event validation at time of processing in Events constructor. Events must have a valid date and title to be included. Updated tests.
2022-03-17 22:23:49 +01:00
Franco Speziali
df41f60101
Default to day grouping if no setting is provided
2022-03-17 21:47:46 +01:00
Franco Speziali
a1d1621a75
Global rename of scale => groupType
2022-03-17 21:00:17 +01:00
Franco Speziali
5836dfdb2e
Skeleton README.md added
2022-03-17 21:00:17 +01:00
Franco Speziali
a67753834e
package-lock.json updated
2022-03-17 21:00:17 +01:00
Franco Speziali
03f530c938
Updated plugin integration with Joplin; content rendering via processing YAML
2022-03-17 21:00:17 +01:00
Franco Speziali
1fb4228634
Updated plugin integration with Joplin
2022-03-17 21:00:17 +01:00
Franco Speziali
0469b104f6
Styles added
2022-03-17 21:00:17 +01:00
Franco Speziali
cf5cfecbc8
Updated hoverCard rendering logic
2022-03-17 21:00:17 +01:00
Franco Speziali
12e3c5653f
Added utility for generating random color
2022-03-17 21:00:17 +01:00
Franco Speziali
b719a2c391
Added EventGroupingHtmlRenderer initial concept
2022-03-17 21:00:17 +01:00