diff options
Diffstat (limited to 'content/sopencores')
-rw-r--r-- | content/sopencores/index.json | 6 | ||||
-rw-r--r-- | content/sopencores/opencores.js | 33 |
2 files changed, 39 insertions, 0 deletions
diff --git a/content/sopencores/index.json b/content/sopencores/index.json new file mode 100644 index 0000000..a8e2b61 --- /dev/null +++ b/content/sopencores/index.json @@ -0,0 +1,6 @@ +{ +"type" : "script", +"name" : "opencores", +"sha256" : "5ce6359ef5f253a95c13a43a622712ea1edf67e7f1df7b52b5456fbf8c59c377", +"location" : "opencores.js" +}
\ No newline at end of file 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); +} |