diff --git a/astro.config.mjs b/astro.config.mjs index ca93f91..8e96e04 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -25,8 +25,8 @@ export default defineConfig({ }), sitemap(), partytown(), - vue(), react(), + vue(), ], markdown: { remarkPlugins: [ diff --git a/package.json b/package.json index ca9aa34..2d3ebd2 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,16 @@ "dependencies": { "@astrojs/partytown": "^2.0.3", "@astrojs/prefetch": "^0.4.1", + "@astrojs/react": "^3.0.9", "@astrojs/rss": "4.0.1", "@astrojs/vercel": "^6.1.1", "@astrojs/vue": "^4.0.6", - "@astrojs/react": "^3.0.9", "@builder.io/qwik": "^1.3.1", "@fullcalendar/core": "6.1.10", "@fullcalendar/daygrid": "6.1.10", "@fullcalendar/interaction": "6.1.10", "@fullcalendar/vue3": "^6.1.10", + "@giscus/vue": "^2.4.0", "@qwikdev/astro": "^0.3.4", "@vercel/analytics": "1.1.1", "@vitejs/plugin-legacy": "5.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e112ae..d9268b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ dependencies: '@fullcalendar/vue3': specifier: ^6.1.10 version: 6.1.10(@fullcalendar/core@6.1.10)(vue@3.4.3) + '@giscus/vue': + specifier: ^2.4.0 + version: 2.4.0(vue@3.4.3) '@qwikdev/astro': specifier: ^0.3.4 version: 0.3.4(@builder.io/qwik@1.3.1)(typescript@5.3.3)(vite@5.0.10) @@ -2113,6 +2116,15 @@ packages: vue: 3.4.3(typescript@5.3.3) dev: false + /@giscus/vue@2.4.0(vue@3.4.3): + resolution: {integrity: sha512-QOxKHgsMT91myyQagP2v20YYAei1ByZuc3qcaYxbHx4AwOeyVrybDIuRFwG9YDv6OraC86jYnU4Ixd37ddC/0A==} + peerDependencies: + vue: '>=3.2.0' + dependencies: + giscus: 1.4.0 + vue: 3.4.3(typescript@5.3.3) + dev: false + /@img/sharp-darwin-arm64@0.33.1: resolution: {integrity: sha512-esr2BZ1x0bo+wl7Gx2hjssYhjrhUsD88VQulI0FrG8/otRQUOxLWHMBd1Y1qo2Gfg2KUvXNpT0ASnV9BzJCexw==} engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} @@ -2324,6 +2336,16 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@lit-labs/ssr-dom-shim@1.1.2: + resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} + dev: false + + /@lit/reactive-element@2.0.2: + resolution: {integrity: sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.2 + dev: false + /@mapbox/node-pre-gyp@1.0.11: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true @@ -2598,6 +2620,10 @@ packages: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} dev: false + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: false + /@types/ungap__structured-clone@0.3.1: resolution: {integrity: sha512-7QlsekF3QYmE+RbRRRq9lfgQLugDdDXTR8E/njp+x9DpRp+n5UsyDLLVne1d3f1h2S7f38x4xEJfHA5NtfiO7Q==} dev: false @@ -3944,6 +3970,12 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + /giscus@1.4.0: + resolution: {integrity: sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==} + dependencies: + lit: 3.1.0 + dev: false + /github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -4475,6 +4507,28 @@ packages: wrap-ansi: 9.0.0 dev: true + /lit-element@4.0.2: + resolution: {integrity: sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit/reactive-element': 2.0.2 + lit-html: 3.1.0 + dev: false + + /lit-html@3.1.0: + resolution: {integrity: sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: false + + /lit@3.1.0: + resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} + dependencies: + '@lit/reactive-element': 2.0.2 + lit-element: 4.0.2 + lit-html: 3.1.0 + dev: false + /load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} diff --git a/src/components/PostDetails.astro b/src/components/PostDetails.astro index dde7b0c..d9166b3 100644 --- a/src/components/PostDetails.astro +++ b/src/components/PostDetails.astro @@ -5,6 +5,7 @@ import Tag from "@components/Tag.astro"; import Datetime from "@components/Datetime.vue"; import type { CollectionEntry } from "astro:content"; import ReadingTime from "./ReadingTime.vue"; +import Giscus from "@giscus/vue"; export interface Props { post: CollectionEntry<"blog"> & { readingTime: number }; @@ -39,7 +40,7 @@ const ogUrl = new URL(ogImage ? ogImage : `${title}.png`, Astro.url.origin).href - + loading="lazy" + />