14 Commits

Author SHA1 Message Date
cb656b2df8 Add configurable kanban and matrix card limits 2026-07-27 16:55:23 -04:00
187fd34531 v0.7.0: Gantt chart, notebook targeting & profile-wide scope
Single release covering two feature groups (CHANGELOG 0.7.0 + 0.6.0):

- gtd-gantt block: project-grouped timeline of bars (notes with begin/end
  dates) and milestones (to-dos on their due date); dual-role fence,
  swimlanes, month tick header, today line, read-only.
- notebook: targeting across all four view blocks; scope: all for
  profile-wide scans with size guardrails; note body fetched only when the
  inclusion mode actually needs the gtd block.

jest 140/140.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 12:11:45 -04:00
Victor Wiebe
4cb6700a20 v0.4.0: Eisenhower Matrix (gtd-matrix block)
- New gtd-matrix block: 2x2 prioritisation grid with axis headers
  (Urgent / Not urgent x Important / Not important)
- Quadrants from two configurable tags (urgent-tag default 'urgent',
  important-tag default 'important'): both -> Do First; important ->
  Schedule; urgent -> Delegate; neither -> Eliminate (default bucket)
- Completed to-dos excluded entirely (prioritisation view, not tracking;
  kanban Done is where completions live); to-dos only; matrix note
  excluded; warns when both axis tags are identical
- Same scope/todos/sort-type/sort/card-detail options as kanban; cards
  reuse kanban rendering (compact, recurrence mark, drilldown)
- Quadrant colour accents: red Do First, blue Schedule, amber Delegate,
  grey Eliminate
- SPEC roadmap restructured: matrix shipped as v0.4.0 (views axis);
  drag-and-drop + create-from-view clustered as the v0.5.0+ authoring
  epic with multi-board refresh and trigger/target questions recorded
- Version 0.4.0; 11 new tests (80 total); README documented
2026-07-03 09:45:47 -04:00
Victor Wiebe
a3d7acde7f v0.3.1: split Unscheduled into to-dos and notes
- The Unscheduled section now shows two labeled sub-sections —
  'Unscheduled to-dos' (first) then 'Unscheduled notes' — so actionable
  items stay visually separate from reference notes.
- A sub-section is omitted entirely when empty (no lonely '(0)' headers).
- Webview-only change (uses the existing isTodo flag); data layer and
  tests unchanged.
- Version 0.3.1; README updated.
2026-06-13 10:31:46 -04:00
Victor Wiebe
d3c0f0ee7f v0.3.0: read-only kanban board (gtd-kanban block)
- New gtd-kanban block renders a three-column board from to-dos:
  Backlog / In Progress / Done. Notes excluded; to-dos only.
- Bucketing: Done wins (todo_completed), else in-progress tag, else
  Backlog. in-progress tag name configurable (IN_PROGRESS_TAG constant,
  in-progress-tag: option).
- Backlog shows all uncompleted untagged to-dos; Done filtered to a
  configurable done-window (default 7 days; 'all' for full history).
- Per-column sort: due-date (default; dateless last) | title |
  modified-date, asc/desc.
- Compact cards with configurable detail panel (hover/always/none),
  recurrence ↻, click-to-open drilldown. Empty columns still shown.
- Reuses the calendar data layer: scope resolution, inclusion, the
  getNoteTagTitles tag fetch from v0.2.0, gtd block parsing.
- markdown-it renderer now handles both gtd-calendar and gtd-kanban
  fences (data-block-type); webview branches getEvents/getKanban.
- SPEC sort-type vocabulary noted for cross-block consistency
  (modified_date accepted as alias).
- Version 0.3.0; 32 new tests (65 total). Read-only — drag-and-drop
  write-back is v0.4.0.
2026-06-13 10:23:49 -04:00
Victor Wiebe
360e246262 Add view: month-grid — full current month, 7-column layout
- groupEvents: buildMonthGrid covers the entire current calendar month
  padded to full weeks; adjacent-month padding days are flagged (dimmed)
  but can still hold events; events outside the window are counted
- Localised short weekday names as column headers; month/year label
- Webview renders a CSS grid: day cells with date number, today border
  highlight, clickable event chips (colour, icon/glyph, strikethrough,
  ellipsis overflow)
- Config accepts view: month-grid (alias: grid)
- SPEC.md updated; 5 new tests (47 total)
2026-06-12 18:38:10 -04:00
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
Franco Speziali
6891818d1b Added coloured blocks for different months 2026-05-27 15:08:13 +02:00
Franco Speziali
ff2c3794d6 Small CSS fix to allow readability with different themes 2022-10-26 16:26:32 +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
d4fad7bc9a Organised styles 2022-03-22 16:10:03 +01:00
Franco Speziali
0469b104f6 Styles added 2022-03-17 21:00:17 +01:00