mirror of
https://github.com/narrrl/narl-workspace.git
synced 2026-11-03 16:41:27 +01:00
scratch: the scratchpad is the inbox, with ways out and a search
A note now leaves the scratchpad by becoming something else: `K` keeps it as a document, as before; `C` makes it a card where `:card` would put one, the first line its title; `A` opens `:append` with the document on screen filled in, Tab completing any other title, and puts the note at its end. `/api/capture` takes `to: "note"` and `to: "document"` (named as a link names it), and `note`, the scratch note the text came from, dropped once the text has landed. Appending keeps the revision before it and indexes links and media, as a save does. Migration 0028 adds `scratch_fts`; `GET /api/scratch?q=` searches it, and `/` lists note hits under "notes" after the cards, Enter lowering the drawer at the note. The `c` capture line cycles its target with Tab: a card, a note, or a timed line in today's entry, which `:today <text>` now writes.
This commit is contained in:
1 parent
ccc91028e7
commit
2233fa41a6
20 files changed
+561
-84
No files matched your search
+2
-2
@@ -25,7 +25,7 @@ sealed or not.
|
||||
| `POST` | `/api/diary/day` | `{ day? }`: the entry of `2026-10-22`, or of today in `WORKSPACE_TIMEZONE`, started from `templates/day` when there is none; answers `{ id, created }` |
|
||||
| `GET` | `/api/diary/around/{id}` | the entries before and after a diary entry, by date |
|
||||
| `GET` | `/api/nodes/{id}/templates` | the templates of the space the node is in |
|
||||
| `POST` | `/api/capture` | `{ text, to: "card" \| "diary", space? }`, with a session or `Authorization: Bearer` a token |
|
||||
| `POST` | `/api/capture` | `{ text, to: "card" \| "diary" \| "note" \| "document", space?, document?, note? }`, with a session or `Authorization: Bearer` a token; `note` is a scratch note the text came from, dropped once it has landed |
|
||||
| `GET`/`POST` | `/api/tokens` | the capture tokens / make one, `{ name }`, answered with the token this once |
|
||||
| `DELETE` | `/api/tokens/{id}` | remove a capture token |
|
||||
| `POST` | `/api/spaces/{id}/lists` | add a list |
|
||||
@@ -34,7 +34,7 @@ sealed or not.
|
||||
| `PUT`/`DELETE` | `/api/cards/{id}` | update (title, body, due, repeat, checklist, labels, done, link) / delete; finishing a repeating card answers its copy as `again` |
|
||||
| `POST` | `/api/cards/{id}/move` | to another list and place in it; `again` as above |
|
||||
| `GET` | `/api/cards?q=…` | cards whose title, summary or a checklist step matches, open ones first; `space` keeps it to one board |
|
||||
| `GET`/`POST` | `/api/scratch` | the scratchpad's notes, the one touched last first / a new note `{ body }` |
|
||||
| `GET`/`POST` | `/api/scratch` | the scratchpad's notes, the one touched last first, or with `?q=` those a search finds / a new note `{ body }` |
|
||||
| `PUT`/`DELETE` | `/api/scratch/{id}` | rewrite a note `{ body }` / drop it |
|
||||
| `POST` | `/api/nodes/{id}/move` | reparent, and place among the new siblings |
|
||||
| `POST` | `/api/nodes/move` | `{ ids, parent_id }`: several into one folder, all or none |
|
||||
|
||||
@@ -27,14 +27,20 @@ curl -H "Authorization: Bearer nwc_…" -H 'content-type: application/json' \
|
||||
| field | meaning |
|
||||
| --- | --- |
|
||||
| `text` | what to write down; for a card, the first line is the title and the rest its notes |
|
||||
| `to` | `"card"` (the default) or `"diary"` |
|
||||
| `space` | for a card, the slug of the space whose inbox it goes in |
|
||||
| `to` | `"card"` (the default), `"diary"`, `"note"` or `"document"` |
|
||||
| `space` | for a card, the slug of the space whose inbox it goes in; for a document, the space its title is looked for in first |
|
||||
| `document` | for `"document"`, which one, as a link names it: `Plan`, `[[Plan]]` or `/n/work/plan` |
|
||||
| `note` | the id of the scratch note the text came from; it is dropped once the text has landed |
|
||||
|
||||
- `"to": "card"` puts a card in the inbox of the space named by `space`, or else
|
||||
of the first space that has a board.
|
||||
- `"to": "diary"` adds `- 14:05 call the bank` to the end of today's entry, in
|
||||
`WORKSPACE_TIMEZONE`, and starts the entry from `templates/day` when there is
|
||||
none yet.
|
||||
- `"to": "note"` puts it on the scratchpad, for when it is not clear yet where
|
||||
it belongs.
|
||||
- `"to": "document"` adds it as a paragraph at the end of a document. The text
|
||||
it replaces is kept in the document's history, as a save keeps it.
|
||||
|
||||
The answer says where it went: `{"to":"card","id":7,"where":"work/backlog"}`.
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ arguments and `↑` / `↓` recall earlier lines.
|
||||
| `[d / ]d` | the diary entry before / after the one open, by date |
|
||||
| `Ctrl-P` | find anything, in every space — Enter opens the result lit beside them, n goes on |
|
||||
| `b` | the board, in a tile: this space's, or the last one shown — 1 … 9 there shows another's |
|
||||
| `c` | capture a card into this space's inbox, without leaving here — reading a document, a card about it |
|
||||
| `c` | capture a card into this space's inbox, without leaving here — reading a document, a card about it; Tab on the line makes it a note, or a line in today's entry |
|
||||
| `Esc · q` | close the document, and its tile when there are several |
|
||||
| `/` | full-text search, inside the current space and its text files — Tab or Ctrl-N/P walk the results, Enter opens one |
|
||||
| `n / N` | next / previous search result, opened beside the results — :noh clears the search |
|
||||
@@ -127,6 +127,8 @@ The first list is the inbox, the last list is done.
|
||||
| `o` | a new note, written straight away — it saves itself |
|
||||
| `Enter · e · i` | write the note — Esc in normal mode, or :q, comes back to the notes |
|
||||
| `K` | keep the note: a document in the folder being browsed, titled by its first line — :keep <title> names it |
|
||||
| `C` | make the note a card where :card puts one — the first line its title, the rest its description |
|
||||
| `A` | put the note at the end of a document — :append, with the one on screen filled in; Tab completes a title |
|
||||
| `dd` | drop the note (asks y/N) |
|
||||
| `q · Esc · Q` | raise the scratchpad |
|
||||
|
||||
@@ -173,10 +175,11 @@ do: `:w!`, `:space! <name>`, `:import!`.
|
||||
| command | what it does |
|
||||
| --- | --- |
|
||||
| `:scratch, :sc [text]` | the scratchpad, lowered over whatever is on screen — Q does the same; with text, a note on it without leaving |
|
||||
| `:append [document]` | put the scratch note at the end of a document, by its title — Tab completes it — or the one on screen, and take it off the scratchpad |
|
||||
| `:keep [title]` | make the scratch note a document in the folder being browsed — titled by its first line unless given one — and take it off the scratchpad |
|
||||
| `:new, :n, :o [template] [yyyy-mm-dd] [name]` | start a new document here — from one of the space's templates, dated, named; in the diary from templates/day |
|
||||
| `:cal, :calendar` | the diary by month — h/l a day, j/k a week, H/L a month, Enter opens the day or starts it |
|
||||
| `:today` | open today's diary entry, starting one if there is none yet |
|
||||
| `:today [text]` | open today's diary entry, starting one if there is none yet; with text, a timed line at its end without going there |
|
||||
| `:next` | open the next node down the list |
|
||||
| `:prev` | open the previous node |
|
||||
| `:first` | open the first node in the list |
|
||||
|
||||
@@ -59,6 +59,8 @@ previous result beside the list, and `:noh` clears the search.
|
||||
Cards are searched too, by their title, description and checklist steps. They
|
||||
are listed after the documents, under `cards`, with the board and list each is
|
||||
on. `Enter` on one turns it over on its board; `n` and `N` only light it up.
|
||||
Notes on the scratchpad come last, under `notes`, whatever space is searched;
|
||||
`Enter` lowers the scratchpad at the note.
|
||||
|
||||

