"Archive completed tasks" empties every board of what is finished into a twin of the boards folder - `Boards/work.md` into `Boards/archive/work.md` - itself a Kanban board with the same lanes, so the history opens like any other board and the live one stays short. The same pass lifts a board's native archive (everything below the `***` separator) into that mirror, so finished work is not left sitting in two places. Archived tasks render beside live ones when "Include the archive" and "Show completed" are both on, from the mirrors and from any `***` section still in a board. They carry an Archive badge instead of a project chip, ride with the sphere they came from in the rail, and refuse drops.
54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# beaver-calendar
|
|
[](https://sladge.net)
|
|
|
|
Calendar and task list for Obsidian Kanban+Tasks
|
|
|
|
Sphere - md-file in Kanban boards directory. Project - h2 inside the file.
|
|
|
|
## Archiving
|
|
|
|
"Archive completed tasks" empties every board of what is finished with it, into
|
|
a mirror of the boards folder: `Boards/work.md` archives into
|
|
`Boards/archive/work.md`, itself a Kanban board with the same lanes, so the
|
|
history opens normally and the board stays short. The same pass lifts a board's
|
|
old native archive - everything below the `***` separator - into that mirror,
|
|
headings and all, so nothing is left behind in two places.
|
|
|
|
Set "Archive folder" before the first run: renaming it later leaves the mirrors
|
|
already written behind, where they read as ordinary boards.
|
|
|
|
Archived tasks render alongside live ones when both "Include the archive" and
|
|
"Show completed" are on - from the mirror files and from any `***` section still
|
|
sitting in a board. They carry an Archive badge instead of a project chip, ride
|
|
with the sphere they came from in the rail, and are not drop targets.
|
|
|
|
## Build and install
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # esbuild watch
|
|
npm run build # typecheck + bundle + css
|
|
npm test # round-trip, smoke
|
|
npm run preview # UI in browser, no Obsidian
|
|
make install VAULT=/path/to/vault # build and copy to vault
|
|
make zip # distributable
|
|
```
|
|
|
|
After `make install` turn on plugin in settings.
|
|
|
|
`styles.css` is Tailwind output run through `scripts/scope-css.mjs`: every
|
|
selector is prefixed with `:is(.bcal-root, .bcal-root *)`. Other plugins built
|
|
with Tailwind put their utilities into the same `utilities` cascade layer, and
|
|
without the extra specificity whichever plugin loaded last would win (their
|
|
`.hidden` over our `@container` variants, for one).
|
|
|
|
Preview knobs, all optional:
|
|
|
|
```bash
|
|
VAULT=/path/to/vault npm run preview # the vault's theme
|
|
BOARDS=/path/to/vault/Boards npm run preview # real boards, not fixtures
|
|
EXTRA_CSS=/path/to/other-plugin/styles.css … # another plugin's css, loaded after ours
|
|
open 'http://localhost:4173/?groupBy=due&railCollapsed=1#edit-date' # prefs + scene
|
|
node preview/shot.mjs out.png 'http://localhost:4173/#date' # screenshot + console
|
|
```
|