feat: add giscus

This commit is contained in:
KazooTTT
2024-10-11 20:07:15 +08:00
parent d2f4fa5fec
commit 4fdafbe98a
11 changed files with 586 additions and 58 deletions

View File

@ -11,18 +11,14 @@ import icon from 'astro-icon'
import vercel from '@astrojs/vercel/serverless'
import react from '@astrojs/react';
// https://astro.build/config
export default defineConfig({
site: 'https://example.me',
integrations: [
expressiveCode(expressiveCodeOptions),
tailwind({
integrations: [expressiveCode(expressiveCodeOptions), tailwind({
applyBaseStyles: false
}),
sitemap(),
mdx(),
icon()
],
}), sitemap(), mdx(), icon(), react()],
markdown: {
remarkPlugins: [remarkUnwrapImages, remarkReadingTime],
rehypePlugins: [

View File

@ -3,7 +3,7 @@
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro check --watch & astro dev --port 2555",
"dev": "astro check --watch & astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
@ -13,10 +13,14 @@
"dependencies": {
"@astrojs/check": "^0.5.6",
"@astrojs/mdx": "^2.1.1",
"@astrojs/react": "^3.6.2",
"@astrojs/rss": "^4.0.5",
"@astrojs/sitemap": "^3.1.1",
"@astrojs/tailwind": "^5.1.0",
"@astrojs/vercel": "^7.3.6",
"@giscus/react": "^3.0.0",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"@vercel/analytics": "^1.2.2",
"astro": "^4.4.15",
"astro-expressive-code": "^0.33.5",
@ -24,6 +28,8 @@
"clsx": "^2.1.0",
"gray-matter": "^4.0.3",
"mdast-util-to-string": "^4.0.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"reading-time": "^1.5.0",
"rehype-external-links": "^3.0.0",
"remark-unwrap-images": "^4.0.0",

467
pnpm-lock.yaml generated
View File

@ -14,6 +14,9 @@ importers:
'@astrojs/mdx':
specifier: ^2.1.1
version: 2.1.1(astro@4.4.15(typescript@5.4.2))
'@astrojs/react':
specifier: ^3.6.2
version: 3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.1.5)
'@astrojs/rss':
specifier: ^4.0.5
version: 4.0.5
@ -25,10 +28,19 @@ importers:
version: 5.1.0(astro@4.4.15(typescript@5.4.2))(tailwindcss@3.4.1)
'@astrojs/vercel':
specifier: ^7.3.6
version: 7.3.6(astro@4.4.15(typescript@5.4.2))
version: 7.3.6(astro@4.4.15(typescript@5.4.2))(react@18.3.1)
'@giscus/react':
specifier: ^3.0.0
version: 3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/react':
specifier: ^18.3.11
version: 18.3.11
'@types/react-dom':
specifier: ^18.3.0
version: 18.3.0
'@vercel/analytics':
specifier: ^1.2.2
version: 1.2.2
version: 1.2.2(react@18.3.1)
astro:
specifier: ^4.4.15
version: 4.4.15(typescript@5.4.2)
@ -47,6 +59,12 @@ importers:
mdast-util-to-string:
specifier: ^4.0.0
version: 4.0.0
react:
specifier: ^18.3.1
version: 18.3.1
react-dom:
specifier: ^18.3.1
version: 18.3.1(react@18.3.1)
reading-time:
specifier: ^1.5.0
version: 1.5.0
@ -163,6 +181,15 @@ packages:
resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==}
engines: {node: '>=18.14.1'}
'@astrojs/react@3.6.2':
resolution: {integrity: sha512-fK29lYI7zK/KG4ZBy956x4dmauZcZ18osFkuyGa8r3gmmCQa2NZ9XNu9WaVYEUm0j89f4Gii4tbxLoyM8nk2MA==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0}
peerDependencies:
'@types/react': ^17.0.50 || ^18.0.21
'@types/react-dom': ^17.0.17 || ^18.0.6
react: ^17.0.2 || ^18.0.0 || ^19.0.0-beta
react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0-beta
'@astrojs/rss@4.0.5':
resolution: {integrity: sha512-IyJVL6z09AQtxbgLaAwebT3T5YKe4oTHDesqydJv1KLHw+zEzzMCFuuNsEyxjiqu7df9+DDCpDXLj/WRiEUXvw==}
@ -188,18 +215,34 @@ packages:
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
'@babel/code-frame@7.25.7':
resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
engines: {node: '>=6.9.0'}
'@babel/compat-data@7.23.5':
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
'@babel/compat-data@7.25.8':
resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==}
engines: {node: '>=6.9.0'}
'@babel/core@7.24.0':
resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==}
engines: {node: '>=6.9.0'}
'@babel/core@7.25.8':
resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.23.6':
resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.25.7':
resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.22.5':
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
@ -208,6 +251,10 @@ packages:
resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-compilation-targets@7.25.7':
resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==}
engines: {node: '>=6.9.0'}
'@babel/helper-environment-visitor@7.22.20':
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
engines: {node: '>=6.9.0'}
@ -224,20 +271,38 @@ packages:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.25.7':
resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-transforms@7.23.3':
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
'@babel/helper-module-transforms@7.25.7':
resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
'@babel/helper-plugin-utils@7.24.0':
resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
engines: {node: '>=6.9.0'}
'@babel/helper-plugin-utils@7.25.7':
resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==}
engines: {node: '>=6.9.0'}
'@babel/helper-simple-access@7.22.5':
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
'@babel/helper-simple-access@7.25.7':
resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-split-export-declaration@7.22.6':
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
@ -246,33 +311,70 @@ packages:
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.25.7':
resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.22.20':
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.7':
resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.23.5':
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.25.7':
resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==}
engines: {node: '>=6.9.0'}
'@babel/helpers@7.24.0':
resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==}
engines: {node: '>=6.9.0'}
'@babel/helpers@7.25.7':
resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==}
engines: {node: '>=6.9.0'}
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
'@babel/highlight@7.25.7':
resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==}
engines: {node: '>=6.9.0'}
'@babel/parser@7.24.0':
resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/parser@7.25.8':
resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/plugin-syntax-jsx@7.23.3':
resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/plugin-transform-react-jsx-self@7.25.7':
resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/plugin-transform-react-jsx-source@7.25.7':
resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/plugin-transform-react-jsx@7.23.4':
resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==}
engines: {node: '>=6.9.0'}
@ -287,14 +389,26 @@ packages:
resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==}
engines: {node: '>=6.9.0'}
'@babel/template@7.25.7':
resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==}
engines: {node: '>=6.9.0'}
'@babel/traverse@7.24.0':
resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==}
engines: {node: '>=6.9.0'}
'@babel/traverse@7.25.7':
resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==}
engines: {node: '>=6.9.0'}
'@babel/types@7.24.0':
resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==}
engines: {node: '>=6.9.0'}
'@babel/types@7.25.8':
resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==}
engines: {node: '>=6.9.0'}
'@ctrl/tinycolor@3.6.1':
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
engines: {node: '>=10'}
@ -479,6 +593,12 @@ packages:
'@expressive-code/plugin-text-markers@0.33.5':
resolution: {integrity: sha512-JxSHL1MGrJAPNaUMjFXex3K+9NJDbfew9H6PmX8LQ+fm9VNQdtBYTAz/x7nqOk7bkTrtAZK5RfDqUfb8U5M+2A==}
'@giscus/react@3.0.0':
resolution: {integrity: sha512-hgCjLpg3Wgh8VbTF5p8ZLcIHI74wvDk1VIFv12+eKhenNVUDjgwNg2B1aq/3puyHOad47u/ZSyqiMtohjy/OOA==}
peerDependencies:
react: ^16 || ^17 || ^18
react-dom: ^16 || ^17 || ^18
'@humanwhocodes/config-array@0.11.14':
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
@ -646,6 +766,12 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
'@lit-labs/ssr-dom-shim@1.2.1':
resolution: {integrity: sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==}
'@lit/reactive-element@2.0.4':
resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==}
'@mapbox/node-pre-gyp@1.0.11':
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true
@ -818,12 +944,24 @@ packages:
'@types/parse5@6.0.3':
resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==}
'@types/prop-types@15.7.13':
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
'@types/react@18.3.11':
resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==}
'@types/sax@1.2.7':
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
'@types/tar@6.1.11':
resolution: {integrity: sha512-ThA1WD8aDdVU4VLuyq5NEqriwXErF5gEIJeyT6gHBWU7JtSmW2a5qjNv3/vR82O20mW+1vhmeZJfBQPT3HCugg==}
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
'@types/unist@2.0.10':
resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==}
@ -895,6 +1033,12 @@ packages:
engines: {node: '>=16'}
hasBin: true
'@vitejs/plugin-react@4.3.2':
resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0
'@volar/kit@2.0.4':
resolution: {integrity: sha512-USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==}
peerDependencies:
@ -1147,6 +1291,11 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
browserslist@4.24.0:
resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
@ -1175,6 +1324,9 @@ packages:
caniuse-lite@1.0.30001596:
resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==}
caniuse-lite@1.0.30001668:
resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@ -1330,6 +1482,9 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@ -1426,6 +1581,9 @@ packages:
electron-to-chromium@1.4.699:
resolution: {integrity: sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==}
electron-to-chromium@1.5.36:
resolution: {integrity: sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==}
emmet@2.4.6:
resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==}
@ -1484,6 +1642,10 @@ packages:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
@ -1733,6 +1895,9 @@ packages:
resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
engines: {node: '>= 0.4'}
giscus@1.5.0:
resolution: {integrity: sha512-t3LL0qbSO3JXq3uyQeKpF5CegstGfKX/0gI6eDe1cmnI7D56R7j52yLdzw4pdKrg3VnufwCgCM3FDz7G1Qr6lg==}
github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
@ -2136,6 +2301,11 @@ packages:
engines: {node: '>=4'}
hasBin: true
jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
hasBin: true
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@ -2200,6 +2370,15 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
lit-element@4.1.1:
resolution: {integrity: sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew==}
lit-html@3.2.1:
resolution: {integrity: sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA==}
lit@3.2.1:
resolution: {integrity: sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w==}
load-yaml-file@0.2.0:
resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
engines: {node: '>=6'}
@ -2236,6 +2415,10 @@ packages:
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
lru-cache@10.2.0:
resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
engines: {node: 14 || >=16.14}
@ -2542,6 +2725,9 @@ packages:
node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
nopt@5.0.0:
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
engines: {node: '>=6'}
@ -2715,6 +2901,9 @@ packages:
picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
picocolors@1.1.0:
resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
@ -2894,6 +3083,19 @@ packages:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
react-dom@18.3.1:
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
react: ^18.3.1
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@ -3030,6 +3232,9 @@ packages:
sax@1.3.0:
resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
section-matter@1.0.0:
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
engines: {node: '>=4'}
@ -3359,6 +3564,9 @@ packages:
ufo@1.5.3:
resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
ultrahtml@1.5.3:
resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==}
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
@ -3419,6 +3627,12 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
update-browserslist-db@1.1.1:
resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@ -3771,6 +3985,18 @@ snapshots:
dependencies:
prismjs: 1.29.0
'@astrojs/react@3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.1.5)':
dependencies:
'@types/react': 18.3.11
'@types/react-dom': 18.3.0
'@vitejs/plugin-react': 4.3.2(vite@5.1.5)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
ultrahtml: 1.5.3
transitivePeerDependencies:
- supports-color
- vite
'@astrojs/rss@4.0.5':
dependencies:
fast-xml-parser: 4.3.5
@ -3803,10 +4029,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@astrojs/vercel@7.3.6(astro@4.4.15(typescript@5.4.2))':
'@astrojs/vercel@7.3.6(astro@4.4.15(typescript@5.4.2))(react@18.3.1)':
dependencies:
'@astrojs/internal-helpers': 0.3.0
'@vercel/analytics': 1.2.2
'@vercel/analytics': 1.2.2(react@18.3.1)
'@vercel/nft': 0.26.4
astro: 4.4.15(typescript@5.4.2)
esbuild: 0.19.12
@ -3824,8 +4050,15 @@ snapshots:
'@babel/highlight': 7.23.4
chalk: 2.4.2
'@babel/code-frame@7.25.7':
dependencies:
'@babel/highlight': 7.25.7
picocolors: 1.0.0
'@babel/compat-data@7.23.5': {}
'@babel/compat-data@7.25.8': {}
'@babel/core@7.24.0':
dependencies:
'@ampproject/remapping': 2.3.0
@ -3846,6 +4079,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@babel/core@7.25.8':
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.25.7
'@babel/generator': 7.25.7
'@babel/helper-compilation-targets': 7.25.7
'@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8)
'@babel/helpers': 7.25.7
'@babel/parser': 7.25.8
'@babel/template': 7.25.7
'@babel/traverse': 7.25.7
'@babel/types': 7.25.8
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
'@babel/generator@7.23.6':
dependencies:
'@babel/types': 7.24.0
@ -3853,6 +4106,13 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
'@babel/generator@7.25.7':
dependencies:
'@babel/types': 7.25.8
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.0.2
'@babel/helper-annotate-as-pure@7.22.5':
dependencies:
'@babel/types': 7.24.0
@ -3865,6 +4125,14 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
'@babel/helper-compilation-targets@7.25.7':
dependencies:
'@babel/compat-data': 7.25.8
'@babel/helper-validator-option': 7.25.7
browserslist: 4.24.0
lru-cache: 5.1.1
semver: 6.3.1
'@babel/helper-environment-visitor@7.22.20': {}
'@babel/helper-function-name@7.23.0':
@ -3880,6 +4148,13 @@ snapshots:
dependencies:
'@babel/types': 7.24.0
'@babel/helper-module-imports@7.25.7':
dependencies:
'@babel/traverse': 7.25.7
'@babel/types': 7.25.8
transitivePeerDependencies:
- supports-color
'@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)':
dependencies:
'@babel/core': 7.24.0
@ -3889,22 +4164,47 @@ snapshots:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
'@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)':
dependencies:
'@babel/core': 7.25.8
'@babel/helper-module-imports': 7.25.7
'@babel/helper-simple-access': 7.25.7
'@babel/helper-validator-identifier': 7.25.7
'@babel/traverse': 7.25.7
transitivePeerDependencies:
- supports-color
'@babel/helper-plugin-utils@7.24.0': {}
'@babel/helper-plugin-utils@7.25.7': {}
'@babel/helper-simple-access@7.22.5':
dependencies:
'@babel/types': 7.24.0
'@babel/helper-simple-access@7.25.7':
dependencies:
'@babel/traverse': 7.25.7
'@babel/types': 7.25.8
transitivePeerDependencies:
- supports-color
'@babel/helper-split-export-declaration@7.22.6':
dependencies:
'@babel/types': 7.24.0
'@babel/helper-string-parser@7.23.4': {}
'@babel/helper-string-parser@7.25.7': {}
'@babel/helper-validator-identifier@7.22.20': {}
'@babel/helper-validator-identifier@7.25.7': {}
'@babel/helper-validator-option@7.23.5': {}
'@babel/helper-validator-option@7.25.7': {}
'@babel/helpers@7.24.0':
dependencies:
'@babel/template': 7.24.0
@ -3913,21 +4213,47 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@babel/helpers@7.25.7':
dependencies:
'@babel/template': 7.25.7
'@babel/types': 7.25.8
'@babel/highlight@7.23.4':
dependencies:
'@babel/helper-validator-identifier': 7.22.20
chalk: 2.4.2
js-tokens: 4.0.0
'@babel/highlight@7.25.7':
dependencies:
'@babel/helper-validator-identifier': 7.25.7
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.0.0
'@babel/parser@7.24.0':
dependencies:
'@babel/types': 7.24.0
'@babel/parser@7.25.8':
dependencies:
'@babel/types': 7.25.8
'@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)':
dependencies:
'@babel/core': 7.24.0
'@babel/helper-plugin-utils': 7.24.0
'@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.8)':
dependencies:
'@babel/core': 7.25.8
'@babel/helper-plugin-utils': 7.25.7
'@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.8)':
dependencies:
'@babel/core': 7.25.8
'@babel/helper-plugin-utils': 7.25.7
'@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0)':
dependencies:
'@babel/core': 7.24.0
@ -3947,6 +4273,12 @@ snapshots:
'@babel/parser': 7.24.0
'@babel/types': 7.24.0
'@babel/template@7.25.7':
dependencies:
'@babel/code-frame': 7.25.7
'@babel/parser': 7.25.8
'@babel/types': 7.25.8
'@babel/traverse@7.24.0':
dependencies:
'@babel/code-frame': 7.23.5
@ -3962,12 +4294,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@babel/traverse@7.25.7':
dependencies:
'@babel/code-frame': 7.25.7
'@babel/generator': 7.25.7
'@babel/parser': 7.25.8
'@babel/template': 7.25.7
'@babel/types': 7.25.8
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
'@babel/types@7.24.0':
dependencies:
'@babel/helper-string-parser': 7.23.4
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
'@babel/types@7.25.8':
dependencies:
'@babel/helper-string-parser': 7.25.7
'@babel/helper-validator-identifier': 7.25.7
to-fast-properties: 2.0.0
'@ctrl/tinycolor@3.6.1': {}
'@emmetio/abbreviation@2.3.3':
@ -4101,6 +4451,12 @@ snapshots:
hastscript: 7.2.0
unist-util-visit-parents: 5.1.3
'@giscus/react@3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
giscus: 1.5.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@humanwhocodes/config-array@0.11.14':
dependencies:
'@humanwhocodes/object-schema': 2.0.2
@ -4243,6 +4599,12 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@lit-labs/ssr-dom-shim@1.2.1': {}
'@lit/reactive-element@2.0.4':
dependencies:
'@lit-labs/ssr-dom-shim': 1.2.1
'@mapbox/node-pre-gyp@1.0.11':
dependencies:
detect-libc: 2.0.2
@ -4428,6 +4790,17 @@ snapshots:
'@types/parse5@6.0.3': {}
'@types/prop-types@15.7.13': {}
'@types/react-dom@18.3.0':
dependencies:
'@types/react': 18.3.11
'@types/react@18.3.11':
dependencies:
'@types/prop-types': 15.7.13
csstype: 3.1.3
'@types/sax@1.2.7':
dependencies:
'@types/node': 17.0.45
@ -4437,6 +4810,8 @@ snapshots:
'@types/node': 17.0.45
minipass: 4.2.8
'@types/trusted-types@2.0.7': {}
'@types/unist@2.0.10': {}
'@types/unist@3.0.2': {}
@ -4500,9 +4875,11 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vercel/analytics@1.2.2':
'@vercel/analytics@1.2.2(react@18.3.1)':
dependencies:
server-only: 0.0.1
optionalDependencies:
react: 18.3.1
'@vercel/nft@0.26.4':
dependencies:
@ -4522,6 +4899,17 @@ snapshots:
- encoding
- supports-color
'@vitejs/plugin-react@4.3.2(vite@5.1.5)':
dependencies:
'@babel/core': 7.25.8
'@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.8)
'@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.8)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 5.1.5
transitivePeerDependencies:
- supports-color
'@volar/kit@2.0.4(typescript@5.4.2)':
dependencies:
'@volar/language-service': 2.0.4
@ -4921,6 +5309,13 @@ snapshots:
node-releases: 2.0.14
update-browserslist-db: 1.0.13(browserslist@4.23.0)
browserslist@4.24.0:
dependencies:
caniuse-lite: 1.0.30001668
electron-to-chromium: 1.5.36
node-releases: 2.0.18
update-browserslist-db: 1.1.1(browserslist@4.24.0)
buffer-crc32@0.2.13: {}
buffer@5.7.1:
@ -4950,6 +5345,8 @@ snapshots:
caniuse-lite@1.0.30001596: {}
caniuse-lite@1.0.30001668: {}
ccount@2.0.1: {}
chalk@2.4.2:
@ -5103,6 +5500,8 @@ snapshots:
dependencies:
css-tree: 2.2.1
csstype@3.1.3: {}
damerau-levenshtein@1.0.8: {}
debug@4.3.4:
@ -5189,6 +5588,8 @@ snapshots:
electron-to-chromium@1.4.699: {}
electron-to-chromium@1.5.36: {}
emmet@2.4.6:
dependencies:
'@emmetio/abbreviation': 2.3.3
@ -5320,6 +5721,8 @@ snapshots:
escalade@3.1.2: {}
escalade@3.2.0: {}
escape-string-regexp@1.0.5: {}
escape-string-regexp@4.0.0: {}
@ -5654,6 +6057,10 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.2.4
giscus@1.5.0:
dependencies:
lit: 3.2.1
github-from-package@0.0.0:
optional: true
@ -6154,6 +6561,8 @@ snapshots:
jsesc@2.5.2: {}
jsesc@3.0.2: {}
json-buffer@3.0.1: {}
json-schema-traverse@0.4.1: {}
@ -6202,6 +6611,22 @@ snapshots:
lines-and-columns@1.2.4: {}
lit-element@4.1.1:
dependencies:
'@lit-labs/ssr-dom-shim': 1.2.1
'@lit/reactive-element': 2.0.4
lit-html: 3.2.1
lit-html@3.2.1:
dependencies:
'@types/trusted-types': 2.0.7
lit@3.2.1:
dependencies:
'@lit/reactive-element': 2.0.4
lit-element: 4.1.1
lit-html: 3.2.1
load-yaml-file@0.2.0:
dependencies:
graceful-fs: 4.2.11
@ -6237,6 +6662,10 @@ snapshots:
longest-streak@3.1.0: {}
loose-envify@1.4.0:
dependencies:
js-tokens: 4.0.0
lru-cache@10.2.0: {}
lru-cache@5.1.1:
@ -6800,6 +7229,8 @@ snapshots:
node-releases@2.0.14: {}
node-releases@2.0.18: {}
nopt@5.0.0:
dependencies:
abbrev: 1.1.1
@ -6987,6 +7418,8 @@ snapshots:
picocolors@1.0.0: {}
picocolors@1.1.0: {}
picomatch@2.3.1: {}
pify@2.3.0: {}
@ -7121,6 +7554,18 @@ snapshots:
strip-json-comments: 2.0.1
optional: true
react-dom@18.3.1(react@18.3.1):
dependencies:
loose-envify: 1.4.0
react: 18.3.1
scheduler: 0.23.2
react-refresh@0.14.2: {}
react@18.3.1:
dependencies:
loose-envify: 1.4.0
read-cache@1.0.0:
dependencies:
pify: 2.3.0
@ -7347,6 +7792,10 @@ snapshots:
sax@1.3.0: {}
scheduler@0.23.2:
dependencies:
loose-envify: 1.4.0
section-matter@1.0.0:
dependencies:
extend-shallow: 2.0.1
@ -7772,6 +8221,8 @@ snapshots:
ufo@1.5.3: {}
ultrahtml@1.5.3: {}
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.7
@ -7871,6 +8322,12 @@ snapshots:
escalade: 3.1.2
picocolors: 1.0.0
update-browserslist-db@1.1.1(browserslist@4.24.0):
dependencies:
browserslist: 4.24.0
escalade: 3.2.0
picocolors: 1.1.0
uri-js@4.4.1:
dependencies:
punycode: 2.3.1

