Files
twtxt-lib/dist-demo/demo/hashTwt-example-result.js
Eric Woodward c776b5df6a add support for v2 hashing algorithm.
update README.md and demo file to be more in sync.
update to v0.10.0.
2026-03-29 22:34:43 -04:00

73 lines
1.6 KiB
JavaScript

// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt
import { hashTwt } from "/dist-browser/twtxt-lib.js";
let wasHashTwtResultAppended = false;
const formHash = document.forms["formHash"];
formHash.addEventListener("submit", (e) => {
e.preventDefault();
const content = formHash.elements["content"].value;
const created = formHash.elements["created"].value;
const version = parseInt(formHash.elements["version"].value, 10);
const url = formHash.elements["url"].value;
const hash = hashTwt(
{
content,
created,
url,
},
version,
);
const result = [
`content: ${content}`,
`created: ${created}`,
`url: ${url}`,
`version: ${version}`,
`hash: ${hash}`,
].join("\n");
console.log((wasHashTwtResultAppended ? "\n" : "") + result);
const resultHTML = result
.split("\n")
.map((line) =>
line.replace(
// to color properties
/^\w+:/,
(val) => `<span class="code-str">${val}</span>`,
),
)
.join("\n");
if (wasHashTwtResultAppended) {
document
.getElementById("preHashTwtResult")
.insertAdjacentHTML("afterbegin", resultHTML + "<br />\n");
return;
}
const resultsHTML = `
<details open="">
<summary>Results</summary>
<figure>
<pre id="preHashTwtResult">${resultHTML}</pre>
</figure>
</details>
`.trim();
document
.getElementById("tabHashTwt-panel")
.insertAdjacentHTML("beforeend", resultsHTML);
document
.querySelector("#tabHashTwt-panel .js-sourceDetails")
?.removeAttribute("open");
document.body.classList.add("isLoaded");
wasHashTwtResultAppended = true;
});
// @license-end