Skip to content

Commit 4351ed9

Browse files
authored
auto-news (#4)
1 parent 8788f7e commit 4351ed9

File tree

1 file changed

+54
-2
lines changed

1 file changed

+54
-2
lines changed

pages/index.md

+54-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,60 @@ Pygfx (py-graphics) is built on WebGPU, enabling superior performance and reliab
2323

2424
## <i class='fas'></i> News
2525

26-
* `04-10-2024` Released [wgpu-py v0.19.0](https://github.com/pygfx/wgpu-py/releases/tag/v0.19.0)
27-
* `25-09-2024` Released [pygfx v0.5.0](https://github.com/pygfx/pygfx/releases/tag/v0.5.0)
26+
<div id='news-div'></div>
27+
28+
<script>
29+
30+
async function get_release_info(repo) {
31+
let url = "https://api.github.com/repos/" + repo + "/releases?per_page=2";
32+
try {
33+
let response = await fetch(url);
34+
if (!response.ok) {
35+
throw new Error(`Response status: ${response.status}`);
36+
}
37+
let json = await response.json();
38+
let releases = [];
39+
for (let i=0; i<json.length; i++) {
40+
let date = new Date(json[i].published_at);
41+
info = {
42+
name: repo.split("/").slice(-1),
43+
tag: json[i].tag_name,
44+
url: json[i].html_url,
45+
date: date,
46+
};
47+
releases.push(info);
48+
}
49+
return releases;
50+
} catch (error) {
51+
console.warn("Could not fetch release info for "+ repo + ": " + error.message);
52+
}
53+
}
54+
55+
async function create_news() {
56+
let repos = ["pygfx/pygfx", "pygfx/wgpu-py", "pygfx/rendercanvas"];
57+
let releases = [];
58+
for (let repo of repos) {
59+
let repo_releases = await get_release_info(repo);
60+
releases.push(...repo_releases);
61+
}
62+
63+
releases.sort((a, b) => (a.date < b.date));
64+
65+
let news_div = document.getElementById("news-div");
66+
news_div.innerHTML = "";
67+
let ul = document.createElement("ul");
68+
news_div.appendChild(ul);
69+
for (release of releases) {
70+
// let d = release.date.toUTCString().split(" ").slice(0, 4).join(" ");
71+
let d = release.date.toISOString().split("T")[0].split("-").reverse().join("-")
72+
let li = document.createElement("li");
73+
li.innerHTML = "<code>" + d + "</code> Release " + release.name + " <a href='" + release.url + "'>" + release.tag + "</a>"
74+
ul.appendChild(li);
75+
}
76+
}
77+
78+
create_news();
79+
</script>
2880

2981

3082
## <i class='fas'></i> Getting started

0 commit comments

Comments
 (0)