View File

@ -0,0 +1,36 @@
import React from 'react'
import Giscus from '@giscus/react'
const id = 'inject-comments'
const GiscusComment = () => {
const [mounted, setMounted] = React.useState(false)
React.useEffect(() => {
setMounted(true)
}, [])
return (
<div id={id} className='w-full'>
{mounted ? (
<Giscus
id={id}
repo='KazooTTT/kazoottt-blog'
repoId='R_kgDOMa4jRQ'
category='Announcements'
categoryId='DIC_kwDOMa4jRc4CjRFe'
mapping='pathname'
strict='0'
reactionsEnabled='1'
emitMetadata='0'
inputPosition='bottom'
theme='preferred_color_scheme'
lang='zh-CN'
loading='lazy'
/>
) : null}
</div>
)
}
export default GiscusComment

View File

@ -7,7 +7,9 @@
class='relative mx-auto flex w-full items-center justify-between sm:flex sm:items-center'
aria-label='global'
>
<a class='flex-none text-xl font-semibold' href='/' aria-label='Brand'>KazooTTT</a>
<a class='hidden flex-none text-xl font-semibold sm:block' href='/' aria-label='Brand'>
KazooTTT
</a>
<div class='flex flex-row items-center justify-center gap-x-5 sm:gap-x-7'>
<a

