From a8cb3c0c78987dd8951d89b608f8704283763f1d Mon Sep 17 00:00:00 2001 From: Maciej Jur Date: Tue, 13 Feb 2024 01:40:54 +0100 Subject: [PATCH] feat: add treesitter --- astro.config.ts | 6 +- package.json | 4 +- pnpm-lock.yaml | 269 ++++++++++-------- src/content/posts/css.mdx | 4 +- src/styles/_kanagawa.scss | 89 ++++++ src/styles/styles.scss | 1 + src/utils/treesitter.ts | 59 ++++ tools/treesitter/.cargo/config.toml | 2 + tools/treesitter/.gitignore | 197 +++++++++++++ tools/treesitter/Cargo.toml | 33 +++ tools/treesitter/build.rs | 5 + tools/treesitter/npm/darwin-x64/README.md | 3 + tools/treesitter/npm/darwin-x64/package.json | 18 ++ tools/treesitter/npm/linux-x64-gnu/README.md | 3 + .../treesitter/npm/linux-x64-gnu/package.json | 21 ++ tools/treesitter/npm/win32-x64-msvc/README.md | 3 + .../npm/win32-x64-msvc/package.json | 18 ++ tools/treesitter/package.json | 28 ++ tools/treesitter/pnpm-lock.yaml | 18 ++ tools/treesitter/src/configs.rs | 156 ++++++++++ tools/treesitter/src/lib.rs | 54 ++++ 21 files changed, 872 insertions(+), 119 deletions(-) create mode 100644 src/styles/_kanagawa.scss create mode 100644 src/utils/treesitter.ts create mode 100644 tools/treesitter/.cargo/config.toml create mode 100644 tools/treesitter/.gitignore create mode 100644 tools/treesitter/Cargo.toml create mode 100644 tools/treesitter/build.rs create mode 100644 tools/treesitter/npm/darwin-x64/README.md create mode 100644 tools/treesitter/npm/darwin-x64/package.json create mode 100644 tools/treesitter/npm/linux-x64-gnu/README.md create mode 100644 tools/treesitter/npm/linux-x64-gnu/package.json create mode 100644 tools/treesitter/npm/win32-x64-msvc/README.md create mode 100644 tools/treesitter/npm/win32-x64-msvc/package.json create mode 100644 tools/treesitter/package.json create mode 100644 tools/treesitter/pnpm-lock.yaml create mode 100644 tools/treesitter/src/configs.rs create mode 100644 tools/treesitter/src/lib.rs diff --git a/astro.config.ts b/astro.config.ts index c423c97..65f9f57 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -8,6 +8,7 @@ import rehypeKatex from 'rehype-katex'; import remarkEmoji from 'remark-emoji'; import remarkBib from './src/utils/remark/bib'; import remarkRuby from './src/utils/remark/ruby'; +import rehypeTreesitter from './src/utils/treesitter'; // https://astro.build/config @@ -18,6 +19,7 @@ export default defineConfig({ enabled: true, }, markdown: { + syntaxHighlight: false, remarkPlugins: [ remarkDirective, remarkMath, @@ -28,10 +30,8 @@ export default defineConfig({ rehypePlugins: [ // https://katex.org/docs/options.html [rehypeKatex, { output: 'mathml' }], + rehypeTreesitter, ], - shikiConfig: { - theme: 'min-light' - }, }, integrations: [ mdx(), diff --git a/package.json b/package.json index ca7e66e..58627b5 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@astrojs/svelte": "^5.0.3", "@citation-js/plugin-bibtex": "^0.7.8", "@js-temporal/polyfill": "^0.4.4", - "astro": "^4.3.5", + "astro": "^4.3.6", "astro-pagefind": "^1.4.0", "chart.js": "^4.4.1", "citation-js": "^0.7.8", @@ -33,7 +33,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", "reveal.js": "^5.0.4", - "svelte": "5.0.0-next.51", + "svelte": "5.0.0-next.52", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index faf6233..e5ebfe1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,10 +7,10 @@ settings: dependencies: '@astrojs/mdx': specifier: ^2.1.1 - version: 2.1.1(astro@4.3.5) + version: 2.1.1(astro@4.3.6) '@astrojs/svelte': specifier: ^5.0.3 - version: 5.0.3(astro@4.3.5)(svelte@5.0.0-next.51)(typescript@5.3.3)(vite@5.1.0) + version: 5.0.3(astro@4.3.6)(svelte@5.0.0-next.52)(typescript@5.3.3)(vite@5.1.1) '@citation-js/plugin-bibtex': specifier: ^0.7.8 version: 0.7.8(@citation-js/core@0.7.6) @@ -18,11 +18,11 @@ dependencies: specifier: ^0.4.4 version: 0.4.4 astro: - specifier: ^4.3.5 - version: 4.3.5(sass@1.70.0)(typescript@5.3.3) + specifier: ^4.3.6 + version: 4.3.6(sass@1.70.0)(typescript@5.3.3) astro-pagefind: specifier: ^1.4.0 - version: 1.4.0(astro@4.3.5) + version: 1.4.0(astro@4.3.6) chart.js: specifier: ^4.4.1 version: 4.4.1 @@ -72,8 +72,8 @@ dependencies: specifier: ^5.0.4 version: 5.0.4 svelte: - specifier: 5.0.0-next.51 - version: 5.0.0-next.51 + specifier: 5.0.0-next.52 + version: 5.0.0-next.52 unified: specifier: ^11.0.4 version: 11.0.4 @@ -103,6 +103,9 @@ devDependencies: sharp: specifier: ^0.33.2 version: 0.33.2 + treesitter: + specifier: file:/home/kamov/Desktop/treesitter + version: file:../../Desktop/treesitter packages: @@ -143,16 +146,16 @@ packages: - supports-color dev: false - /@astrojs/mdx@2.1.1(astro@4.3.5): + /@astrojs/mdx@2.1.1(astro@4.3.6): resolution: {integrity: sha512-AgGFdE7HOGmoFooGvMSatkA9FiSKwyVW7ImHot/bXJ6uAbFfu6iG2ht18Cf1pT22Hda/6iSCGWusFvBv0/EnKQ==} engines: {node: '>=18.14.1'} peerDependencies: astro: ^4.0.0 dependencies: '@astrojs/markdown-remark': 4.2.1 - '@mdx-js/mdx': 3.0.0 + '@mdx-js/mdx': 3.0.1 acorn: 8.11.3 - astro: 4.3.5(sass@1.70.0)(typescript@5.3.3) + astro: 4.3.6(sass@1.70.0)(typescript@5.3.3) es-module-lexer: 1.4.1 estree-util-visit: 2.0.0 github-slugger: 2.0.0 @@ -176,17 +179,17 @@ packages: prismjs: 1.29.0 dev: false - /@astrojs/svelte@5.0.3(astro@4.3.5)(svelte@5.0.0-next.51)(typescript@5.3.3)(vite@5.1.0): + /@astrojs/svelte@5.0.3(astro@4.3.6)(svelte@5.0.0-next.52)(typescript@5.3.3)(vite@5.1.1): resolution: {integrity: sha512-6TUBRUxmsEczKPBT6oDUAfvzuFCmITuhZfKPT5ZtOOyj9XOVnEnj/Iobd3ajKUbpWNYX7qZVAd1KMkmJc1Nhsg==} engines: {node: '>=18.14.1'} peerDependencies: astro: ^4.0.0 svelte: ^4.0.0 || ^5.0.0-next.1 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.51)(vite@5.1.0) - astro: 4.3.5(sass@1.70.0)(typescript@5.3.3) - svelte: 5.0.0-next.51 - svelte2tsx: 0.6.27(svelte@5.0.0-next.51)(typescript@5.3.3) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.52)(vite@5.1.1) + astro: 4.3.6(sass@1.70.0)(typescript@5.3.3) + svelte: 5.0.0-next.52 + svelte2tsx: 0.6.27(svelte@5.0.0-next.52)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript @@ -986,8 +989,8 @@ packages: resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} dev: false - /@mdx-js/mdx@3.0.0: - resolution: {integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==} + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.4 @@ -1003,7 +1006,7 @@ packages: hast-util-to-jsx-runtime: 2.3.0 markdown-extensions: 2.0.0 periscopic: 3.1.0 - remark-mdx: 3.0.0 + remark-mdx: 3.0.1 remark-parse: 11.0.0 remark-rehype: 11.1.0 source-map: 0.7.4 @@ -1080,104 +1083,104 @@ packages: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} dev: false - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + /@rollup/rollup-android-arm-eabi@4.10.0: + resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} cpu: [arm] os: [android] requiresBuild: true dev: false optional: true - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + /@rollup/rollup-android-arm64@4.10.0: + resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} cpu: [arm64] os: [android] requiresBuild: true dev: false optional: true - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + /@rollup/rollup-darwin-arm64@4.10.0: + resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: false optional: true - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + /@rollup/rollup-darwin-x64@4.10.0: + resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} cpu: [x64] os: [darwin] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.10.0: + resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} cpu: [arm] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm64-gnu@4.10.0: + resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-musl@4.10.0: + resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + /@rollup/rollup-linux-riscv64-gnu@4.10.0: + resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} cpu: [riscv64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + /@rollup/rollup-linux-x64-gnu@4.10.0: + resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + /@rollup/rollup-linux-x64-musl@4.10.0: + resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + /@rollup/rollup-win32-arm64-msvc@4.10.0: + resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + /@rollup/rollup-win32-ia32-msvc@4.10.0: + resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} cpu: [ia32] os: [win32] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + /@rollup/rollup-win32-x64-msvc@4.10.0: + resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} cpu: [x64] os: [win32] requiresBuild: true @@ -1189,7 +1192,7 @@ packages: engines: {node: '>=10'} dev: false - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.51)(vite@5.1.0): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.52)(vite@5.1.1): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -1197,30 +1200,30 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.51)(vite@5.1.0) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.52)(vite@5.1.1) debug: 4.3.4 - svelte: 5.0.0-next.51 - vite: 5.1.0(sass@1.70.0) + svelte: 5.0.0-next.52 + vite: 5.1.1(sass@1.70.0) transitivePeerDependencies: - supports-color dev: false - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@5.0.0-next.51)(vite@5.1.0): + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@5.0.0-next.52)(vite@5.1.1): resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.51)(vite@5.1.0) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.52)(vite@5.1.1) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.7 - svelte: 5.0.0-next.51 - svelte-hmr: 0.15.3(svelte@5.0.0-next.51) - vite: 5.1.0(sass@1.70.0) - vitefu: 0.2.5(vite@5.1.0) + svelte: 5.0.0-next.52 + svelte-hmr: 0.15.3(svelte@5.0.0-next.52) + vite: 5.1.1(sass@1.70.0) + vitefu: 0.2.5(vite@5.1.1) transitivePeerDependencies: - supports-color dev: false @@ -1423,19 +1426,19 @@ packages: hasBin: true dev: false - /astro-pagefind@1.4.0(astro@4.3.5): + /astro-pagefind@1.4.0(astro@4.3.6): resolution: {integrity: sha512-WMUlS0TTqIDqygplj/cxKU+l3oI+zB2qgYNMZed5R5nXuw8HhAKATog9zazuN05TOSWxI2Ap9+9WAYnnJ+4C7A==} peerDependencies: astro: ^2.0.4 || ^3.0.0 || ^4.0.0 dependencies: '@pagefind/default-ui': 1.0.4 - astro: 4.3.5(sass@1.70.0)(typescript@5.3.3) + astro: 4.3.6(sass@1.70.0)(typescript@5.3.3) pagefind: 1.0.4 sirv: 2.0.4 dev: false - /astro@4.3.5(sass@1.70.0)(typescript@5.3.3): - resolution: {integrity: sha512-7jPffNlcmDO94NlkWe/hUWta/pIjlx1LVD/DZb/fyjT1Jv+7mGhKZBIjkDfeVpequW70mep8cAS5RM7Pxa0Gdg==} + /astro@4.3.6(sass@1.70.0)(typescript@5.3.3): + resolution: {integrity: sha512-VYJGsBygMtPM/qTRgn5QdxkSILgjpW2uHVw3snp/Gkl+N9uRAAnuYxrUO7wkbLejfrmlb0nZyyKG+H5VDQPbeg==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: @@ -1463,7 +1466,7 @@ packages: debug: 4.3.4 deterministic-object-hash: 2.0.2 devalue: 4.3.2 - diff: 5.1.0 + diff: 5.2.0 dlv: 1.1.3 dset: 3.1.3 es-module-lexer: 1.4.1 @@ -1493,13 +1496,14 @@ packages: semver: 7.6.0 server-destroy: 1.0.1 shikiji: 0.9.19 + shikiji-core: 0.9.19 string-width: 7.1.0 strip-ansi: 7.1.0 tsconfck: 3.0.2(typescript@5.3.3) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.1.0(sass@1.70.0) - vitefu: 0.2.5(vite@5.1.0) + vite: 5.1.1(sass@1.70.0) + vitefu: 0.2.5(vite@5.1.1) which-pm: 2.1.1 yargs-parser: 21.1.1 zod: 3.22.4 @@ -1533,6 +1537,37 @@ packages: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false + /bare-events@2.2.0: + resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==} + requiresBuild: true + dev: false + optional: true + + /bare-fs@2.1.3: + resolution: {integrity: sha512-Oa7F0QJV7We0mtKq7Tk246uiBrl7vun64cPEsJOEwv2vHjnVL9yO7aH3643aSrd4rXfVe7yhJ9LHZywQQAXKFQ==} + requiresBuild: true + dependencies: + bare-events: 2.2.0 + bare-os: 2.1.2 + bare-path: 2.1.0 + streamx: 2.15.8 + dev: false + optional: true + + /bare-os@2.1.2: + resolution: {integrity: sha512-slQjOn78Q8itnzomNAamiKo5MDpEpV3JnoNZ93lyynaFh6paWcU+5c0GVcZ7EYIJC2unN2JGdF1qupdscYl0Yg==} + requiresBuild: true + dev: false + optional: true + + /bare-path@2.1.0: + resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} + requiresBuild: true + dependencies: + bare-os: 2.1.2 + dev: false + optional: true + /base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} dev: false @@ -1588,8 +1623,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001585 - electron-to-chromium: 1.4.662 + caniuse-lite: 1.0.30001587 + electron-to-chromium: 1.4.665 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.3) dev: false @@ -1613,8 +1648,8 @@ packages: engines: {node: '>=14.16'} dev: false - /caniuse-lite@1.0.30001585: - resolution: {integrity: sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==} + /caniuse-lite@1.0.30001587: + resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} dev: false /ccount@2.0.1: @@ -1908,8 +1943,8 @@ packages: dequal: 2.0.3 dev: false - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dev: false @@ -1926,8 +1961,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium@1.4.662: - resolution: {integrity: sha512-gfl1XVWTQmPHhqEG0kN77SpUxaqPpMb9r83PT4gvKhg7P3irSxru3lW85RxvK1uI1j2CAcTWPjG/HbE0IP/Rtg==} + /electron-to-chromium@1.4.665: + resolution: {integrity: sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==} dev: false /emoji-regex@10.3.0: @@ -2244,8 +2279,8 @@ packages: engines: {node: '>=4'} dev: false - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -2334,7 +2369,7 @@ packages: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.0 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.4.1 space-separated-tokens: 2.0.2 @@ -2373,7 +2408,7 @@ packages: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.0 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.4.1 space-separated-tokens: 2.0.2 @@ -2502,7 +2537,7 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: false /is-decimal@2.0.1: @@ -2882,8 +2917,8 @@ packages: - supports-color dev: false - /mdast-util-mdx-jsx@3.0.0: - resolution: {integrity: sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==} + /mdast-util-mdx-jsx@3.1.0: + resolution: {integrity: sha512-A8AJHlR7/wPQ3+Jre1+1rq040fX9A4Q1jG8JxmSNp/PLPHg80A6475wxTp3KzHpApFH6yWxFotHrJQA3dXP6/w==} dependencies: '@types/estree-jsx': 1.0.4 '@types/hast': 3.0.4 @@ -2907,7 +2942,7 @@ packages: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.0 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: @@ -3907,8 +3942,8 @@ packages: - supports-color dev: false - /remark-mdx@3.0.0: - resolution: {integrity: sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g==} + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -4016,26 +4051,26 @@ packages: engines: {node: '>=18.0.0'} dev: false - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + /rollup@4.10.0: + resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 + '@rollup/rollup-android-arm-eabi': 4.10.0 + '@rollup/rollup-android-arm64': 4.10.0 + '@rollup/rollup-darwin-arm64': 4.10.0 + '@rollup/rollup-darwin-x64': 4.10.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 + '@rollup/rollup-linux-arm64-gnu': 4.10.0 + '@rollup/rollup-linux-arm64-musl': 4.10.0 + '@rollup/rollup-linux-riscv64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-musl': 4.10.0 + '@rollup/rollup-win32-arm64-msvc': 4.10.0 + '@rollup/rollup-win32-ia32-msvc': 4.10.0 + '@rollup/rollup-win32-x64-msvc': 4.10.0 fsevents: 2.3.3 dev: false @@ -4101,7 +4136,7 @@ packages: prebuild-install: 7.1.1 semver: 7.6.0 simple-get: 4.0.1 - tar-fs: 3.0.4 + tar-fs: 3.0.5 tunnel-agent: 0.6.0 dev: false optional: true @@ -4240,12 +4275,14 @@ packages: - supports-color dev: false - /streamx@2.15.7: - resolution: {integrity: sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==} + /streamx@2.15.8: + resolution: {integrity: sha512-6pwMeMY/SuISiRsuS8TeIrAzyFbG5gGPHFQsYjUr/pbBadaL1PCWmzKw+CHZSwainfvcF6Si6cVLq4XTEwswFQ==} requiresBuild: true dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 + optionalDependencies: + bare-events: 2.2.0 dev: false optional: true @@ -4358,16 +4395,16 @@ packages: engines: {node: '>= 0.4'} dev: false - /svelte-hmr@0.15.3(svelte@5.0.0-next.51): + /svelte-hmr@0.15.3(svelte@5.0.0-next.52): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 5.0.0-next.51 + svelte: 5.0.0-next.52 dev: false - /svelte2tsx@0.6.27(svelte@5.0.0-next.51)(typescript@5.3.3): + /svelte2tsx@0.6.27(svelte@5.0.0-next.52)(typescript@5.3.3): resolution: {integrity: sha512-E1uPW1o6VsbRz+nUk3fznZ2lSmCITAJoNu8AYefWSvIwE2pSB01i5sId4RMbWNzfcwCQl1DcgGShCPcldl4rvg==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 @@ -4375,12 +4412,12 @@ packages: dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.0.0-next.51 + svelte: 5.0.0-next.52 typescript: 5.3.3 dev: false - /svelte@5.0.0-next.51: - resolution: {integrity: sha512-ZnHaCxbFdE4zEihtxt0vbw/ZiZbgm70krGj71bnYKERk0Djlq94cpgZRmqbR6grO1Ct9itRdtTwhu89OaHBnBg==} + /svelte@5.0.0-next.52: + resolution: {integrity: sha512-f7yhm97uEZx2QjLSMwlkq70nxepcaZ27FE+Hub1WTUuiRpigAs3y9M5x7abjJDbarp8604dBGNIe3Cp/5BRwAw==} engines: {node: '>=18'} dependencies: '@ampproject/remapping': 2.2.1 @@ -4419,13 +4456,15 @@ packages: dev: false optional: true - /tar-fs@3.0.4: - resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} requiresBuild: true dependencies: - mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.1.3 + bare-path: 2.1.0 dev: false optional: true @@ -4448,7 +4487,7 @@ packages: dependencies: b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.15.7 + streamx: 2.15.8 dev: false optional: true @@ -4694,8 +4733,8 @@ packages: vfile-message: 4.0.2 dev: false - /vite@5.1.0(sass@1.70.0): - resolution: {integrity: sha512-STmSFzhY4ljuhz14bg9LkMTk3d98IO6DIArnTY6MeBwiD1Za2StcQtz7fzOUnRCqrHSD5+OS2reg4HOz1eoLnw==} + /vite@5.1.1(sass@1.70.0): + resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4724,13 +4763,13 @@ packages: dependencies: esbuild: 0.19.12 postcss: 8.4.35 - rollup: 4.9.6 + rollup: 4.10.0 sass: 1.70.0 optionalDependencies: fsevents: 2.3.3 dev: false - /vitefu@0.2.5(vite@5.1.0): + /vitefu@0.2.5(vite@5.1.1): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -4738,7 +4777,7 @@ packages: vite: optional: true dependencies: - vite: 5.1.0(sass@1.70.0) + vite: 5.1.1(sass@1.70.0) dev: false /web-namespaces@2.0.1: @@ -4853,3 +4892,9 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false + + file:../../Desktop/treesitter: + resolution: {directory: ../../Desktop/treesitter, type: directory} + name: treesitter + engines: {node: '>= 10'} + dev: true diff --git a/src/content/posts/css.mdx b/src/content/posts/css.mdx index 3d7212c..2ee7872 100644 --- a/src/content/posts/css.mdx +++ b/src/content/posts/css.mdx @@ -83,7 +83,7 @@ One of the things which have helped me improve the state of my CSS stylesheets i If we tried to rewrite the previous example into BEM, we could theoretically rewrite it as such: -```scss +```scss .blog-post { ... &--centered { @@ -105,7 +105,7 @@ BEM could devolve into writing separate "blocks" for each HTML element. We could One problem that I have personally encountered with BEM is not being able to figure out how to approach the fact that a single "block" can have multiple variants. For instance, we could have three cards, each containing slightly different content: -```html +```html