const JSON_WEBRING = "https://codeberg.org/gablaxy/webring/raw/branch/main/webring.json"; const template = document.createElement("template"); template.innerHTML = `
`; class Webring extends HTMLElement { connectedCallback() { this.attachShadow({ mode: "open" }); this.shadowRoot.appendChild(template.content.cloneNode(true)); const currentSite = this.getAttribute("site"); // ou sinon on peut aller chercher le paramètre site dans la déclaration du widget fetch(JSON_WEBRING) .then((response) => response.json()) .then((sites) => { // Va chercher les infos du site actuel dans le json const matchedSiteIndex = sites.findIndex( (site) => site.url === currentSite ) // stocke les index des sites avant et après dans le json let previousSiteIndex = matchedSiteIndex - 1; if(previousSiteIndex < 0)previousSiteIndex = sites.length - 1; let nextSiteIndex = matchedSiteIndex + 1; if(nextSiteIndex >= sites.length)nextSiteIndex = 0; const content = `

grossomodo

< avant / ${sites[matchedSiteIndex].name} / après > `; this.shadowRoot .querySelector("#webring-inner") .insertAdjacentHTML("afterbegin", content); }) .catch((error) => { console.error(error); const content = `

grossomodo

T'es pas dans le gang bozo

`; this.shadowRoot .querySelector("#webring-inner") .insertAdjacentHTML("afterbegin", content); }); } } window.customElements.define("webring-iutechno", Webring);