Web/scripts/blog.js
Ell 08fc481589
All checks were successful
/ web (push) Successful in 1m1s
move website content to main directory
2024-06-14 17:49:53 +02:00

37 lines
1.2 KiB
JavaScript

$("#blog-archive-button").on("click", function () {
let archive = $("#blog-archive");
archive.toggle();
$(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts");
});
$(".blog-cat-button").on("click", function () {
let tag = $(this).attr("id");
openCategory(tag);
history.replaceState(null, null, `#blog-${tag}`);
});
let category = location.hash.match(/#blog-(.+)/);
openCategory(category && decodeURI(category[1]));
function openCategory(name) {
// if there are no tags that match our name, we display featured
if (!name || $(`#blog-${name}`).length <= 0)
name = "featured";
let all = name == "all";
// toggle post visibilites
$(".blog-entry").each(function () {
let e = $(this);
if (all || e.hasClass(`blog-tag-${name}`)) {
e.show();
} else {
e.hide();
}
});
// show or hide "no archived posts" text
$("#no-archived-posts").attr("hidden", $("#blog-archive").children(all ? "*" : `.blog-tag-${name}`).length > 0);
// disable the shown category's button
$(`.blog-cat-button`).each(function () {
$(this).attr("disabled", $(this).attr("id") == name);
});
}