From d257f04851382d93d7d8ad69626e7d5365918d3d Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Fri, 21 Jan 2022 10:46:21 -0500 Subject: Change keybar keys to links with custom onclick --- docs/repl.js | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'docs/repl.js') 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+''+h+''; 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=>''+Array.from(d)[1]+'') + .map(d=>''+Array.from(d)[1]+'') .concat(['map']) .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, '
'); -- cgit v1.2.3