diff --git a/package-lock.json b/package-lock.json index 6398ecf..e8eaf51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,9 @@ "devDependencies": { "@rgossiaux/svelte-headlessui": "^1.0.2", "@rgossiaux/svelte-heroicons": "^0.1.2", + "@sveltejs/pancake": "^0.0.18", "@sveltejs/vite-plugin-svelte": "^2.0.2", + "d3-hierarchy": "^3.1.2", "marked": "^4.2.4", "svelte": "^3.55.0", "vite": "^4.0.3" @@ -454,6 +456,15 @@ "svelte": "^3.44.0" } }, + "node_modules/@sveltejs/pancake": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@sveltejs/pancake/-/pancake-0.0.18.tgz", + "integrity": "sha512-vnpKn+sHE0yvw/6x4juF9EoDS8iYC5JNIVtRgclA37rfxdnIpvbVxStiZ5/gWncjERN4jtSpTAplS1zCARCBXA==", + "dev": true, + "dependencies": { + "yootils": "0.0.16" + } + }, "node_modules/@sveltejs/vite-plugin-svelte": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz", @@ -525,6 +536,15 @@ "optional": true, "peer": true }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -887,6 +907,12 @@ "optional": true } } + }, + "node_modules/yootils": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/yootils/-/yootils-0.0.16.tgz", + "integrity": "sha512-aIVecm5ucOzwhtKbl0zkfg0ZSOUR9c2da0k8cIc9umjjzkvVCWUUX/UHZ1CLPsv4wmJLqt0aWeLB7p9n9JDwYQ==", + "dev": true } }, "dependencies": { @@ -1117,6 +1143,15 @@ "dev": true, "requires": {} }, + "@sveltejs/pancake": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@sveltejs/pancake/-/pancake-0.0.18.tgz", + "integrity": "sha512-vnpKn+sHE0yvw/6x4juF9EoDS8iYC5JNIVtRgclA37rfxdnIpvbVxStiZ5/gWncjERN4jtSpTAplS1zCARCBXA==", + "dev": true, + "requires": { + "yootils": "0.0.16" + } + }, "@sveltejs/vite-plugin-svelte": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz", @@ -1174,6 +1209,12 @@ "optional": true, "peer": true }, + "d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1397,6 +1438,12 @@ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", "dev": true, "requires": {} + }, + "yootils": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/yootils/-/yootils-0.0.16.tgz", + "integrity": "sha512-aIVecm5ucOzwhtKbl0zkfg0ZSOUR9c2da0k8cIc9umjjzkvVCWUUX/UHZ1CLPsv4wmJLqt0aWeLB7p9n9JDwYQ==", + "dev": true } } } diff --git a/package.json b/package.json index f6dae67..fa5817f 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,10 @@ "devDependencies": { "@rgossiaux/svelte-headlessui": "^1.0.2", "@rgossiaux/svelte-heroicons": "^0.1.2", - "@sveltejs/vite-plugin-svelte": "^2.0.2", - "marked": "^4.2.4", + "@sveltejs/pancake": "^0.0.18", + "@sveltejs/vite-plugin-svelte": "^2.0.2", + "d3-hierarchy": "^3.1.2", + "marked": "^4.2.4", "svelte": "^3.55.0", "vite": "^4.0.3" } diff --git a/public/map.html b/public/map.html deleted file mode 100644 index 0323a44..0000000 --- a/public/map.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - TreeMap - - - - - - - - -
- Help us improve this taxonomy -
-

- - - \ No newline at end of file diff --git a/src/PancakeTreemap.svelte b/src/PancakeTreemap.svelte new file mode 100644 index 0000000..1ba31a8 --- /dev/null +++ b/src/PancakeTreemap.svelte @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/TreeMap.svelte b/src/TreeMap.svelte index 20c5135..1494b31 100644 --- a/src/TreeMap.svelte +++ b/src/TreeMap.svelte @@ -1 +1,181 @@ - \ No newline at end of file + + + + +
+ + + {#if is_visible(node, selected)} +
+
+ window.location.href = "/#/topic/" + node.data.name}> + {node.data.name.split('/').reverse()[0]} + +
+
+ {/if} +
+
+
+ + \ No newline at end of file diff --git a/src/TreemapNode.svelte b/src/TreemapNode.svelte new file mode 100644 index 0000000..7166a54 --- /dev/null +++ b/src/TreemapNode.svelte @@ -0,0 +1,16 @@ + + + + + + +{#each (node.children || []) as child} + + + +{/each} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 98d1bcd..e1a195c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,17 +1,9 @@ import { defineConfig } from 'vite' import { svelte } from '@sveltejs/vite-plugin-svelte' -import fs from 'fs'; - -function copyTopicJSONToPublic(){ - // This is needed for map.html which needs to fetch all topics from server - console.log("Copying db/topics.json to public/alltopics.json ..."); - fs.copyFileSync("db/topics.json", "public/alltopics.json") -} // https://vitejs.dev/config/ export default defineConfig({ plugins: [ - copyTopicJSONToPublic(), svelte() ], }) \ No newline at end of file