hugo-bearcub/static/top_posts.js

41 lines
1,007 B
JavaScript
Raw Normal View History

2026-06-15 15:49:01 -04:00
(async function () {
console.log("Starting top_posts");
const API = window.UPVOTE_API;
const NUM_BEST = window.NUM_BEST;
const res = await fetch(`${API}/posts/best?top=${NUM_BEST}`, {
credentials: "include",
});
const data = await res.json();
const URL = window.location.origin;
const ul = document.getElementById("top-posts");
for (post of data) {
const postUrl = post.slug.replace("posts-", "");
2026-06-15 15:49:01 -04:00
const pageUrl = `/posts/${postUrl}`;
try {
const pageResponse = await fetch(pageUrl);
const html = await pageResponse.text();
const doc = new DOMParser().parseFromString(html, "text/html");
const title =
doc.querySelector('meta[property="og:title"]')?.content ||
doc.title ||
slug;
const li = document.createElement("li");
li.innerHTML = `
<a href="/posts/${postUrl}">
${title}
</a>
`;
ul.appendChild(li);
} catch (err) {
console.error(err);
}
}
})();