|
||||
|
||||
|
||||
+4
-1
@@ -84,7 +84,10 @@ More in [Writing](Writing.md).
|
||||
|
||||
In a meeting someone asks you to renew a certificate. Press `c`, type
|
||||
`Renew the gateway certificate`, and `Enter`. The card is in this space's
|
||||
inbox, and you have not left the document you were reading.
|
||||
inbox, and you have not left the document you were reading. Not a task? `Tab`
|
||||
on the same line makes it a note on the scratchpad, and `Tab` again a timed line
|
||||
in today's diary entry. A note waits there until `K`, `C` or `A` turns it into a
|
||||
document, a card, or more of a document.
|
||||
|
||||
Press `b` to see the **board**, in a tile beside the document. A digit there
|
||||
shows the board of another space.
|
||||
|
||||
@@ -67,6 +67,8 @@ a body and the time it was last touched, newest on top.
|
||||
| `o` | a new note, written straight away |
|
||||
| `Enter`, `e`, `i` | write the note under the cursor |
|
||||
| `K` | keep it: a document in the folder being browsed (`:keep [title]`) |
|
||||
| `C` | make it a card, where `:card` puts one: the first line its title, the rest its description |
|
||||
| `A` | put it at the end of a document (`:append [document]`) |
|
||||
| `dd` | drop the note (asks y/N) |
|
||||
| `Q`, `q`, `Esc` | raise the scratchpad |
|
||||
|
||||
@@ -81,6 +83,15 @@ takes it off the scratchpad. Its first line is the title — `# Plan` or plain
|
||||
`Plan` alike — and the rest the body; `:keep <title>` names it instead and
|
||||
keeps every line. The document opens, and the drawer goes up.
|
||||
|
||||
`C` makes the note a card on the list under the board's cursor, or in this
|
||||
space's inbox. `A` opens `:append` with the document on screen filled in;
|
||||
change it to any document's title — `Tab` completes it — and `Enter` puts the
|
||||
note at its end, as a paragraph of its own. The document's text before is kept
|
||||
in its history. Either way the note leaves the scratchpad, as it does with `K`.
|
||||
|
||||
`/` finds notes too, listed under `notes` after the documents and the cards;
|
||||
`Enter` on one lowers the scratchpad with it under the cursor.
|
||||
|
||||
The notes are in the backup, and an export of the whole workspace carries
|
||||
them in `.workspace.json`, so `:import! /` puts them back.
|
||||
|
||||
|
||||
Reference in new issue
Block a user