diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-21 10:46:21 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-21 10:46:21 -0500 |
| commit | d257f04851382d93d7d8ad69626e7d5365918d3d (patch) | |
| tree | fefbedc2ad9ba16f90be08431b0546b80dfdc17c /docs/repl.js | |
| parent | a180b95f60314872e4498bfcf56fc8fb5c34b521 (diff) | |
Change keybar keys to links with custom onclick
Diffstat (limited to 'docs/repl.js')
| -rw-r--r-- | docs/repl.js | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/docs/repl.js b/docs/repl.js index 6ed4f725..bac0ca98 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -58,7 +58,7 @@ if (doc.doexplain) doc.doexplain.onclick = () => { if (!h) return; t.innerHTML = t.textContent+'<title>'+h+'</title>'; t.classList.add('clickable'); - t.onclick = ev => { window.open('help/'+helpurl[c]+'.html'); } + t.onclick = ev => { window.open(helpurl[c]); } }); }, 0); } @@ -122,33 +122,24 @@ let kv=Array.from('˜˘¨⁼⌜´˝∞¯•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩ let keys={}, revkeys={}, primhelp={}, helpurl={}; kk.map((k,i)=>{keys[k]=kv[i];revkeys[kv[i]]=k;}); doc.kb.innerHTML = keydesc - .map(d=>'<span class="'+syncls[d[0]]+'">'+Array.from(d)[1]+'</span>') + .map(d=>'<a class="key '+syncls[d[0]]+'">'+Array.from(d)[1]+'</a>') .concat(['<a href="keymap.html" target="_blank">map</a>']) .join("​"); // zero-width space let setPrefix = () => { - doc.kb.querySelectorAll("span").forEach((x,i) => { + doc.kb.querySelectorAll("a.key").forEach((x,i) => { let d = keydesc[i]; let c = Array.from(d)[1]; let t = d.slice(1+c.length).replace(';','\n'); - helpurl[c] = t.toLowerCase().replace(/ (\(.*)?/g,'') - .replace(/[\n/]/g,'_'); + let h = t.toLowerCase().replace(/ (\(.*)?/g,'') + .replace(/[\n/]/g,'_'); let k = revkeys[c]; if (k) t += '\n'+prefix+(k==='"'?'"':k); x.title = primhelp[c] = t; + x.href = helpurl[c] = 'help/'+h+'.html'; + x.onclick = ev => ev.button || modified(ev) ? true + : typeChar(doc.code, c, ev); }); } setPrefix(); -doc.kb.onmousedown = ev => { - let t = ev.target; - if (t.nodeName === 'SPAN') { - let c = t.textContent; - if (ev.button || modified(ev)) { - window.open('help/'+helpurl[c]+'.html'); - } else { - typeChar(doc.code, c, ev); - } - return false; - } -} let appendHTML = (e,a) => e.insertAdjacentHTML('beforeend', a); appendHTML(doc.kb, '<div class="kbext"></div>'); |
