1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# X-1: fly around the small web at the speed of sound
## Prior art
=> gemini://mozz.us/journal/2021-01-01.gmi Mozz post on gemini client navigation
=> gemini://zaibatsu.circumlunar.space/~solderpunk/gemlog/gemini-client-navigation.gmi Solderpunk response with more thoughts
These posts offer up some helpful but uncommon ideas for a browser:
* previous/next link actions: reference the previous page in the history, follow the link before or after the one that was followed to get here
* parent: go to the relative path "../"
* root: go to site-relative path "/" - although I like lagrange's modification where if you're within a /~username url it takes you to /~username
* dedicated refresh action: old idea but going away
## Commands
The default action is "go", so just putting an integer or URL in the command bar goes there.
* re[load]: re-request and re-display the current page
* r[oot]: go to the root of the current site, or /~username root if in a tilde-path
* R[oot]: go to /, ignoring tilde-paths
* b[ack]: back in history
* f[orward]: forward in history
* n[ext]: go to the next link in the previous history page - see below (like "back" followed by "go N+1" where N is the link index we used to get to the current page)
* p[revious]: go to the previous link in the previous history page - see below
* u[p]: go to the parent directory of the current page
* g[o] <link>: visits a URL, which may be an integer in which case it's the numbered link on the current page, or an absolute or relative URL
* hi[story]: display the current history
* l[ess]: pipe the current page's content through less(1)
* |<shell command>: pipe the page's content through any shell command, executed with "sh -c"
* s[ave] <path>: save the page's content at a particular filesystem path
* h[elp] [<command>]: show a help screen, optionally the one about a specific command
* m[ark]: bookmarks, see below
* t[our]: tours, seee below
## Next/Previous
On any numeric-index page navigation, the page being navigated *away from*, and the index used to do so, are saved for context. Then "previous" and "next" actions will use the links from that page before or after the saved index, respectively.
On any other nagivation, this context is cleared and next/previous actions won't function. This could include:
* "go <URL>" for any URL besides an integer index
* "up"
* "mark go <name>"
* any navigation via "tour"
## Marks
* named "m[ark]" instead of "bookmark" so "m" is used instead of interfering with "back/b"
* "mark a[dd] <url> <name>" adds a single mark. <name> can contain slashes to create a heirarchy
* "mark g[o] <name>" visits the given url
* "mark l[s]" shows the list of marks
* "mark X" with a non-command argument defaults to "mark go X"
## Tour
* "t[our]" on it's own defaults to "tour next"
* "tour x y z", where x is not a valid command name, defaults to "tour add x y z"
* "tour a[dd]" allows any valid links as arguments including both integer indices and absolute or relative URLs
* additional URL specifiers specific to "tour add" are "x-y" which expands to the integer range between x and y (inclusive on both ends), and "*" meaning everything on the current page
* the variant "tour add n[ext] x y z" adds its items to the next position in the tour, before anything else that was still to come
* "tour next" visits the next link in the current tour
* "tour sh[ow]" prints the current tour and where we currently are
* "tour c[lear]" empties the current tour
* "tour l[s]" lists the default tour and any non-empty letter tours
* "tour p[revious]" goes back to the previous link in the tour
* "tour g[o]" takes an index and jumps to that position in the tour
* "tour s[et]" takes a single lower-case alphabetic character to select *which* tour should become active
* without this letter, it re-selects the default tour
* the default tour is the empty one. it is always active and empty upon startup
* the other letter-identified tours have their state preserved when the program exits
|