toc = instructions => {
const tocWidth = 200;
const paragraphWidth = 640;
if (width < paragraphWidth + tocWidth) return "";
const instructionsTitle = instructions.querySelector("h2").innerText;
const headers = Array.from(document.querySelectorAll("h2, h3")).map(d => [d.tagName, d.innerText])
const start = headers.indexOf(headers.find(d => d[1] === instructionsTitle))
const end = headers.indexOf(headers.find((d, i) => d[0] === "H2" && i > start))
const subheds = headers.slice(start + 1, end !== -1 ? end : undefined)
return htl.html`<div style=${{
width: `${tocWidth}px`,
float: "right",
fontFamily: "var(--sans-serif)",
fontSize: "12px",
marginTop: "12px",
zIndex: 1,
position: "relative",
}}>
<strong>${instructionsTitle}</strong>
${subheds.map(d => htl.html`<div>${d[1]}</div>`)}
<div><a href="#instructions">details…</a></div>
</div>`
}