diff options
Diffstat (limited to 'content/sopencores/opencores.js')
-rw-r--r-- | content/sopencores/opencores.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/content/sopencores/opencores.js b/content/sopencores/opencores.js new file mode 100644 index 0000000..085a613 --- /dev/null +++ b/content/sopencores/opencores.js @@ -0,0 +1,33 @@ +/** + * Copyright 2021 Wojtek Kosior + * + * Available under the terms of Creative Commons Zero. + */ + +let data = JSON.parse(document.getElementById("__NEXT_DATA__").textContent); +let sections = {}; +for (let h1 of document.getElementsByClassName("cMJCrc")) { + let ul = document.createElement("ul"); + if (h1.nextElementSibling !== null) + h1.parentNode.insertBefore(ul, h1.nextElementSibling); + else + h1.parentNode.appendChild(ul); + + sections[h1.children[1].firstChild.textContent] = ul; +} + +for (let prop of data.props.pageProps.list) { + let ul = sections[prop.category]; + if (ul === undefined) { + console.log(`unknown category "${prop.category}" for project "${prop.title}"`); + continue; + } + + let li = document.createElement("li"); + let a = document.createElement("a"); + a.setAttribute("href", "/projects/" + prop.slug); + a.textContent = prop.title; + + li.appendChild(a); + ul.appendChild(li); +} |