diff --git a/docs/index.html.in b/docs/index.html.in index f593445d06..2bd647f8dd 100644 --- a/docs/index.html.in +++ b/docs/index.html.in @@ -2,20 +2,9 @@ - - - - diff --git a/docs/js/main.js b/docs/js/main.js index cb424dd72f..e48e95075c 100644 --- a/docs/js/main.js +++ b/docs/js/main.js @@ -77,3 +77,65 @@ function advancedsearch(e) { return false; } + +function fetchRSS() { + if (document.location.protocol == "file:") + return; + + var planet = document.getElementById("planet"); + if (planet === null) + return; + + var req = new XMLHttpRequest(); + req.open("GET", "https://planet.virt-tools.org/atom.xml"); + req.setRequestHeader("Accept", "application/atom+xml, text/xml"); + req.onerror = function(e) { + if (this.statusText != "") + console.error(this); + }; + req.onload = function(e) { + if (this.readyState !== 4) + return; + + if (this.status != 200) { + console.error(this.statusText); + return; + } + + if (this.responseXML === null) { + console.error("Atom response is not an XML"); + return; + } + + var dl = document.createElement("dl"); + var dateOpts = { day: "numeric", month: "short", year: "numeric"}; + + var entries = this.responseXML.querySelectorAll("feed > entry:not(:nth-of-type(1n+5))"); + + entries.forEach(function(e) { + var name = e.querySelector("author > name").textContent; + var title = e.querySelector("title").textContent; + var updated = e.querySelector("updated").textContent; + var uri = e.querySelector("author > uri").textContent; + + var a = document.createElement("a"); + a.href = uri; + a.innerText = title; + + var dt = document.createElement("dt"); + dt.appendChild(a); + dl.appendChild(dt); + + var date = new Date(updated); + date = date.toLocaleDateString("default", dateOpts); + + var dd = document.createElement("dd"); + dd.innerText = ` by ${name} on ${date}`; + + dl.appendChild(dd); + }); + + planet.appendChild(dl); + }; + req.send(); +}