64 lines
1.4 KiB
JavaScript
64 lines
1.4 KiB
JavaScript
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 url = formHash.elements["url"].value;
|
|
const hash = hashTwt({
|
|
content,
|
|
created,
|
|
url,
|
|
});
|
|
|
|
const result = [
|
|
`content: ${content}`,
|
|
`created: ${created}`,
|
|
`url: ${url}`,
|
|
`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;
|
|
});
|