102 lines
No EOL
3.7 KiB
JavaScript
102 lines
No EOL
3.7 KiB
JavaScript
/** Vanilla JS does not allow dynamically fetching files in a local directory. We have to hard code the list to loop over.
|
|
* Each entry is the name of a subfolder in /docs/.
|
|
*/
|
|
const docs_post_names = [
|
|
"items_adv_help",
|
|
"damage_calc",
|
|
"powders"
|
|
]
|
|
|
|
/** Map of
|
|
* Key: post_name - the subdirectory name also present in docs_post_names
|
|
* Value: [Title, Summary, Author(s)]
|
|
*/
|
|
docs_post_thumbnails = new Map();
|
|
docs_post_thumbnails.set("items_adv_help", ["Advanced Item Search Help", "A practical guide on how to use WynnBuilder's advanced item search feature.", "Phanta"]);
|
|
docs_post_thumbnails.set("damage_calc", ["Damage Calculation", "All the ins and outs of Wynncraft damage calculation. Includes spells, powder specials, abilities, and major IDs!", "hppeng, ferricles"]);
|
|
docs_post_thumbnails.set("powders", ["Weapon Powder Application", "Read this to learn the mechanics of powder application on weapons!", "ferricles, hppeng"]);
|
|
|
|
/** Populates the HTML element with the id 'post-list'
|
|
*
|
|
*/
|
|
function populate_post_previews() {
|
|
post_list_parent = document.getElementById('post-list');
|
|
|
|
docs_post_names.forEach((post_name) => {
|
|
post = document.createElement('article');
|
|
post_info = docs_post_thumbnails.get(post_name);
|
|
console.log(post_info);
|
|
if (post_info == undefined) {
|
|
return;
|
|
}
|
|
|
|
title = document.createElement('h2');
|
|
title.innerHTML = post_info[0];
|
|
post.appendChild(title);
|
|
|
|
summary = document.createElement('p');
|
|
summary.innerHTML = post_info[1];
|
|
post.appendChild(summary);
|
|
|
|
authors = document.createElement('p');
|
|
authors.innerHTML = "Author(s): " + post_info[2];
|
|
post.appendChild(authors);
|
|
|
|
link = document.createElement("a");
|
|
link.setAttribute('href', `/wynnfo/${post_name}/`);
|
|
post.appendChild(link);
|
|
|
|
post_list_parent.appendChild(post);
|
|
});
|
|
}
|
|
|
|
function initDropdownSections() {
|
|
dropdowns = document.querySelectorAll('span.dropdown');
|
|
for (const dropdown of dropdowns) {
|
|
let inner_content = dropdown.children[0]
|
|
|
|
dropdown.classList.add("up", "row");
|
|
let title = document.createElement("div");
|
|
title.classList.add("col-10", "item-title", "text-start", "dropdown-title")
|
|
title.style.margin = "0 0 0";
|
|
title.textContent = dropdown.title;
|
|
dropdown.textContent = "";
|
|
let indicator = document.createElement("div");
|
|
indicator.classList.add("col-auto", "fw-bold", "box-title");
|
|
indicator.textContent = "+";
|
|
dropdown.prepend(indicator);
|
|
dropdown.prepend(title);
|
|
dropdown.appendChild(inner_content);
|
|
inner_content.style.display = "none";
|
|
|
|
title.addEventListener("click", function(){
|
|
if (dropdown.classList.contains("up")) {
|
|
dropdown.classList.remove("up");
|
|
dropdown.classList.add("down");
|
|
indicator.textContent = "-";
|
|
|
|
inner_content.style.display = "";
|
|
} else {
|
|
dropdown.classList.remove("down");
|
|
dropdown.classList.add("up");
|
|
indicator.textContent = "+";
|
|
|
|
inner_content.style.display = "none";
|
|
}
|
|
});
|
|
title.addEventListener("mouseover", function(){
|
|
title.style.color = "#ddd";
|
|
title.style.fontWeight = "bold";
|
|
indicator.style.color = "#ddd";
|
|
indicator.style.fontWeight = "bold";
|
|
});
|
|
title.addEventListener("mouseleave", function(){
|
|
title.style.color = "";
|
|
title.style.fontWeight = "normal";
|
|
indicator.style.color = "";
|
|
indicator.style.fontWeight = "normal";
|
|
});
|
|
|
|
|
|
}
|
|
} |