diff --git a/assets/js/news.js b/assets/js/news.js index c902d3f..ac9d8b6 100644 --- a/assets/js/news.js +++ b/assets/js/news.js @@ -1,5 +1,30 @@ -$(document).ready(function() { - $("article section").each(function(){ - $('#sidebar ul').append("
  • "+$(this).find(".title").text()+"
  • "); - }); -}); \ No newline at end of file +"use strict"; +/** + * Generate sidebar with the news titles. Required because blank HTML is used. + */ + +const doFillSidebar = () => { + const sidebarList = document.querySelector("#sidebar ul"); + if(!sidebarList) { + console.warn("Sidebar missing for news.") + return; + } + + document.querySelectorAll("article section").forEach(section => { + const id = section.id; + if(!id) { + console.warn("ID missing for news.") + return; + } + + const titleText = section.querySelector(".title")?.textContent.trim() ?? ""; + sidebarList.insertAdjacentHTML("beforeend", `
  • ${titleText}
  • `); + }); +}; + +// Failsafe loading pattern. +if(document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", doFillSidebar); +} else { + doFillSidebar(); +} diff --git a/news.html b/news.html index 5b0b265..5f22e11 100644 --- a/news.html +++ b/news.html @@ -16,7 +16,7 @@ - +