View File

@ -9,6 +9,7 @@ import Pagination from '@/components/Paginator.astro'
import PostPreview from '@/components/blog/PostPreview.astro'
import PageLayout from '@/layouts/BaseLayout.astro'
import { getAllPosts, getUniqueCategories, getUniqueTags, sortMDByDate } from '@/utils'
import GiscusComment from '@/components/GiscusComment'
export const getStaticPaths = (async ({ paginate }) => {
const allPosts = await getAllPosts()
@ -166,4 +167,5 @@ const paginationProps = {
)
}
</div>
<GiscusComment client:only='react' />
</PageLayout>

View File

@ -5,6 +5,7 @@ import type { GetStaticPaths, InferGetStaticPropsType } from 'astro'
import PostLayout from '@/layouts/BlogPost.astro'
import { getAllPosts } from '@/utils'
import GiscusComment from '@/components/GiscusComment'
export const getStaticPaths = (async () => {
const blogEntries = await getAllPosts()
@ -22,4 +23,5 @@ const { Content } = await entry.render()
<PostLayout post={entry}>
<Content />
<GiscusComment client:only='react' />
</PostLayout>

View File

@ -12,6 +12,7 @@ import kazootttAvatar from '../assets/kazoottt-avatar.jpeg'
import { getAllPosts, sortMDByDate } from '@/utils'
import { Icon } from 'astro-icon/components'
import GiscusComment from '@/components/GiscusComment'
const frontend = ['react(熟悉)', 'vue2(了解)', 'next.js', 'tailwindcss']
const backend = ['nodejs(熟悉)', 'python(了解)', 'elysiajs', 'nextjs', 'cloudflare d1', 'prisma']
@ -130,4 +131,5 @@ const allPostsByDate = sortMDByDate(allPosts).slice(0, MAX_POSTS)
</div>
</Section>
</div>
<GiscusComment client:only='react' />
</PageLayout>

View File

@ -2,6 +2,7 @@
import PageLayout from '@/layouts/BaseLayout.astro'
import ToolSection from '@/components/ToolSection.astro'
import Button from '@/components/Button.astro'
import GiscusComment from '@/components/GiscusComment'
const DESIGN = [
{
@ -112,4 +113,5 @@ const Divices = [
<ToolSection title='Devices' tools={Divices} />
</div>
</div>
<GiscusComment client:only='react' />
</PageLayout>

View File

@ -15,7 +15,7 @@
--secondary: 240 4.8% 95.9%;
--secondary-foreground: 240 5.9% 10%;
--muted: 240 4.8% 95.9%;
--muted-foreground: 240 3.8% 46.1%;
--muted-foreground: 240 3.8% 20%;
--accent: 240 4.8% 95.9%;
--accent-foreground: 240 5.9% 10%;
--destructive: 0 72.22% 50.59%;

View File

@ -4,15 +4,38 @@
"strictNullChecks": true,
"allowJs": true,
"baseUrl": ".",
"lib": ["es2022", "dom", "dom.iterable"],
"lib": [
"es2022",
"dom",
"dom.iterable"
],
"paths": {
"@/assets/*": ["src/assets/*"],
"@/components/*": ["src/components/*"],
"@/layouts/*": ["src/layouts/*"],
"@/utils": ["src/utils/index.ts"],
"@/types": ["src/types.ts"],
"@/site-config": ["src/site.config.ts"]
}
"@/assets/*": [
"src/assets/*"
],
"@/components/*": [
"src/components/*"
],
"@/layouts/*": [
"src/layouts/*"
],
"@/utils": [
"src/utils/index.ts"
],
"@/types": [
"src/types.ts"
],
"@/site-config": [
"src/site.config.ts"
]
},
"exclude": ["node_modules", "**/node_modules/*", ".vscode", "dist"]
"jsx": "react-jsx",
"jsxImportSource": "react"
},
"exclude": [
"node_modules",
"**/node_modules/*",
".vscode",
"dist"
]
}