mirror of
https://github.com/narrrl/narl-workspace.git
synced 2026-11-03 16:41:27 +01:00
An upload while writing is now a file node of the document, through
POST /nodes/{id}/files, instead of a loose row of media that only the media
browser listed. It moves, seals, goes to the trash and comes back with the
document. Migration 0029 gives every embedded upload that had no node a
place under the document that embeds it (a living one before a trashed
one), keeping its media id, so no body changes; the sealed-folder triggers
now ask a document's folder for the files under it.
- nodes: `holds` and `place_for` say what may go where; a document holds
files and nothing else, in moves, uploads and restores from the trash.
A loaded document carries its files and whether its folder seals them.
- seal: a document moving into a sealed folder seals its files first.
- media: POST /media, GET /media and DELETE /media/{id} are gone, and with
them MediaBrowser and :media.
- import: `plan/` beside `plan.md` comes back as the document's files, the
shape export writes; an older export's media/ goes to the first document
that embeds each file.
- sftp: a document's files are `<slug>/` beside its `.md`, listed once it
has any, holding files only, moving with the `.md`.
- web: paste, drop and :upload while reading go to the document; the info
sheet has a files section (Enter opens, i embeds, y copies how); the list
shows +N on a document, za folds its files open, p drops marked files in.
17 KiB
17 KiB
Keys and commands
Everything here is also on ? (:help) inside the app, which draws the same
lists. Keys act on whatever has focus: the row under the cursor in the list, or
the document in the focused tile. Inside the editor the full vim keymap is live,
and : opens the command line, where Tab completes commands and their
arguments and ↑ / ↓ recall earlier lines.
Keys
Browsing and reading
| key | what it does |
|---|---|
1 … 9 · 0 |
switch to that space, like a workspace |
Shift 1 … 9 |
send the marked nodes, or the selected one, to that space |
Tab · Shift-Tab |
next / previous space |
w |
overview of every space — hjkl, then Enter |
f |
fullscreen the focused pane or tile; again or Esc to leave |
Alt-h/j/k/l |
focus the tile that way, from the editor too — left of the leftmost is the list |
Alt-Shift-h/j/k/l |
move the focused tile that way |
L · Shift-Enter |
open the row in a new tile beside the others |
gt / gT |
next / previous tile — a view too |
Alt-q |
close the focused tile — :close; :only closes the others |
j / k · ↓ ↑ |
move down / up the list — scroll the document when it has focus |
gg / G |
first / last row, or top / bottom of the document — a first g, d, ] or [ waits a second in the status line |
Ctrl-D / Ctrl-U |
half a page down / up the open document |
zl / zh · zL / zH |
the wide table or code block at the top of the view, sideways — a little, or half its width |
]] / \[\[ |
next / previous heading of the document — in the editor too |
gi |
the info sheet: the open document's headings, earlier versions, backlinks, cards and sharing — Tab between them |
gO |
the headings as a list: j/k, Enter jumps there |
F |
hints over the links and buttons in view — type one to follow it |
gf / gx |
in the editor: follow the link under the cursor / open it in a tab |
gx |
open the file under the cursor in a tab of its own |
Enter · l |
open a document, or enter a folder — on an open keystore or sealed file, Enter asks for its password |
h |
from the document to the list, from the list up a level |
o |
new document here, straight into insert mode |
O |
new folder here |
i · a |
edit the open document |
R |
rename what is under the cursor — document, folder or card — starting from its name |
m / p |
pick nodes up, then drop them all into the folder you walk to |
za |
a document's own files, folded open under it in the list — again folds them away; p drops marked files in there |
M |
pick up the whole folder — again puts it all back |
Ctrl / Shift-click |
pick a row up · every row up to it — drag them onto a folder |
S |
the board, the agenda and the calendar, tiled ahead of what is open with the board focused — S again puts every view away |
t |
agenda — late, due this week, in hand, on every board — in a tile of its own |
T |
today's diary entry, started if there is none — from templates/day when the diary has one |
C |
the diary by month, in a tile: h/l a day, j/k a week, H/L a month, . today, Enter opens or starts the day beside it |
[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; 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 |
s |
toggle sharing for the document — asks before taking it back |
y |
mint a new share link and copy it — asks, the old one stops working |
x · dd |
delete what has focus — the row in the list, the document in its pane — into the trash (asks y/N) |
u |
undo the last delete: it comes back out of the trash — :trash has the rest |
gh |
the open document's earlier versions, as diffs — Enter brings one back |
gb |
the documents that link to the open one — title links by title, [[ completes one while writing |
gc |
the cards about the open document — j/k picks the one :due, :label, Space and H/L act on, Enter turns it over on its board |
: |
command line — Tab / Shift-Tab cycle the matches, then the argument; ↑ ↓ recall what ran before |
Ctrl-S |
save, from anywhere |
? |
this screen, from the editor too — h/l a column, / filters it down |
q · Esc |
in a view — the board, the agenda, the calendar, a card's back — close its tile; the focus goes back to the tile before |
On a board
The first list is the inbox, the last list is done.
| key | what it does |
|---|---|
h / l |
to the list left / right — right of the last, to the tile beside |
j / k |
down / up the cards |
gg / G |
first / last card of the list |
J / K |
move the card down / up its list |
H / L |
move the card to the list left / right |
Space |
into the done list, or back out to the inbox |
Enter |
turn the card over, in a tile beside: its labels, description and checklist |
gf |
the card's notes — a document, made on first use; q comes back |
o · c |
new card on this list |
D |
due date: fri, tm, +3d, 10-31 … |
R |
rename the card, or the list when it is empty |
z |
show done cards older than a week |
F |
a letter over every card in view — type it to put the cursor there |
r |
read the board again, for changes made elsewhere |
x · dd |
delete the card (asks y/N) |
On the back of a card
| key | what it does |
|---|---|
j / k |
down / up the checklist |
gg / G |
first / last step |
Space · x |
tick the step, or untick it |
o |
a new step below the cursor — :task on the line |
r |
reword the step |
J / K |
move the step down / up |
dd |
drop the step |
e · i · Enter |
write the description, in the editor — it saves itself, :q or Esc in normal mode leaves |
a |
put on a label, or take it off — :label on the line, Tab offers the board's |
R · D |
rename the card, its due date |
H / L |
send the card to the list left / right |
gf |
the card's notes — a document, made on first use; q comes back |
In the agenda
| key | what it does |
|---|---|
j / k |
down / up the cards, then what was written on this day in earlier years, then on to the tile below |
h |
to the tile on the left |
Enter |
to the card, on its own board beside — or to the entry |
Space |
done, where it stands |
D |
due date: fri, tm, +3d … — :due on the line |
: |
the line, with the agenda kept up — :repeat weekly acts on the card |
H / L |
to the list left / right on its board |
T |
today's diary entry |
In the scratchpad
| key | what it does |
|---|---|
Q |
lower the scratchpad over whatever is on screen, or raise it again — :scratch takes a note without it |
j / k |
down / up the notes, the one touched last on top |
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 |