diff --git a/README.md b/README.md index 9e6b504d..6c903756 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,8 @@ - ## 📌 Table Of Contents - 1. [Demo](#-Demo) 2. [CMS](#-Tina-CMS) 3. [Features](#-Features) @@ -31,7 +29,6 @@ 12. [CLI](#-Commands) 13. [Contributors](#-Contributors) - ## 💻 Demo Check out the [Demo](https://blog-template-gray.vercel.app/), hosted on Vercel @@ -39,30 +36,24 @@ Check out the [Demo](https://blog-template-gray.vercel.app/), hosted on Vercel https://github.com/danielcgilibert/blog-template/assets/44746462/56b8399e-cc5b-45a8-b9d2-d69833ecadb1 - ## 🦙 Tina CMS - - By default, this template comes pre-configured with Tina CMS. Now you can create your posts directly from the CMS without the need to do it manually. If you decide to use Tina, it's not necessary to add any properties to the Markdown files, Tina does it automatically. - Example: https://github.com/danielcgilibert/blog-template/assets/44746462/51ae324c-d383-40be-9b16-db159d1af15d - - The documentation for Tina CMS can be found [here](https://tina.io/docs/) > Tina is completely optional, and you can remove it, and it will still function in the same way. - ## 💪 Features: +

openblog Lighthouse Score @@ -88,7 +79,7 @@ The documentation for Tina CMS can be found [here](https://tina.io/docs/) - ✅ Copy code block - ✅ CMS in the repository (Tina CMS) - ✅ Pagination - +- ✅ ViewTransition (new) ## 🛣️ Roadmap @@ -98,7 +89,6 @@ The documentation for Tina CMS can be found [here](https://tina.io/docs/) - ❌ More sharing options - ❌ Internationalization (i18n) - ## ⚙️ Stack - [**ASTRO** + **Typescript**](https://astro.build/) - Astro is the all-in-one web framework designed for speed. @@ -135,7 +125,6 @@ pnpm install pnpm dev ``` - ## 📐 Configure - Edit the configuration file **src/data/site.config.ts** for the basic blog metadata. diff --git a/package.json b/package.json index 6c937abc..00f632ae 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ }, "dependencies": { "@astrojs/rss": "3.0.0", - "astro": "3.2.3" + "astro": "3.5.3" }, "devDependencies": { "tinacms": "^1.5.21", @@ -46,7 +46,7 @@ "@tailwindcss/typography": "0.5.10", "@typescript-eslint/parser": "^6.7.4", "clsx": "2.0.0", - "eslint": "^8.51.0", + "eslint": "^8.53.0", "eslint-plugin-astro": "^0.29.1", "eslint-plugin-jsx-a11y": "^6.7.1", "husky": "^8.0.3", @@ -59,8 +59,8 @@ "prettier-plugin-astro": "^0.12.0", "reading-time": "^1.5.0", "slugify": "^1.6.6", - "tailwind-merge": "1.14.0", - "tailwindcss": "3.3.3", + "tailwind-merge": "2.0.0", + "tailwindcss": "3.3.5", "typescript": "^5.2.2" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b73fe66..499ae1e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,43 +9,43 @@ dependencies: specifier: 3.0.0 version: 3.0.0 astro: - specifier: 3.2.3 - version: 3.2.3 + specifier: 3.5.3 + version: 3.5.3(typescript@5.2.2) devDependencies: '@astrojs/mdx': specifier: 1.1.1 - version: 1.1.1(astro@3.2.3) + version: 1.1.1(astro@3.5.3) '@astrojs/sitemap': specifier: 3.0.1 version: 3.0.1 '@astrojs/tailwind': specifier: 5.0.1 - version: 5.0.1(astro@3.2.3)(tailwindcss@3.3.3) + version: 5.0.1(astro@3.5.3)(tailwindcss@3.3.5) '@pagefind/default-ui': specifier: ^1.0.3 version: 1.0.3 '@tailwindcss/typography': specifier: 0.5.10 - version: 0.5.10(tailwindcss@3.3.3) + version: 0.5.10(tailwindcss@3.3.5) '@tinacms/cli': specifier: ^1.5.30 version: 1.5.31(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0) '@typescript-eslint/parser': specifier: ^6.7.4 - version: 6.9.0(eslint@8.52.0)(typescript@5.2.2) + version: 6.9.0(eslint@8.53.0)(typescript@5.2.2) clsx: specifier: 2.0.0 version: 2.0.0 eslint: - specifier: ^8.51.0 - version: 8.52.0 + specifier: ^8.53.0 + version: 8.53.0 eslint-plugin-astro: specifier: ^0.29.1 - version: 0.29.1(eslint@8.52.0) + version: 0.29.1(eslint@8.53.0) eslint-plugin-jsx-a11y: specifier: ^6.7.1 - version: 6.7.1(eslint@8.52.0) + version: 6.7.1(eslint@8.53.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -77,11 +77,11 @@ devDependencies: specifier: ^1.6.6 version: 1.6.6 tailwind-merge: - specifier: 1.14.0 - version: 1.14.0 + specifier: 2.0.0 + version: 2.0.0 tailwindcss: - specifier: 3.3.3 - version: 3.3.3 + specifier: 3.3.5 + version: 3.3.5 tinacms: specifier: ^1.5.21 version: 1.5.22(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0) @@ -143,17 +143,21 @@ packages: /@astrojs/compiler@2.2.1: resolution: {integrity: sha512-NJ1lWKzMkyEjE3W5NpPNAVot4/PLF5om/P6ekxNu3iLS05CaYFTcp7WpYMjdCC252b7wkNVAs45FNkVQ+RHW/g==} + dev: true + + /@astrojs/compiler@2.3.0: + resolution: {integrity: sha512-pxYRAaRdMS6XUll8lbFM+Lr0DI1HKIDT+VpiC+S+9di5H/nmm3znZOgdMlLiMxADot+56eps+M1BvtKfQremXA==} /@astrojs/internal-helpers@0.2.1: resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} - /@astrojs/markdown-remark@3.2.1(astro@3.2.3): + /@astrojs/markdown-remark@3.2.1(astro@3.5.3): resolution: {integrity: sha512-Z4YNMRtgFZeHhB29uCZl0B9MbMZddW9ZKCNucapoysbvygbDFF1gGtqpVnf+Lyv3rUBHwM/J5qWB2MSZuTuz1g==} peerDependencies: astro: ^3.2.3 dependencies: '@astrojs/prism': 3.0.0 - astro: 3.2.3 + astro: 3.5.3(typescript@5.2.2) github-slugger: 2.0.0 import-meta-resolve: 3.0.0 mdast-util-definitions: 6.0.0 @@ -169,17 +173,41 @@ packages: vfile: 5.3.7 transitivePeerDependencies: - supports-color + dev: true - /@astrojs/mdx@1.1.1(astro@3.2.3): + /@astrojs/markdown-remark@3.4.0(astro@3.5.3): + resolution: {integrity: sha512-uzLSKBQ4e70aH8gEbBHZ2pnv/KOJKB3WrXFBOF0U5Uwjcr2LNWeIBLjPRQjA4tbtteELh84YPBHny21mhvBGVA==} + peerDependencies: + astro: ^3.0.0 + dependencies: + '@astrojs/prism': 3.0.0 + astro: 3.5.3(typescript@5.2.2) + github-slugger: 2.0.0 + import-meta-resolve: 3.0.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 6.1.1 + rehype-stringify: 9.0.4 + remark-gfm: 3.0.1 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + remark-smartypants: 2.0.0 + shikiji: 0.6.12 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + + /@astrojs/mdx@1.1.1(astro@3.5.3): resolution: {integrity: sha512-3dfL12ZqI6NCjx0iVOYVSyljlVgsxds5mOhe78xoCVjyqSpZZsxzz4Dt5WfGxDon2nc2bD6XGiZ2PIy8fmX6NQ==} engines: {node: '>=18.14.1'} peerDependencies: astro: ^3.2.3 dependencies: - '@astrojs/markdown-remark': 3.2.1(astro@3.2.3) + '@astrojs/markdown-remark': 3.2.1(astro@3.5.3) '@mdx-js/mdx': 2.3.0 acorn: 8.10.0 - astro: 3.2.3 + astro: 3.5.3(typescript@5.2.2) es-module-lexer: 1.3.1 estree-util-visit: 1.2.1 github-slugger: 2.0.0 @@ -216,23 +244,23 @@ packages: zod: 3.21.1 dev: true - /@astrojs/tailwind@5.0.1(astro@3.2.3)(tailwindcss@3.3.3): + /@astrojs/tailwind@5.0.1(astro@3.5.3)(tailwindcss@3.3.5): resolution: {integrity: sha512-HzguDH+q1v8NhZIu245UtXfz5tuy4IAd/TND92z5vyftYtGdjDLdBeHhMH4Wd91/0sIPPNRz9NUfToprI636YQ==} peerDependencies: astro: ^3.2.3 tailwindcss: ^3.0.24 dependencies: - astro: 3.2.3 + astro: 3.5.3(typescript@5.2.2) autoprefixer: 10.4.16(postcss@8.4.31) postcss: 8.4.31 postcss-load-config: 4.0.1(postcss@8.4.31) - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 transitivePeerDependencies: - ts-node dev: true - /@astrojs/telemetry@3.0.3: - resolution: {integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==} + /@astrojs/telemetry@3.0.4: + resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} engines: {node: '>=18.14.1'} dependencies: ci-info: 3.9.0 @@ -1179,13 +1207,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.52.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1194,8 +1222,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1211,8 +1239,8 @@ packages: - supports-color dev: true - /@eslint/js@8.52.0: - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -3439,23 +3467,23 @@ packages: tslib: 2.6.2 dev: true - /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.3.3): + /@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.3.5): resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 dev: true - /@tailwindcss/line-clamp@0.3.1(tailwindcss@3.3.3): + /@tailwindcss/line-clamp@0.3.1(tailwindcss@3.3.5): resolution: {integrity: sha512-pNr0T8LAc3TUx/gxCfQZRe9NB2dPEo/cedPHzUGIPxqDMhgjwNm6jYxww4W5l0zAsAddxr+XfZcqttGiFDgrGg==} peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 dev: true - /@tailwindcss/typography@0.5.10(tailwindcss@3.3.3): + /@tailwindcss/typography@0.5.10(tailwindcss@3.3.5): resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' @@ -3464,7 +3492,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 dev: true /@tinacms/app@1.2.29(@babel/core@7.23.2)(yup@0.32.11): @@ -3485,7 +3513,7 @@ packages: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) react-router-dom: 6.3.0(react-dom@17.0.2)(react@17.0.2) - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 tinacms: 1.5.22(@babel/core@7.23.2)(react-dom@17.0.2)(react@17.0.2) typescript: 4.9.5 zod: 3.22.4 @@ -3528,9 +3556,9 @@ packages: '@graphql-tools/load': 7.8.14(graphql@15.8.0) '@rollup/pluginutils': 5.0.5 '@svgr/core': 6.3.1 - '@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.3.3) - '@tailwindcss/line-clamp': 0.3.1(tailwindcss@3.3.3) - '@tailwindcss/typography': 0.5.10(tailwindcss@3.3.3) + '@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.3.5) + '@tailwindcss/line-clamp': 0.3.1(tailwindcss@3.3.5) + '@tailwindcss/typography': 0.5.10(tailwindcss@3.3.5) '@tinacms/app': 1.2.29(@babel/core@7.23.2)(yup@0.32.11) '@tinacms/datalayer': 1.2.27(react@18.2.0) '@tinacms/graphql': 1.4.27(react@18.2.0) @@ -3574,7 +3602,7 @@ packages: prompts: 2.4.2 readable-stream: 4.4.2 rollup-plugin-visualizer: 5.9.2 - tailwindcss: 3.3.3 + tailwindcss: 3.3.5 tinacms: 1.5.22(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0) typanion: 3.13.0 url-pattern: 1.0.3 @@ -3945,6 +3973,11 @@ packages: dependencies: '@types/unist': 2.0.9 + /@types/hast@3.0.3: + resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} + dependencies: + '@types/unist': 3.0.1 + /@types/hoist-non-react-statics@3.3.4: resolution: {integrity: sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ==} dependencies: @@ -3956,9 +3989,6 @@ packages: resolution: {integrity: sha512-4zW6OgrfVWR14IqHt32L5zpsE5IJgAu9uimQmAOFPdKPdv+M5RgXeoB2UCJZSKvVNGzUdLgbKdtCSZ66N2HdTA==} dev: true - /@types/json5@0.0.30: - resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} - /@types/lodash@4.14.200: resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==} dev: true @@ -4021,9 +4051,6 @@ packages: csstype: 3.1.2 dev: true - /@types/resolve@1.20.4: - resolution: {integrity: sha512-BKGK0T1VgB1zD+PwQR4RRf0ais3NyvH1qjLUrHI5SEiccYaJrhLstLuoXFWJ+2Op9whGizSPUMGPJY/Qtb/A2w==} - /@types/sax@1.2.6: resolution: {integrity: sha512-A1mpYCYu1aHFayy8XKN57ebXeAbh9oQIZ1wXcno6b1ESUAfMBDMx7mf/QGlYwcMRaFryh9YBuH03i/3FlPGDkQ==} dependencies: @@ -4046,7 +4073,7 @@ packages: /@types/unist@3.0.1: resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} - /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2): + /@typescript-eslint/parser@6.9.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4061,7 +4088,7 @@ packages: '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.9.0 debug: 4.3.4 - eslint: 8.52.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -7206,7 +7233,6 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true /@vitejs/plugin-react@3.1.0(vite@4.5.0): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} @@ -7365,6 +7391,7 @@ packages: /ansi-sequence-parser@1.1.1: resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -7515,15 +7542,15 @@ packages: - supports-color dev: true - /astro@3.2.3: - resolution: {integrity: sha512-1epnxQhTbfzgdmLP1yu51E8zjIOKYxZyA8hMTD4S2E+F5gMp/D81H4hekPbbq89GDxNJiHDRNZDHtS5vrU5E5w==} + /astro@3.5.3(typescript@5.2.2): + resolution: {integrity: sha512-08ya96yvQLdZjwYYpylzDTUGcyuA+Kw9zIT2RHfL7VzXtLTL1ZxhQjSo6CiTBH8Tcrdam88Fez+Q1awwKKajGw==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: - '@astrojs/compiler': 2.2.1 + '@astrojs/compiler': 2.3.0 '@astrojs/internal-helpers': 0.2.1 - '@astrojs/markdown-remark': 3.2.1(astro@3.2.3) - '@astrojs/telemetry': 3.0.3 + '@astrojs/markdown-remark': 3.4.0(astro@3.5.3) + '@astrojs/telemetry': 3.0.4 '@babel/core': 7.23.2 '@babel/generator': 7.23.0 '@babel/parser': 7.23.0 @@ -7539,6 +7566,7 @@ packages: common-ancestor-path: 1.0.1 cookie: 0.5.0 debug: 4.3.4 + deterministic-object-hash: 1.3.1 devalue: 4.3.2 diff: 5.1.0 es-module-lexer: 1.3.1 @@ -7553,9 +7581,11 @@ packages: js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.5 + mdast-util-to-hast: 12.3.0 mime: 3.0.0 ora: 7.0.1 p-limit: 4.0.0 + p-queue: 7.4.1 path-to-regexp: 6.2.1 preferred-pm: 3.1.2 probe-image-size: 7.2.3 @@ -7564,17 +7594,17 @@ packages: resolve: 1.22.8 semver: 7.5.4 server-destroy: 1.0.1 - shiki: 0.14.5 + shikiji: 0.6.12 string-width: 6.1.0 strip-ansi: 7.1.0 - tsconfig-resolver: 3.0.1 + tsconfck: 3.0.0(typescript@5.2.2) unist-util-visit: 4.1.2 vfile: 5.3.7 vite: 4.5.0 vitefu: 0.2.5(vite@4.5.0) which-pm: 2.1.1 yargs-parser: 21.1.1 - zod: 3.21.1 + zod: 3.22.4 optionalDependencies: sharp: 0.32.6 transitivePeerDependencies: @@ -7586,6 +7616,7 @@ packages: - sugarss - supports-color - terser + - typescript /astrojs-compiler-sync@0.3.3(@astrojs/compiler@2.2.1): resolution: {integrity: sha512-LbhchWgsvjvRBb5n5ez8/Q/f9ZKViuox27VxMDOdTUm8MRv9U7phzOiLue5KluqTmC0z1LId4gY2SekvoDrkuw==} @@ -8499,9 +8530,17 @@ packages: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: true + /deterministic-object-hash@1.3.1: + resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} + /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true @@ -8631,7 +8670,6 @@ packages: /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -8790,24 +8828,24 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-plugin-astro@0.29.1(eslint@8.52.0): + /eslint-plugin-astro@0.29.1(eslint@8.53.0): resolution: {integrity: sha512-ffuUc7zFz8HavaAVaS5iRUzWqBf3/YbrFWUhx0GxXW3gVtnbri5UyvkN8EMOkZWkNXG1zqD2y9dlEsAezhbC0w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@jridgewell/sourcemap-codec': 1.4.15 '@typescript-eslint/types': 5.62.0 astro-eslint-parser: 0.16.0 - eslint: 8.52.0 + eslint: 8.53.0 postcss: 8.4.31 postcss-selector-parser: 6.0.13 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.53.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -8822,7 +8860,7 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.52.0 + eslint: 8.53.0 has: 1.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 @@ -8845,15 +8883,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.52.0: - resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@eslint-community/regexpp': 4.9.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.52.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -8988,7 +9026,6 @@ packages: /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} @@ -9624,11 +9661,28 @@ packages: vfile-location: 4.1.0 web-namespaces: 2.0.1 + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.1 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.3.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + /hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} dependencies: '@types/hast': 2.3.7 + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + dependencies: + '@types/hast': 3.0.3 + /hast-util-raw@7.2.3: resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} dependencies: @@ -9644,6 +9698,23 @@ packages: web-namespaces: 2.0.1 zwitch: 2.0.4 + /hast-util-raw@9.0.1: + resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.1 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + /hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: @@ -9681,6 +9752,22 @@ packages: stringify-entities: 4.0.3 zwitch: 2.0.4 + /hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.1 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.1 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.0.2 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + /hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} dependencies: @@ -9691,9 +9778,25 @@ packages: web-namespaces: 2.0.1 zwitch: 2.0.4 + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + dependencies: + '@types/hast': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.3 + /hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} dependencies: @@ -9703,6 +9806,15 @@ packages: property-information: 6.3.0 space-separated-tokens: 2.0.2 + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + dependencies: + '@types/hast': 3.0.3 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + /header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: @@ -9736,6 +9848,9 @@ packages: /html-void-elements@2.0.1: resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} @@ -10367,6 +10482,7 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -10929,6 +11045,18 @@ packages: unist-util-position: 4.0.4 unist-util-visit: 4.1.2 + /mdast-util-to-hast@13.0.2: + resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + dependencies: + '@types/hast': 3.0.3 + '@types/mdast': 4.0.2 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: @@ -11218,6 +11346,12 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + /micromark-util-chunked@1.1.0: resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} dependencies: @@ -11252,6 +11386,9 @@ packages: /micromark-util-encode@1.1.0: resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + /micromark-util-events-to-acorn@1.2.3: resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} dependencies: @@ -11285,6 +11422,13 @@ packages: micromark-util-encode: 1.1.0 micromark-util-symbol: 1.0.1 + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + /micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} dependencies: @@ -11299,12 +11443,18 @@ packages: /micromark-util-symbol@1.1.0: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + /micromark-util-types@1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} /micromark-util-types@1.1.0: resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + /micromark@2.11.4: resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} dependencies: @@ -11770,10 +11920,16 @@ packages: p-timeout: 5.1.0 dev: true + /p-queue@7.4.1: + resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} + engines: {node: '>=12'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 5.1.0 + /p-timeout@5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} - dev: true /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} @@ -11865,6 +12021,11 @@ packages: /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -13359,6 +13520,12 @@ packages: jsonc-parser: 3.2.0 vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 + dev: true + + /shikiji@0.6.12: + resolution: {integrity: sha512-sm7Wg8P4w6T3quDAZQxvk0P02o2hheIFEdbaEuGOhGnqLDjVsP28GDUVPdgbacOIc1auapNVNCVEykhPploLyg==} + dependencies: + hast-util-to-html: 9.0.0 /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -13678,10 +13845,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -13781,12 +13944,14 @@ packages: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: true - /tailwind-merge@1.14.0: - resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} + /tailwind-merge@2.0.0: + resolution: {integrity: sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==} + dependencies: + '@babel/runtime': 7.23.2 dev: true - /tailwindcss@3.3.3: - resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + /tailwindcss@3.3.5: + resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -14115,15 +14280,17 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tsconfig-resolver@3.0.1: - resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} + /tsconfck@3.0.0(typescript@5.2.2): + resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@types/json5': 0.0.30 - '@types/resolve': 1.20.4 - json5: 2.2.3 - resolve: 1.22.8 - strip-bom: 4.0.0 - type-fest: 0.13.1 + typescript: 5.2.2 /tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} @@ -14158,10 +14325,6 @@ packages: prelude-ls: 1.2.1 dev: true - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -14236,7 +14399,6 @@ packages: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true - dev: true /ua-parser-js@1.0.36: resolution: {integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==} @@ -14316,6 +14478,11 @@ packages: dependencies: '@types/unist': 2.0.9 + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: @@ -14342,6 +14509,11 @@ packages: dependencies: '@types/unist': 2.0.9 + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.1 + /unist-util-visit-children@2.0.2: resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: @@ -14682,6 +14854,12 @@ packages: '@types/unist': 2.0.9 vfile: 5.3.7 + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + dependencies: + '@types/unist': 3.0.1 + vfile: 6.0.1 + /vfile-message@2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} dependencies: @@ -14695,6 +14873,12 @@ packages: '@types/unist': 2.0.9 unist-util-stringify-position: 3.0.3 + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + /vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} dependencies: @@ -14712,6 +14896,13 @@ packages: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + /vite@4.5.0: resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -14762,9 +14953,11 @@ packages: /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true /vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -14984,10 +15177,10 @@ packages: /zod@3.21.1: resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} + dev: true /zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: true /zustand@3.7.2(react@17.0.2): resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index acb67eb3..603dc228 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -1,6 +1,7 @@ --- import { siteConfig } from '@/site-config' import '../styles/global.css' +import { ViewTransitions } from 'astro:transitions' export interface Props { title: string @@ -18,6 +19,9 @@ const titleSeparator = '•' const siteTitle = `${title} ${titleSeparator} ${siteConfig.title}` --- + + + @@ -29,6 +33,8 @@ const siteTitle = `${title} ${titleSeparator} ${siteConfig.title}` {siteTitle} + + diff --git a/src/components/Header.astro b/src/components/Header.astro index f5122c10..044b5f21 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -53,7 +53,7 @@ const SOCIALNETWORKS = [ -

+
diff --git a/src/components/ListPosts.astro b/src/components/ListPosts.astro index 07043d9a..9878fa60 100644 --- a/src/components/ListPosts.astro +++ b/src/components/ListPosts.astro @@ -23,6 +23,7 @@ const { posts, FirstBig = false } = Astro.props return ( -
+ setTheme(getTheme())) document.addEventListener('theme-change', (e) => { setTheme(e.detail.theme) diff --git a/src/components/Search.astro b/src/components/Search.astro index 846f9b16..8f672cdf 100644 --- a/src/components/Search.astro +++ b/src/components/Search.astro @@ -86,6 +86,7 @@ import SearchIcon from '@/components/icons/SearchIcon' openBtn.addEventListener('click', openModal) openBtn.disabled = false closeBtn.addEventListener('click', closeModal) + document.addEventListener('astro:after-swap', closeModal) // Listen for `/` keyboard shortcut window.addEventListener('keydown', (e) => { diff --git a/src/components/ToggleTheme.astro b/src/components/ToggleTheme.astro index 18c67097..8274bece 100644 --- a/src/components/ToggleTheme.astro +++ b/src/components/ToggleTheme.astro @@ -34,15 +34,11 @@ import MoonIcon from '@/components/icons/MoonIcon' diff --git a/src/components/mdx/Code.astro b/src/components/mdx/Code.astro index 60efa07d..9d31c8eb 100644 --- a/src/components/mdx/Code.astro +++ b/src/components/mdx/Code.astro @@ -7,20 +7,24 @@ import CheckIcon from '../icons/CheckIcon.astro' class='relative shadow-2xl bg-black code'> diff --git a/src/content/blog/astro copy 2.mdx b/src/content/blog/astro copy 2.mdx index 2d7a287d..4fe7f755 100644 --- a/src/content/blog/astro copy 2.mdx +++ b/src/content/blog/astro copy 2.mdx @@ -1,5 +1,5 @@ --- -title: MacBook Pro 2022 +title: 'MacBook Pro 2022' description: >- The new MacBook Pro 2022 is here. With the Apple M2 chip, a new design, and more, the new MacBook Pro is the best laptop Apple has ever made. diff --git a/src/content/blog/macbook.mdx b/src/content/blog/macbook.mdx index 35d09d22..b8116566 100644 --- a/src/content/blog/macbook.mdx +++ b/src/content/blog/macbook.mdx @@ -1,5 +1,5 @@ --- -title: 'MacBook Pro 2022' +title: 'MacBook' description: 'The new MacBook Pro 2022 is here. With the Apple M2 chip, a new design, and more, the new MacBook Pro is the best laptop Apple has ever made.' pubDate: 'Jul 02 2022' heroImage: '../../assets/images/book.jpg' diff --git a/src/layouts/BlogPost.astro b/src/layouts/BlogPost.astro index bf29567c..139f2174 100644 --- a/src/layouts/BlogPost.astro +++ b/src/layouts/BlogPost.astro @@ -7,12 +7,13 @@ import type { MarkdownHeading } from 'astro' import { Image } from 'astro:assets' type Props = { + id: CollectionEntry<'blog'>['id'] data: CollectionEntry<'blog'>['data'] headings: MarkdownHeading[] readTime: string } -const { data, readTime, headings } = Astro.props +const { data, readTime, headings, id } = Astro.props const { title, description, pubDate, heroImage, tags } = data const articleDate = pubDate.toISOString() @@ -35,7 +36,7 @@ const articleDate = pubDate.toISOString() - {readTime}

-

+

{title}

@@ -45,7 +46,7 @@ const articleDate = pubDate.toISOString() -
+ <> { heroImage && ( {`img ) } -
-
-
+
@@ -75,74 +71,55 @@ const articleDate = pubDate.toISOString() - - - - diff --git a/src/pages/post/[...slug].astro b/src/pages/post/[...slug].astro index 3f8c69b6..b05de8a9 100644 --- a/src/pages/post/[...slug].astro +++ b/src/pages/post/[...slug].astro @@ -33,7 +33,12 @@ const relatedPosts = getRelatedPosts(post) const { Content, headings, remarkPluginFrontmatter } = await post.render() --- - +