let topics = [ 'All', 'SoftwareSecurity', 'NetworkSecurity', 'Vulnerability', 'MemorySafety', 'WebSecurity', 'AppSecurity', 'Cryptography', 'SystemSecurity', 'PenTest' ] let topic_dd = make_dropdown("Choose a topic:", topics, "topic-dd"); let optbtn = document.getElementsByClassName("optionsbtn")[0]; let closebtn = document.getElementsByClassName("closebtn")[0]; let optionpanel = document.getElementById("option-panel"); let body = document.getElementById("content-body"); let display = document.getElementById("display"); let optboxes = document.getElementsByClassName("optbox"); let opt_dds = document.getElementsByClassName("opt-dd"); optboxes[0].innerHTML += topic_dd; topic_dd = document.getElementById("topic-dd"); topic_dd.addEventListener("change", filter_data); let filters = {}; optbtn.addEventListener("click", openNav); closebtn.addEventListener("click", closeNav); for (each of opt_dds) { each.addEventListener("change", change_filters); } filter_data(); function openNav() { optionpanel.style.width = "20vw"; display.style.width = "60vw"; for (each of optionpanel.children) { each.style.display = "block"; } } function closeNav() { optionpanel.style.width = "0"; display.style.width = "80vw"; for (each of optionpanel.children) { each.style.display = "none"; } } function change_filters(e) { filters.topic = document.getElementById("topic-dd").value; } function create_page(d) { if (d.length === 0) { body.innerHTML = "
No example satisfies All the filters.
"; } else { col1 = create_col(d.slice(0, d.length / 2)); col2 = create_col(d.slice(d.length / 2)); body.innerHTML = col1 + col2; } reflow(body); console.log("reflowed"); } function escapeHtml(html) { return html .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } function create_col(data) { res = []; for (each of data) { res.push(create_example(each)); } return `Question
${convert_latex(text).replace(/\\n|\n/g, "
")}
Choices
Choices
Answer
${convert_latex(answer)}
`; return html; } function make_dropdown(label, options, id, default_ind = 0) { let html = ""; for (let i = 0; i < options.length; i++) { if (i === default_ind) html += ``; else html += ``; } html = `