From 941ad25ca893297edbb771570a0e9b11305425ce Mon Sep 17 00:00:00 2001 From: Maciej Jur Date: Thu, 8 Jun 2023 00:03:20 +0200 Subject: [PATCH] (wiki) add cloc chart --- .vscode/settings.json | 2 +- package.json | 1 + pnpm-lock.yaml | 14 ++++++++ src/assets/wiki/ProjectSizeChart.tsx | 51 ++++++++++++++++++++++++++++ src/components/tree/Tree.astro | 4 +-- src/content/_templates/_post.md | 4 --- src/content/_templates/_song.md | 12 ------- src/pages/wiki/index.md | 6 ---- src/pages/wiki/index.mdx | 14 ++++++++ src/styles/layouts/_wiki.scss | 7 ++++ tsconfig.json | 1 + 11 files changed, 91 insertions(+), 25 deletions(-) create mode 100644 src/assets/wiki/ProjectSizeChart.tsx delete mode 100644 src/content/_templates/_post.md delete mode 100644 src/content/_templates/_song.md delete mode 100644 src/pages/wiki/index.md create mode 100644 src/pages/wiki/index.mdx diff --git a/.vscode/settings.json b/.vscode/settings.json index 5808b2c..2d2df43 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,6 @@ { "files.associations": { - "*.mdx": "markdown" + // "*.mdx": "markdown" }, "ltex.language": "en-US" } \ No newline at end of file diff --git a/package.json b/package.json index d75a2d1..b0e10ea 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@astrojs/solid-js": "^2.2.0", "astro": "^2.6.1", "astro-pagefind": "^1.2.0", + "chart.js": "^4.3.0", "dayjs": "^1.11.8", "leaflet": "^1.9.4", "leaflet.markercluster": "^1.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f04bed7..1ad7771 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ dependencies: astro-pagefind: specifier: ^1.2.0 version: 1.2.0(astro@2.6.1) + chart.js: + specifier: ^4.3.0 + version: 4.3.0 dayjs: specifier: ^1.11.8 version: 1.11.8 @@ -718,6 +721,10 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: false + /@kurkle/color@0.3.2: + resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} + dev: false + /@ljharb/has-package-exports-patterns@0.0.2: resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} dev: false @@ -1268,6 +1275,13 @@ packages: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} dev: false + /chart.js@4.3.0: + resolution: {integrity: sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g==} + engines: {pnpm: '>=7'} + dependencies: + '@kurkle/color': 0.3.2 + dev: false + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} diff --git a/src/assets/wiki/ProjectSizeChart.tsx b/src/assets/wiki/ProjectSizeChart.tsx new file mode 100644 index 0000000..525df6b --- /dev/null +++ b/src/assets/wiki/ProjectSizeChart.tsx @@ -0,0 +1,51 @@ +import { Maybe } from "purify-ts"; +import { onMount } from "solid-js"; +import Chart from "chart.js/auto"; + + +const data = { + labels: ["June"], + datasets: [ + { + label: "Markdown", + data: [2455], + }, + { + label: "SCSS", + data: [1138], + }, + { + label: "TypeScript", + data: [1011], + }, + { + label: "Astro", + data: [946] + } + ] +}; + +const options = { + responsive: true, + maintainAspectRatio: false, + scales: { + y: { + beginAtZero: true, + } + } +}; + +export default function ProjectSizeChart() { + + onMount(() => Maybe + .fromNullable(document.getElementById("project-size-chart") as HTMLCanvasElement) + .chainNullable(e => e.getContext("2d")) + .ifJust(ctx => new Chart(ctx, { type: "line", data, options })) + ) + + return ( +
+ +
+ ) +} diff --git a/src/components/tree/Tree.astro b/src/components/tree/Tree.astro index 4a0afb3..1da7718 100644 --- a/src/components/tree/Tree.astro +++ b/src/components/tree/Tree.astro @@ -14,7 +14,7 @@ interface Props { const { heading, tree, slug, prefix } = Astro.props; --- - + diff --git a/src/content/_templates/_post.md b/src/content/_templates/_post.md deleted file mode 100644 index 5584602..0000000 --- a/src/content/_templates/_post.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Title -date: {{date:YYYY-MM-DDTHH:mm:ssZ}} ---- \ No newline at end of file diff --git a/src/content/_templates/_song.md b/src/content/_templates/_song.md deleted file mode 100644 index f335e2e..0000000 --- a/src/content/_templates/_song.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Title -composer: Composer -lyrics: Lirycist -origin: - - Original title -album: - ARCD0051: - track: 7 - vocal: - - Vocalist ---- diff --git a/src/pages/wiki/index.md b/src/pages/wiki/index.md deleted file mode 100644 index fe29650..0000000 --- a/src/pages/wiki/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -layout: ../../layouts/Wiki.astro -title: Wiki home page ---- - -Hello diff --git a/src/pages/wiki/index.mdx b/src/pages/wiki/index.mdx new file mode 100644 index 0000000..1ce7692 --- /dev/null +++ b/src/pages/wiki/index.mdx @@ -0,0 +1,14 @@ +--- +layout: ../../layouts/Wiki.astro +title: Wiki home page +--- +import ProjectSizeChart from '@assets/wiki/ProjectSizeChart'; + + + +## Project size + +Below is a chart for lines of code by extension inside the repository for this website. + + + diff --git a/src/styles/layouts/_wiki.scss b/src/styles/layouts/_wiki.scss index 4383efa..15ae307 100644 --- a/src/styles/layouts/_wiki.scss +++ b/src/styles/layouts/_wiki.scss @@ -5,6 +5,13 @@ @media (min-width: 80rem) { grid-template-columns: 16em auto 16em; } + + .link-tree { + position: sticky; + top: 0; + height: fit-content; + max-height: 100vh; + } } .wiki-article { diff --git a/tsconfig.json b/tsconfig.json index 2380170..597a59f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "jsxImportSource": "solid-js", "baseUrl": "src", "paths": { + "@assets/*": ["assets/*"], "@layouts/*": ["layouts/*"], "@components/*": ["components/*"], "@utils/*": ["utils/*"],