v0.7.0 45bfc5b

empty.html RawHistoryFolder

1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<meta name="color-scheme" content="light dark">
7<title>quiet · example.test</title>
8<link rel="icon" type="image/svg+xml" href="/-/static/img/icon.HASH.svg">
9<link rel="preload" href="/-/static/fonts/atkinson-next.HASH.woff2" as="font" type="font/woff2" crossorigin>
10<link rel="stylesheet" href="/-/static/css/ermite.HASH.css">
11<meta name="htmx-config" content='{"history":false,"includeIndicatorCSS":false,"extensions":"sse, hx-live"}'>
12<script src="/-/static/js/htmx.min.HASH.js" defer>
13</script>
14<script src="/-/static/js/hx-live.min.HASH.js" defer>
15</script>
16<script src="/-/static/js/hx-sse.min.HASH.js" defer>
17</script>
18<script src="/-/static/js/ermite.HASH.js" defer>
19</script>
20<script src="/-/static/js/files.HASH.js" defer>
21</script>
22<script src="/-/static/js/passkey.HASH.js" defer>
23</script>
24<script src="/-/static/js/log.HASH.js" defer>
25</script>
26</head>
27<body data-ref="" data-sha="" data-sel="" data-nav="">
28<a class="skip" href="#main">skip to content</a>
29<header class="hdr">
30<div class="hdr-top">
31<a class="brand" href="/" data-g="h" title="home (g h)">
32<span class="brand-mark" aria-hidden="true">
33</span>
34<span class="brand-name">example.test</span>
35</a>
36<nav class="crumbs" aria-label="Path">
37<ol>
38<li>
39<a href="/quiet" aria-current="page">quiet</a>
40</li>
41</ol>
42</nav>
43<div class="hdr-acts">
44<button type="button" class="btn search" data-js aria-haspopup="dialog" aria-controls="panel-cmd" aria-keyshortcuts="Control+K :" title="go to a section, ref, file or repo (ctrl k or :)" data-fire="cmd">
45<span class="ico i-search" aria-hidden="true">
46</span>
47<span class="search-label">Go to…</span>
48<kbd aria-hidden="true">ctrl k</kbd>
49</button>
50<button type="button" class="btn icon" data-js data-fire="help" aria-haspopup="dialog" aria-controls="panel-help" aria-keyshortcuts="?" aria-label="Keyboard shortcuts" title="keyboard shortcuts (?)">?</button>
51</div>
52</div>
53</header>
54<div class="work">
55<main id="main" tabindex="-1">
56<section class="state" aria-labelledby="state-title">
57<p class="eyebrow">empty</p>
58<h1 id="state-title">quiet is empty</h1>
59<p class="dim">no commits yet. push a branch to create one.</p>
60<div class="clone" id="clone-quiet">
61<div class="clone-line">
62<span class="mute" aria-hidden="true">$ </span>
63<code>git remote add origin http://example.test/quiet.git</code>
64<button type="button" class="btn copy" data-js data-label="Copy" aria-label="copy: git remote add origin http://example.test/quiet.git" hx-on:click="ermite.copy(this)">Copy</button>
65</div>
66<div class="clone-line">
67<span class="mute" aria-hidden="true">$ </span>
68<code>git push -u origin main</code>
69<button type="button" class="btn copy" data-js data-label="Copy" aria-label="copy: git push -u origin main" hx-on:click="ermite.copy(this)">Copy</button>
70</div>
71</div>
72<p class="state-back">
73<a href="/">home</a>
74</p>
75</section>
76</main>
77</div>
78<footer class="foot">
79<span>ermite devel</span>
80<a href="http://example.test/ermite" rel="noopener" title="source of this version (AGPL-3.0-or-later)">source</a>
81<span class="foot-keys">
82<kbd>?</kbd> keyboard shortcuts</span>
83</footer>
84<div class="hint" role="status" aria-live="polite">
85<span class="hint-nav" :text="document.body.dataset.nav || ''">
86</span>
87<span class="hint-sel" :text="document.body.dataset.sel ? document.body.dataset.sel + ' · y permalink' : ''">
88</span>
89<span class="hint-flash" :text="document.body.dataset.flash || ''">
90</span>
91</div>
92<dialog id="panel-help" class="panel modal" aria-label="Keyboard shortcuts" hx-on:keydown="event.key === 'Escape' && (event.preventDefault(), this.close())" hx-on:click="event.target === this && this.close()">
93<div class="panel-head">
94<h2>Keyboard shortcuts</h2>
95<button type="button" class="panel-x" aria-label="Close" hx-on:click="closest('dialog').close()">
96<kbd>esc</kbd> close</button>
97</div>
98<dl class="keys">
99<div>
100<dt>
101<kbd>ctrl k</kbd>
102<kbd>:</kbd>
103</dt>
104<dd>go to a section, branch, tag, file or repository</dd>
105</div>
106<div>
107<dt>
108<kbd>?</kbd>
109</dt>
110<dd>this list</dd>
111</div>
112<div>
113<dt>
114<kbd>j</kbd>
115<kbd>k</kbd>
116</dt>
117<dd>move the row cursor down / up</dd>
118</div>
119<div>
120<dt>
121<kbd>enter</kbd>
122</dt>
123<dd>open the row under the cursor</dd>
124</div>
125<div>
126<dt>
127<kbd>g g</kbd>
128<kbd>G</kbd>
129</dt>
130<dd>first / last row</dd>
131</div>
132<div>
133<dt>
134<kbd>/</kbd>
135</dt>
136<dd>filter the list; on Files, find a file in the repository</dd>
137</div>
138<div>
139<dt>
140<kbd>b</kbd>
141</dt>
142<dd>switch branch or tag</dd>
143</div>
144<div>
145<dt>
146<kbd>s</kbd>
147<kbd>t</kbd>
148<kbd>c</kbd>
149<kbd>r</kbd>
150<kbd>m</kbd>
151</dt>
152<dd>tabs: summary, files, commits, branches &amp; tags, merge requests</dd>
153</div>
154<div>
155<dt>
156<kbd>g h</kbd>
157</dt>
158<dd>home</dd>
159</div>
160<div>
161<dt>
162<kbd>y</kbd>
163</dt>
164<dd>copy a permalink pinned to the commit</dd>
165</div>
166<div>
167<dt>
168<kbd>d</kbd>
169<kbd>u</kbd>
170<kbd>x</kbd>
171</dt>
172<dd>diff: split / unified / collapse or expand all</dd>
173</div>
174<div>
175<dt>
176<kbd>n</kbd>
177</dt>
178<dd>merge request: next note in the diff</dd>
179</div>
180<div>
181<dt>
182<kbd>esc</kbd>
183</dt>
184<dd>close a dialog, leave a field</dd>
185</div>
186</dl>
187</dialog>
188<dialog id="panel-cmd" class="panel modal" aria-label="Go to" hx-on:close="ermiteFinder.paletteClose()" hx-on:keydown="event.key === 'Escape' && (event.preventDefault(), this.close())" hx-on:click="event.target === this && this.close()">
189<div class="panel-head">
190<label for="cmd-q" class="sr">go to</label>
191<input id="cmd-q" type="search" placeholder="Go to a section, branch, tag, file or repository…" autocomplete="off" spellcheck="false" aria-controls="cmd-list" hx-on:input="ermite.cmdFilter(this); ermiteFinder.palette(this)" hx-on:keydown="ermite.cmdKey(event)">
192<button type="button" class="panel-x" aria-label="Close" hx-on:click="closest('dialog').close()">
193<kbd>esc</kbd>
194</button>
195</div>
196<ul id="cmd-list" class="cmd-list" aria-label="Targets">
197<li data-k="go home" data-cursor>
198<a href="/" tabindex="-1">
199<span class="lbl">home</span>
200<span class="k">go</span>
201</a>
202</li>
203<li data-k="repo demo">
204<a href="/demo" tabindex="-1">
205<span class="lbl">demo</span>
206<span class="k">repo</span>
207</a>
208</li>
209</ul>
210<p class="panel-foot">
211<span>
212<kbd>↑</kbd>
213<kbd>↓</kbd> move</span>
214<span>
215<kbd>enter</kbd> open</span>
216<span>
217<kbd>esc</kbd> close</span>
218</p>
219</dialog>
220<div id="keys" hidden hx-on="k-j from:body -> ermite.move(1);
221         k-k from:body -> ermite.move(-1);
222         k-top from:body -> ermite.edge(false);
223         k-bottom from:body -> ermite.edge(true);
224         k-open from:body -> ermite.open();
225         k-esc from:body -> ermite.closeDialogs();
226         k-help from:body -> ermite.dialog('panel-help');
227         k-refs from:body -> ermite.dialog('panel-refs', 'refs-filter');
228         k-cmd from:body -> ermite.dialog('panel-cmd', 'cmd-q'); ermiteFinder.load();
229         k-filter from:body -> ermite.focusFilter();
230         k-gh from:body -> ermite.go('.brand');
231         k-s from:body -> ermite.tab('s');
232         k-t from:body -> ermite.tab('t');
233         k-c from:body -> ermite.tab('c');
234         k-r from:body -> ermite.tab('r');
235         k-m from:body -> ermite.tab('m');
236         k-next from:body -> ermite.nextNote();
237         k-split from:body -> ermite.layout('split');
238         k-unified from:body -> ermite.layout('unified');
239         k-collapse from:body -> ermite.collapse();
240         k-permalink from:body -> ermite.permalink()">
241</div>
242</body>
243</html>

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 2

Tags 45

↑↓ moveenter openesc close