$("#blog-archive-button").on("click", function () { let archive = $('#blog-archive'); archive.toggle(); $(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts"); }); let blogData; $.ajax({ dataType: "json", url: "blog/src/posts.json", cache: false, success: function (json) { blogData = json; populateBlog("All"); forceToAnchor(); } }); function populateBlog(cat) { let archive = $('#blog-archive'); let list = $('#blog-list'); let cats = $('#blog-cats'); archive.html(""); list.html(""); cats.html(""); addCatButton(cats, "All"); for (let i = blogData.length - 1; i >= 0; i--) { var obj = blogData[i]; addCatButton(cats, obj.cat); if (cat == "All" || obj.cat == cat) { let p = ""; p += '
'; p += '
'; p += '

' + obj.name + '

'; p += '
' + obj.summary + '
'; p += '' + obj.date + ""; p += '' + obj.cat + ""; p += '
'; if (obj.archived) { archive.append(p); } else { list.append(p); } } } } function addCatButton(cats, cat) { let catAnchor = `blog-cat-${cat.toLowerCase().replace(" ", "_")}`; if (!$(`#${catAnchor}`).length) { cats.append(``); $(`#${catAnchor}`).on('click', function () { populateBlog(cat); }); } }