diff --git a/docs/download/_download.html b/docs/download/_download.html index 6c6ffd69f8..f007da377d 100644 --- a/docs/download/_download.html +++ b/docs/download/_download.html @@ -74,11 +74,6 @@ } - window.tippy("a.checksum[data-tippy-content]", { - interactive: true, - placement: "top-end", - maxWidth: "none", - }); }) .catch((err) => { console.log(err); @@ -217,7 +212,18 @@ } const table = createTable(); - createHeadingRow(table, ["Platform", "Download", "Size", "SHA-256"]); + // Link the header to the release's checksums.txt so the full values + // stay reachable even where narrow screens truncate the hashes. + const checksumsAsset = assets.find((asset) => + asset.name.endsWith("-checksums.txt") + ); + let shaHeading = "SHA-256"; + if (checksumsAsset) { + shaHeading = window.document.createElement("a"); + shaHeading.href = checksumsAsset.download_url; + shaHeading.innerText = "SHA-256"; + } + createHeadingRow(table, ["Platform", "Download", "Size", shaHeading]); const tbody = table.createTBody(); assets.forEach((asset) => { @@ -228,11 +234,6 @@ } downloadTableContainer.append(table); - window.tippy(".checksum[data-tippy-content]", { - interactive: true, - placement: "top-end", - maxWidth: "none", - }); } function createTable() { @@ -245,12 +246,14 @@ const header = table.createTHead(); var row = header.insertRow(0); row.className = "header"; - let cellCount = 0; headings.forEach((heading) => { - const cell = (row.insertCell( - cellCount - ).outerHTML = `${heading}`); - cellCount = cellCount + 1; + const cell = window.document.createElement("th"); + if (heading instanceof window.Node) { + cell.appendChild(heading); + } else { + cell.innerText = heading; + } + row.appendChild(cell); }); } @@ -287,12 +290,9 @@ const checksumCell = row.insertCell(i++); if (asset.checksum) { - const checkSumSlice = asset.checksum.slice(0, 7); - const checksumEl = window.document.createElement("div"); checksumEl.className = "checksum font-monospace"; - checksumEl.setAttribute("data-tippy-content", asset.checksum); - checksumEl.innerText = checkSumSlice; + checksumEl.innerText = asset.checksum; checksumCell.appendChild(checksumEl); } } diff --git a/styles.css b/styles.css index bd02daf0db..c946f5b0a4 100644 --- a/styles.css +++ b/styles.css @@ -91,11 +91,16 @@ body.quarto-dark #quarto-header { margin-bottom: 0; } +/* The cell holds the full hash; only the rendering truncates (ellipsis). + Screen readers, copying, and find-in-page all see the complete value, + and the header links to checksums.txt for the full values. */ .download-table .checksum { - color: var(--bs-primary); font-size: .775em; - cursor: pointer; padding-top: 4px; + max-width: 9ch; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .download-button {