Heim >Web-Frontend >js-Tutorial >Schritt-für-Schritt-Anleitung zum Anzeigen von Webmention-Interaktionen auf Bear Blog
Dieser Beitrag zeigt, wie Sie die Webmention.io-API verwenden, um alle Interaktionen anzuzeigen, die Menschen mit Ihren Blogbeiträgen hatten.
Sie benötigen zwei Dinge, damit dies funktioniert:
Das Einrichten von Webmention.io selbst liegt außerhalb des Rahmens dieses Beitrags, da diese Website bereits detaillierte Anweisungen bereitstellt.
Jetzt kommen wir zum benutzerdefinierten JavaScript, das Sie benötigen.
Unten finden Sie den vollständigen JavaScript-Code. Ich erkläre nach dem Code, wie jeder Teil funktioniert.
if (document.querySelector("body").classList.contains("post")) { function setContent(child) { switch (child["wm-property"]) { case "in-reply-to": return child.content?.text; case "like-of": return "liked this"; case "repost-of": return "reposted this"; default: return "interacted with this post in an unknown way"; } } async function fetchInteractions(headerTitle) { const response = await fetch("https://webmention.io/api/mentions.jf2?target=" + document.URL); const data = await response.json(); if (data && data.children.length > 0) { const interactions = document.createElement("div"); interactions.innerHTML = `<h3>${headerTitle ?? "Interactions"}</h3>`; for (const child of data.children) { const interaction = document.createElement("div"); interaction.innerHTML = ` <p> <strong><a href="${child.author.url}" target="_blank">${child.author.name}</a></strong> <small> - ${new Date(child["wm-received"]).toLocaleString("en-US", { month: "short", day: "numeric", year: "numeric", })}</small> </p> <blockquote>${setContent(child)}</blockquote> `; interactions.appendChild(interaction); } const upvoteForm = document.getElementById("upvote-form"); upvoteForm.parentNode.insertBefore(interactions, upvoteForm.nextSibling); } } fetchInteractions(document.currentScript.getAttribute("data-interactions")); }
Die Hauptlogik liegt in der Funktion fetchInteractions(), die einen Parameter akzeptiert: den Text, der als Kopfzeile für alle Interaktionen angezeigt werden soll. Standardmäßig lautet der Kopfzeilentext „Interaktionen“, Sie können ihn jedoch anpassen, indem Sie ein data-interactions-Attribut im