From 407cdf90992182df78f5e02393853e9dd8d06114 Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 12 Jun 2023 15:47:35 +0200 Subject: [PATCH] reworked HP + new snippet --- .astro/types.d.ts | 276 +----------------- package.json | 6 +- pnpm-lock.yaml | 337 +++++++++++----------- public/assets/images/home/offre-1.3.svg | 24 ++ src/components/TOC.astro | 43 +-- src/content/articles/en/2023.md | 2 +- src/content/articles/fr/2023.md | 2 +- src/content/fragments/fr/visited-links.md | 83 ++++++ src/data/HP/en/01-offre.md | 6 +- src/data/HP/en/02-methodo.md | 6 +- src/data/HP/en/03-about.md | 8 +- src/data/HP/fr/01.1-offre.md | 4 +- src/data/HP/fr/01.2-offre.md | 4 +- src/data/HP/fr/01.3-offre.md | 9 + src/data/HP/fr/02-methodo.md | 6 +- src/data/HP/fr/03-about.md | 8 +- src/styles/global/global-styles.css | 4 +- 17 files changed, 334 insertions(+), 494 deletions(-) create mode 100644 public/assets/images/home/offre-1.3.svg create mode 100644 src/content/fragments/fr/visited-links.md create mode 100644 src/data/HP/fr/01.3-offre.md diff --git a/.astro/types.d.ts b/.astro/types.d.ts index 66c4e2e..8c9af37 100644 --- a/.astro/types.d.ts +++ b/.astro/types.d.ts @@ -198,279 +198,7 @@ declare module 'astro:content' { >; type ContentEntryMap = { - "articles": { -"en/2022.md": { - id: "en/2022.md"; - slug: "2022"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"en/2023.md": { - id: "en/2023.md"; - slug: "2023"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"en/after-effects-expressions.mdx": { - id: "en/after-effects-expressions.mdx"; - slug: "after-effects-expressions"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"en/faq.md": { - id: "en/faq.md"; - slug: "faq"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"en/gratuiste.md": { - id: "en/gratuiste.md"; - slug: "gratuiste"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"en/sci-hub-blocage.mdx": { - id: "en/sci-hub-blocage.mdx"; - slug: "sci-hub-unblock"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"en/the-day-I-jamd.mdx": { - id: "en/the-day-I-jamd.mdx"; - slug: "the-day-I-jamd"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"en/video-compression.mdx": { - id: "en/video-compression.mdx"; - slug: "video-compression"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"fr/2022.md": { - id: "fr/2022.md"; - slug: "2022"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"fr/2023.md": { - id: "fr/2023.md"; - slug: "2023"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"fr/after-effects-expressions.md": { - id: "fr/after-effects-expressions.md"; - slug: "after-effects-expressions"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"fr/faq.md": { - id: "fr/faq.md"; - slug: "faq"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"fr/gratuiste.md": { - id: "fr/gratuiste.md"; - slug: "gratuiste"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -"fr/sci-hub-blocage.mdx": { - id: "fr/sci-hub-blocage.mdx"; - slug: "sci-hub-blocage"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"fr/the-day-I-jamd.mdx": { - id: "fr/the-day-I-jamd.mdx"; - slug: "the-day-I-jamd"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".mdx"] }; -"fr/video-compression.md": { - id: "fr/video-compression.md"; - slug: "video-compression"; - body: string; - collection: "articles"; - data: InferEntrySchema<"articles"> -} & { render(): Render[".md"] }; -}; -"fragments": { -"en/acme-sh-tls-cert.md": { - id: "en/acme-sh-tls-cert.md"; - slug: "acme-sh-tls-cert"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"en/array-vs-array.md": { - id: "en/array-vs-array.md"; - slug: "array-vs-array"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"en/buttons.md": { - id: "en/buttons.md"; - slug: "buttons"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"en/image-full.mdx": { - id: "en/image-full.mdx"; - slug: "image-full"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".mdx"] }; -"en/nuxt-graphql-static.md": { - id: "en/nuxt-graphql-static.md"; - slug: "nuxt-graphql-static"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"en/super-cookies.md": { - id: "en/super-cookies.md"; - slug: "super-cookies"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"en/toulouse-fun.md": { - id: "en/toulouse-fun.md"; - slug: "toulouse-fun"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"fr/acme-sh-tls-cert.md": { - id: "fr/acme-sh-tls-cert.md"; - slug: "acme-sh-tls-cert"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"fr/array-vs-array.md": { - id: "fr/array-vs-array.md"; - slug: "array-vs-array"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"fr/buttons.mdx": { - id: "fr/buttons.mdx"; - slug: "buttons"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".mdx"] }; -"fr/image-full.mdx": { - id: "fr/image-full.mdx"; - slug: "image-full"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".mdx"] }; -"fr/nuxt-graphql-static.md": { - id: "fr/nuxt-graphql-static.md"; - slug: "nuxt-graphql-static"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -"fr/super-cookies.mdx": { - id: "fr/super-cookies.mdx"; - slug: "super-cookies"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".mdx"] }; -"fr/toulouse-fun.md": { - id: "fr/toulouse-fun.md"; - slug: "toulouse-fun"; - body: string; - collection: "fragments"; - data: InferEntrySchema<"fragments"> -} & { render(): Render[".md"] }; -}; -"references": { -"en/3w.md": { - id: "en/3w.md"; - slug: "3w"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"en/natureo.md": { - id: "en/natureo.md"; - slug: "natureo"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"en/parole-expression.md": { - id: "en/parole-expression.md"; - slug: "parole-expression"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"en/rose-primaire.md": { - id: "en/rose-primaire.md"; - slug: "rose-primaire"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"fr/3w.md": { - id: "fr/3w.md"; - slug: "3w"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"fr/natureo.md": { - id: "fr/natureo.md"; - slug: "natureo"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"fr/parole-expression.md": { - id: "fr/parole-expression.md"; - slug: "parole-expression"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -"fr/rose-primaire.md": { - id: "fr/rose-primaire.md"; - slug: "rose-primaire"; - body: string; - collection: "references"; - data: InferEntrySchema<"references"> -} & { render(): Render[".md"] }; -}; - + }; type DataEntryMap = { @@ -479,5 +207,5 @@ declare module 'astro:content' { type AnyEntryMap = ContentEntryMap & DataEntryMap; - type ContentConfig = typeof import("../src/content/config"); + type ContentConfig = never; } diff --git a/package.json b/package.json index a726060..de1aa36 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "i18n:sync": "astro-i18n sync" }, "dependencies": { - "@astrojs/image": "0.16.7", - "@astrojs/mdx": "^0.19.6", + "@astrojs/image": "0.17.0", + "@astrojs/mdx": "^0.19.7", "@astrojs/rss": "^2.4.3", "@astrojs/sitemap": "^1.3.3", - "astro": "2.5.7", + "astro": "2.6.3", "astro-i18n": "1.8.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08e2956..e3b3695 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,11 +2,11 @@ lockfileVersion: '6.0' dependencies: '@astrojs/image': - specifier: 0.16.7 - version: 0.16.7(astro@2.5.7) + specifier: 0.17.0 + version: 0.17.0(astro@2.6.3) '@astrojs/mdx': - specifier: ^0.19.6 - version: 0.19.6(astro@2.5.7) + specifier: ^0.19.7 + version: 0.19.7(astro@2.6.3) '@astrojs/rss': specifier: ^2.4.3 version: 2.4.3 @@ -14,8 +14,8 @@ dependencies: specifier: ^1.3.3 version: 1.3.3 astro: - specifier: 2.5.7 - version: 2.5.7 + specifier: 2.6.3 + version: 2.6.3 astro-i18n: specifier: 1.8.1 version: 1.8.1 @@ -42,21 +42,21 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: false - /@astrojs/compiler@1.5.0: - resolution: {integrity: sha512-k04X/7nlMklU0HQUScxbCTf5n8/Vr+0U0bawb9QWulWxd6qJf3FmBrNATgTYiltjB4pc5HBqmmttAfFi7m4lLg==} + /@astrojs/compiler@1.5.1: + resolution: {integrity: sha512-iIGKu/uzB8sJ5VveQf0eHrVPPFEcrvSlp4qShYMOuY2aMmK2RVXQlX9dUjtmBQ+NAokfIOb7fwCutvH+p13l+g==} dev: false - /@astrojs/image@0.16.7(astro@2.5.7): - resolution: {integrity: sha512-8X1DnMh3lUTA7BNt7dF0rfWTXNwvLoPWWXtLi+TdO3CW1SvdY9LJRuCEWwHfnKzcQ0EC2TfLwjukpbtJuCRxjw==} + /@astrojs/image@0.17.0(astro@2.6.3): + resolution: {integrity: sha512-YSolAMFtABhmgLH5BCeGX5e7QKApgSI1XcxO+HLqHFayQKVQ9r6fwslodTjzQkqxgcWEcQKF4nFR4Sq3hAq6YQ==} peerDependencies: - astro: ^2.3.4 + astro: ^2.6.0 sharp: '>=0.31.0' peerDependenciesMeta: sharp: optional: true dependencies: '@altano/tiny-async-pool': 1.0.2 - astro: 2.5.7 + astro: 2.6.3 http-cache-semantics: 4.1.1 image-size: 1.0.2 kleur: 4.1.5 @@ -64,13 +64,17 @@ packages: mime: 3.0.0 dev: false + /@astrojs/internal-helpers@0.1.0: + resolution: {integrity: sha512-OSwvoFkTqVowiyP+codQeQZWoq/HOwY32x17NxDglWoCx2sdyXzplDZoVV4/3odmSEY6/A+48WMl5qkjmP1CXw==} + dev: false + /@astrojs/language-server@1.0.8: resolution: {integrity: sha512-gssRxLGb8XnvKpqSzrDW5jdzdFnXD7eBXVkPCkkt2hv7Qzb+SAzv6hVgMok3jDCxpR1aeB+XNd9Qszj2h29iog==} hasBin: true dependencies: - '@astrojs/compiler': 1.5.0 + '@astrojs/compiler': 1.5.1 '@jridgewell/trace-mapping': 0.3.18 - '@vscode/emmet-helper': 2.8.8 + '@vscode/emmet-helper': 2.8.9 events: 3.3.0 prettier: 2.8.8 prettier-plugin-astro: 0.9.1 @@ -83,13 +87,13 @@ packages: vscode-uri: 3.0.7 dev: false - /@astrojs/markdown-remark@2.2.1(astro@2.5.7): + /@astrojs/markdown-remark@2.2.1(astro@2.6.3): resolution: {integrity: sha512-VF0HRv4GpC1XEMLnsKf6jth7JSmlt9qpqP0josQgA2eSpCIAC/Et+y94mgdBIZVBYH/yFnMoIxgKVe93xfO2GA==} peerDependencies: astro: ^2.5.0 dependencies: '@astrojs/prism': 2.1.2 - astro: 2.5.7 + astro: 2.6.3 github-slugger: 1.5.0 import-meta-resolve: 2.2.2 rehype-raw: 6.1.1 @@ -106,15 +110,15 @@ packages: - supports-color dev: false - /@astrojs/mdx@0.19.6(astro@2.5.7): - resolution: {integrity: sha512-P9CU+l/GveJPG3OOOdlZtIK5NWcJuEnXPtxwfjJUaoIPHDByp6okT/yN/WwLAA4TfnluFnULNG4bDsEnwcpYvw==} + /@astrojs/mdx@0.19.7(astro@2.6.3): + resolution: {integrity: sha512-mfEbBD7oi8yBHhcJucEjnrquREkJ3os+jioURP8BR2B8tOV2rV2j8trvmLUgfS+P/+HevGObxCTjcRYxn6T7eg==} engines: {node: '>=16.12.0'} dependencies: - '@astrojs/markdown-remark': 2.2.1(astro@2.5.7) + '@astrojs/markdown-remark': 2.2.1(astro@2.6.3) '@astrojs/prism': 2.1.2 '@mdx-js/mdx': 2.3.0 acorn: 8.8.2 - es-module-lexer: 1.2.1 + es-module-lexer: 1.3.0 estree-util-visit: 1.2.1 github-slugger: 1.5.0 gray-matter: 4.0.3 @@ -176,32 +180,32 @@ packages: undici: 5.22.1 dev: false - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + /@babel/code-frame@7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.5 dev: false - /@babel/compat-data@7.22.3: - resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} + /@babel/compat-data@7.22.5: + resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==} engines: {node: '>=6.9.0'} dev: false - /@babel/core@7.22.1: - resolution: {integrity: sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==} + /@babel/core@7.22.5: + resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.22.3 - '@babel/helper-compilation-targets': 7.22.1(@babel/core@7.22.1) - '@babel/helper-module-transforms': 7.22.1 - '@babel/helpers': 7.22.3 - '@babel/parser': 7.22.4 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -211,199 +215,199 @@ packages: - supports-color dev: false - /@babel/generator@7.22.3: - resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} + /@babel/generator@7.22.5: + resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 dev: false - /@babel/helper-annotate-as-pure@7.18.6: - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/helper-compilation-targets@7.22.1(@babel/core@7.22.1): - resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} + /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.22.3 - '@babel/core': 7.22.1 - '@babel/helper-validator-option': 7.21.0 + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-validator-option': 7.22.5 browserslist: 4.21.7 lru-cache: 5.1.1 semver: 6.3.0 dev: false - /@babel/helper-environment-visitor@7.22.1: - resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} dev: false - /@babel/helper-function-name@7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.21.9 - '@babel/types': 7.22.4 + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 dev: false - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/helper-module-imports@7.21.4: - resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} + /@babel/helper-module-imports@7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/helper-module-transforms@7.22.1: - resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} + /@babel/helper-module-transforms@7.22.5: + resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-simple-access': 7.21.5 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-plugin-utils@7.21.5: - resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: false - /@babel/helper-simple-access@7.21.5: - resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/helper-split-export-declaration@7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + /@babel/helper-split-export-declaration@7.22.5: + resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/helper-string-parser@7.21.5: - resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: false - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} dev: false - /@babel/helper-validator-option@7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + /@babel/helper-validator-option@7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} dev: false - /@babel/helpers@7.22.3: - resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} + /@babel/helpers@7.22.5: + resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.21.9 - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 transitivePeerDependencies: - supports-color dev: false - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 dev: false - /@babel/parser@7.22.4: - resolution: {integrity: sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==} + /@babel/parser@7.22.5: + resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false - /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.22.1): - resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-plugin-utils': 7.21.5 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-transform-react-jsx@7.22.3(@babel/core@7.22.1): - resolution: {integrity: sha512-JEulRWG2f04a7L8VWaOngWiK6p+JOSpB+DAtwfJgOaej1qdbNxqtK7MwTBHjUA10NeFcszlFNqCdbRcirzh2uQ==} + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.1 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.21.4 - '@babel/helper-plugin-utils': 7.21.5 - '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.1) - '@babel/types': 7.22.4 + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/types': 7.22.5 dev: false - /@babel/template@7.21.9: - resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} + /@babel/template@7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/code-frame': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 dev: false - /@babel/traverse@7.22.4: - resolution: {integrity: sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==} + /@babel/traverse@7.22.5: + resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.22.3 - '@babel/helper-environment-visitor': 7.22.1 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false - /@babel/types@7.22.4: - resolution: {integrity: sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==} + /@babel/types@7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 dev: false @@ -743,8 +747,8 @@ packages: /@types/babel__core@7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.1 @@ -753,20 +757,20 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.22.4 - '@babel/types': 7.22.4 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 dev: false /@types/babel__traverse@7.20.1: resolution: {integrity: sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==} dependencies: - '@babel/types': 7.22.4 + '@babel/types': 7.22.5 dev: false /@types/debug@4.1.8: @@ -841,8 +845,8 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: false - /@vscode/emmet-helper@2.8.8: - resolution: {integrity: sha512-QuD4CmNeXSFxuP8VZwI6qL+8vmmd7JcSdwsEIdsrzb4YumWs/+4rXRX9MM+NsFfUO69g6ezngCD7XRd6jY9TQw==} + /@vscode/emmet-helper@2.8.9: + resolution: {integrity: sha512-ygpVStaePHt9aI9zk4NNJWI/NsRaeDSW1vQsZVmtpVRVCOdwYlsc3BfB/eppUu1OucT0x3OHDAzKcxnitjcSXQ==} dependencies: emmet: 2.4.4 jsonc-parser: 2.3.1 @@ -946,8 +950,8 @@ packages: get-file-exports: 1.2.1 dev: false - /astro@2.5.7: - resolution: {integrity: sha512-qYKMIN4tXAOAsm10vU4f+Q7LfC05JmEbQiJmSBqIEhp+wnQcEUFkGLrHMSsps3oBzMtjErUdDDW5tGJcn5eVlA==} + /astro@2.6.3: + resolution: {integrity: sha512-gJoBX+t11qAeYDjterGEaQZx7qqlGOigWhE0zkcEBv4zy7l4IpKx6nGGUNzD/l8x6WomZxkdZROsOsiEaWSJmQ==} engines: {node: '>=16.12.0', npm: '>=6.14.0'} hasBin: true peerDependencies: @@ -956,17 +960,18 @@ packages: sharp: optional: true dependencies: - '@astrojs/compiler': 1.5.0 + '@astrojs/compiler': 1.5.1 + '@astrojs/internal-helpers': 0.1.0 '@astrojs/language-server': 1.0.8 - '@astrojs/markdown-remark': 2.2.1(astro@2.5.7) + '@astrojs/markdown-remark': 2.2.1(astro@2.6.3) '@astrojs/telemetry': 2.1.1 '@astrojs/webapi': 2.2.0 - '@babel/core': 7.22.1 - '@babel/generator': 7.22.3 - '@babel/parser': 7.22.4 - '@babel/plugin-transform-react-jsx': 7.22.3(@babel/core@7.22.1) - '@babel/traverse': 7.22.4 - '@babel/types': 7.22.4 + '@babel/core': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 '@types/babel__core': 7.20.1 '@types/yargs-parser': 21.0.0 acorn: 8.8.2 @@ -979,7 +984,7 @@ packages: deepmerge-ts: 4.3.0 devalue: 4.3.2 diff: 5.1.0 - es-module-lexer: 1.2.1 + es-module-lexer: 1.3.0 esbuild: 0.17.19 estree-walker: 3.0.0 execa: 6.1.0 @@ -1097,9 +1102,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001488 - electron-to-chromium: 1.4.397 - node-releases: 2.0.10 + caniuse-lite: 1.0.30001441 + electron-to-chromium: 1.4.427 + node-releases: 2.0.12 update-browserslist-db: 1.0.11(browserslist@4.21.4) dev: true @@ -1108,8 +1113,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001492 - electron-to-chromium: 1.4.419 + caniuse-lite: 1.0.30001502 + electron-to-chromium: 1.4.427 node-releases: 2.0.12 update-browserslist-db: 1.0.11(browserslist@4.21.7) dev: false @@ -1144,12 +1149,8 @@ packages: resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==} dev: true - /caniuse-lite@1.0.30001488: - resolution: {integrity: sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==} - dev: true - - /caniuse-lite@1.0.30001492: - resolution: {integrity: sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==} + /caniuse-lite@1.0.30001502: + resolution: {integrity: sha512-AZ+9tFXw1sS0o0jcpJQIXvFTOB/xGiQ4OQ2t98QX3NDn2EZTSRBC801gxrsGgViuq2ak/NLkNgSNEPtCr5lfKg==} dev: false /ccount@2.0.1: @@ -1362,13 +1363,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium@1.4.397: - resolution: {integrity: sha512-jwnPxhh350Q/aMatQia31KAIQdhEsYS0fFZ0BQQlN9tfvOEwShu6ZNwI4kL/xBabjcB/nTy6lSt17kNIluJZ8Q==} - dev: true - - /electron-to-chromium@1.4.419: - resolution: {integrity: sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw==} - dev: false + /electron-to-chromium@1.4.427: + resolution: {integrity: sha512-HK3r9l+Jm8dYAm1ctXEWIC+hV60zfcjS9UA5BDlYvnI5S7PU/yytjpvSrTNrSSRRkuu3tDyZhdkwIczh+0DWaw==} /emmet@2.4.4: resolution: {integrity: sha512-v8Mwpjym55CS3EjJgiCLWUB3J2HSR93jhzXW325720u8KvYxdI2voYLstW3pHBxFz54H6jFjayR9G4LfTG0q+g==} @@ -1385,8 +1381,8 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: false - /es-module-lexer@1.2.1: - resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} + /es-module-lexer@1.3.0: + resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} dev: false /esbuild-android-64@0.15.18: @@ -2905,13 +2901,8 @@ packages: path-is-absolute: 1.0.1 dev: false - /node-releases@2.0.10: - resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} - dev: true - /node-releases@2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} - dev: false /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3133,7 +3124,7 @@ packages: resolution: {integrity: sha512-pYZXSbdq0eElvzoIMArzv1SBn1NUXzopjlcnt6Ql8VW32PjC12NovwBjXJ6rh8qQLi7vF8jNqAbraKW03UPfag==} engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} dependencies: - '@astrojs/compiler': 1.5.0 + '@astrojs/compiler': 1.5.1 prettier: 2.8.8 sass-formatter: 0.7.6 synckit: 0.8.5 @@ -3336,8 +3327,8 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: false - /rollup@3.23.0: - resolution: {integrity: sha512-h31UlwEi7FHihLe1zbk+3Q7z1k/84rb9BSwmBSr/XjOCEaBJ2YyedQDuM0t/kfOS0IxM+vk1/zI9XxYj9V+NJQ==} + /rollup@3.25.1: + resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -3834,7 +3825,7 @@ packages: dependencies: esbuild: 0.17.19 postcss: 8.4.24 - rollup: 3.23.0 + rollup: 3.25.1 optionalDependencies: fsevents: 2.3.2 dev: false diff --git a/public/assets/images/home/offre-1.3.svg b/public/assets/images/home/offre-1.3.svg new file mode 100644 index 0000000..335d90d --- /dev/null +++ b/public/assets/images/home/offre-1.3.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/TOC.astro b/src/components/TOC.astro index 15e9a19..966c146 100644 --- a/src/components/TOC.astro +++ b/src/components/TOC.astro @@ -10,24 +10,26 @@ const { toc } = Astro.props;
    { // loop over the toc - toc.map((heading) => - // if h2, set as a li - heading.depth === 2 ? ( -
  1. - - {heading.text} - -
  2. - ) : // if h3, set as inner ol > li - heading.depth === 3 ? ( -
      + toc.map( + ( + heading + // if h2, set as a li + ) => + heading.depth === 2 ? (
    1. - + {heading.text} -
    2. -
    - ) : null + // if h3, set as inner ol > li + ) : heading.depth === 3 ? ( +
      +
    1. + + {heading.text} + +
    2. +
    + ) : null ) }
@@ -68,15 +70,18 @@ const { toc } = Astro.props; } .table-of-content__list a::before { - content: "·"; + content: ""; position: absolute; - top: 0; + top: 50%; left: 0; + inline-size: 2px; + block-size: 2px; + border-radius: 4px; transform: translate(-6px, 0); - color: var(--color-grey); + background-color: var(--color-grey); } .table-of-content__list a:visited::before { - color: white; + background-color: white; } .table-of-content__list a:focus, diff --git a/src/content/articles/en/2023.md b/src/content/articles/en/2023.md index 14d1e28..23b0c00 100644 --- a/src/content/articles/en/2023.md +++ b/src/content/articles/en/2023.md @@ -22,7 +22,7 @@ I have completely redeveloped my site with PageSpeed performance score had dropped to 77/100. Thanks to Astro I'm back to a solid **95/100** without any particular optimization. +My PageSpeed performance score had dropped to 77/100. Thanks to Astro I'm back to a solid **95/100** without any particular optimization. With some small efforts, I've reached the good old 100/100. I then did a work of modernization of the codebase. Hello CSS variables and goodbye `media queries`. In no particular order, here are some of the improvements I made: diff --git a/src/content/articles/fr/2023.md b/src/content/articles/fr/2023.md index b84b5c6..c2104d0 100644 --- a/src/content/articles/fr/2023.md +++ b/src/content/articles/fr/2023.md @@ -22,7 +22,7 @@ J'ai entièrement re-développé mon site avec PageSpeed était tombé à 77/100. Grâce à Astro je retrouve un solide **95/100** sans optimisation particulière. +Mon score de performance PageSpeed était tombé à 77/100. Grâce à Astro je retrouve un solide **95/100** sans optimisation particulière. Avec quelques efforts sur le poids des ressources, je retrouve ce bon vieux 100/100. J'ai ensuite fait un travail de modernisation du code. Bonjour variables CSS et au-revoir les `media queries`. En vrac, voici certaines améliorations que j'ai mises en place : diff --git a/src/content/fragments/fr/visited-links.md b/src/content/fragments/fr/visited-links.md new file mode 100644 index 0000000..b6214d3 --- /dev/null +++ b/src/content/fragments/fr/visited-links.md @@ -0,0 +1,83 @@ +--- +title: Liens visités et indication visuelle +subtitle: Comment différencier les liens déjà cliqués +lang: fr +draft: false +slug: "visited-links" +excerpt: Petit hack CSS +tags: ["Front-end"] +type: snippets +createdAt: "2023-06-06T18:34:00.000Z" +--- + +## La théorie + +Il est possible sur le web d'appliquer un style différent aux liens déjà visités par un utilisateur. Par défaut, un lien non visité est bleu tandis qu'un lien visité est violet. + +Généralement, ces styles sont modifiés, voire supprimés dans le cas des liens visités. L'information qu'un lien a déjà été visité ne semble pas indispensable à la navigation. C'est sûrement vrai, mais personnellement, je suis assez content d'avoir un rappel des pages que j'ai déjà consultées lorsque je navigue. + +Une information uniquement communiquée par la couleur est faillible, car certaines personnes ne distinguent pas les couleurs correctement. J'ai alors cherché un moyen d'ajouter un élément graphique supplémentaire aux liens visités/non visités. La solution démontrée ici n'est certainement pas idéale, elle se rapproche plus d'une expérience, à priori inoffensive pour l'internaute. + +## La spécification + +Quand je me suis intéressé à ce qu'il était possible de faire avec les liens déjà visités, j'ai découvert qu'extrêmement peu de propriétés CSS étaient autorisées. En effet, seulement des changements de couleurs sont disponibles. Ceci est dû au fait qu'il était possible de récupérer l'historique de navigation d'un utilisateur grâce aux styles des liens visités. Le sélecteur `:visited` a donc été restreint par les navigateurs afin de lutter contre cette brèche de la vie privée. [Plus d'informations dans cet article.](https://developer.mozilla.org/fr/docs/Web/CSS/Privacy_and_the_:visited_selector) + +## La pratique + +Que faire alors, en terme de style, quand on ne peut changer que des couleurs ? + +D'après MDN, les propriétés suivantes sont modifiables : + +- `color` +- `background-color` +- `border-color` (et les propriétés détaillées associées), +- `column-rule-color` +- `outline-color` +- `text-decoration-color` +- `text-emphasis-color` +- Les composantes de couleur liées aux attributs SVG `fill` et `stroke`. + +Changer la couleur d'un lien visité ne sera pas compris par les internautes, à moins de garder une colorimétrie proche de celle par défaut (bleu et violet). + +En revanche, il est possible de " masquer " un élément en modifiant sa couleur pour qu'elle corresponde à la couleur du fond de la page ou de l'élément parent. On pourrait ainsi imaginer masquer une `border` ou un `outline`. + +J'ai personnellement choisi de faire différemment. J'ai décidé d'utiliser un pseudo-élément `::before` sur l'état non visité du lien puis de le masquer quand celui-ci devient visité. + +### Le code + +```css +a { + position: relative; + text-decoration: none; +} +a::before { + content: ""; + position: absolute; + top: 50%; + left: 0; + inline-size: 2px; + block-size: 2px; + border-radius: 4px; + transform: translate(-6px, 0); + background-color: grey; +} +a:visited::before { + background-color: white; +} +``` + +Ces règles, utilisées dans la table des matières de mes articles, ajoutent une sorte de petite puce ou pastille au début du lien. Cette puce est ensuite passée en blanc sur fond blanc une fois que le lien est visité, ce qui la masque visuellement. + +### Accessibilité + +On pourrait simplifier la règle et utiliser le caractère de puce directement dans la propriété `content` mais les lecteurs d'écran annonceront alors ce caractère lors de leur retranscription du lien. De plus, les lecteurs d'écrans annoncent déjà si un lien est visité avant de lire son intitulé. + +## Aller plus loin + +Afin de pousser l'expérience un peu plus loin, j'ai tenté d'utiliser des éléments plus explicites pour signifier l'état visité du lien. Bien qu'encore assez imparfait, il est possible de créer un indicateur plus complet de lien visité. + +L'idée est d'avoir un `::before` et un `::after`, chacun contenant une icône en base 64 blanche en tant qu'image de fond. Quand le lien est non visité, le `::before` contient un fond coloré qui fait apparaître l'icône. Quand le lien passe en visité, le fond du `::before` devient blanc et celui du `::after` devient coloré, ce qui masque la première icône et affiche la deuxième. + +Il est nécessaire de positionner les icônes côte à côte sinon elles se retrouveront l'une sur l'autre. + +[Voir la démo sur codepen.](https://codepen.io/narduin/pen/VwVwmrO) diff --git a/src/data/HP/en/01-offre.md b/src/data/HP/en/01-offre.md index 45111cb..2591f13 100644 --- a/src/data/HP/en/01-offre.md +++ b/src/data/HP/en/01-offre.md @@ -4,13 +4,13 @@ id: offre lang: en slug: createdAt: -image: /assets/images/home/offres.svg +image: /assets/images/home/offre-1.1.svg order: 1 quickTitle: My offers quickImage: /assets/images/home/icon-desktop.svg --- -## Full website offer. +## Full website offer ### Small website, blog, landing page… @@ -21,7 +21,7 @@ Whether it's a creation or a redesign, I can handle everything: - hosting and deploying; - maintenance. -### Bigger websites, e-commerce. +### Bigger websites, e-commerce When the project is larger, I call on talented partners who share the same values: diff --git a/src/data/HP/en/02-methodo.md b/src/data/HP/en/02-methodo.md index 79c5f19..ab44653 100644 --- a/src/data/HP/en/02-methodo.md +++ b/src/data/HP/en/02-methodo.md @@ -10,13 +10,13 @@ quickTitle: My methodology quickImage: /assets/images/home/icon-methodo.svg --- -## Methodology. +## Methodology -### Accessibility by default. +### Accessibility by default Committed to a more accessible web, I create **websites** relying on the [french General Accessibility Guidelines (RGAA)](https://www.numerique.gouv.fr/publications/rgaa-accessibilite/) as well as the [Opquast recommandations.](https://www.opquast.com/en/making-the-web-better/) -### Sobriety by choice. +### Sobriety by choice I specialize in the development of **static websites**, adopting an [eco-design](https://en.wikipedia.org/wiki/Ecological_design) approach. It means that the website is designed to only include the necessary functionalities for its use. diff --git a/src/data/HP/en/03-about.md b/src/data/HP/en/03-about.md index 2c2ca8a..eecd468 100644 --- a/src/data/HP/en/03-about.md +++ b/src/data/HP/en/03-about.md @@ -10,20 +10,20 @@ quickTitle: Me quickImage: /assets/images/home/icon-heart.svg --- -## About. +## About -### Trainings myself. +### Trainings myself In order to strengthen my skills, I have completed the following training and certifications: - [Opquast](https://directory.opquast.com/en/certificat/CTQSKP/) - Mastering Web Quality Assurance; - Access42 - Developing and coding accessible websites (cert number: 696fa2e0-cc67-11ec-88d2-9dabf3f992d4). -### Trainings others. +### Trainings others For several years, I have been teaching web development courses on various campuses. -### Free time. +### Free time I try to contribute to [open source projects](https://git.nardu.in/explore/repos) that I enjoy. diff --git a/src/data/HP/fr/01.1-offre.md b/src/data/HP/fr/01.1-offre.md index f0a20ce..e880c74 100644 --- a/src/data/HP/fr/01.1-offre.md +++ b/src/data/HP/fr/01.1-offre.md @@ -12,8 +12,8 @@ reference: parole-expression ## L'offre site web classique -Cette offre est destinée à un public souhaitant **se doter d'un site web.** Sans forcément chercher une conformité totale au [référentiel général d'amélioration de l'accessibilité](https://accessibilite.numerique.gouv.fr/) (RGAA), le site sera malgré tout développé au plus proche des règles du référentiel. +Cette offre est destinée à un public souhaitant **se doter d'un site web**, sans forcément intégrer l'accessibilité au cœur du projet. Le site sera malgré tout développé au plus proche des règles du [référentiel général d'amélioration de l'accessibilité](https://accessibilite.numerique.gouv.fr/) (RGAA). L'objectif principal de cette offre étant d'**établir une présence en ligne** pour le client. Que cette dernière ait un but informatif et/ou éditorial. -L'offre classique en détails. +L'offre classique en détails diff --git a/src/data/HP/fr/01.2-offre.md b/src/data/HP/fr/01.2-offre.md index a37de4f..84c6052 100644 --- a/src/data/HP/fr/01.2-offre.md +++ b/src/data/HP/fr/01.2-offre.md @@ -7,11 +7,11 @@ reference: rose-primaire ## L'offre accessibilité avancée -Cette offre s'adresse plus spécifiquement aux entités pour lesquelles **l'accessibilité du site est un critère majeur.** Qu'il s'agisse d'une création de zéro ou d'une mise en conformité après un audit d'accessibilité. +Cette offre s'adresse plus spécifiquement aux entités pour lesquelles **l'accessibilité du site est un critère majeur.** Qu'il s'agisse d'une création ou d'une mise en conformité après un audit d'accessibilité. Lorsque le projet le nécessite, je fais appel à des partenaires talentueux partageant les mêmes valeurs : - [Rose Primaire](https://roseprimaire.com/) pour le conseil et l'accompagnement du projet ; - [Sylvain Plantier](https://jedessinebien.com/) et/ou [Benoît Etchevery](http://ben-etche.com/) pour l'illustration et la direction artistique. -L'offre accessibilité en détails. +L'offre accessibilité en détails diff --git a/src/data/HP/fr/01.3-offre.md b/src/data/HP/fr/01.3-offre.md new file mode 100644 index 0000000..6d0cf2a --- /dev/null +++ b/src/data/HP/fr/01.3-offre.md @@ -0,0 +1,9 @@ +--- +type: section +lang: fr +image: /assets/images/home/offre-1.3.svg +--- + +## Et l'éco-conception alors ? + +Je ne conçois pas l'éco-conception comme une offre. C'est plutôt une façon de travailler, voire même une vision de mon métier. On fait rarement de l'éco-conception sans accessibilité, j'applique donc ces méthodologies quelque soit le projet ! diff --git a/src/data/HP/fr/02-methodo.md b/src/data/HP/fr/02-methodo.md index 3044082..762ab33 100644 --- a/src/data/HP/fr/02-methodo.md +++ b/src/data/HP/fr/02-methodo.md @@ -10,13 +10,13 @@ quickTitle: Ma méthodologie quickImage: /assets/images/home/icon-methodo.svg --- -## Méthodologie. +## Méthodologie -### Accessibilité par défaut. +### Accessibilité par défaut Engagé pour un web plus accessible, je crée des **sites web** en m'appuyant sur le [référentiel général d'amélioration de l'accessibilité (RGAA)](https://www.numerique.gouv.fr/publications/rgaa-accessibilite/) ainsi que sur les bonnes pratiques [Opquast.](https://www.opquast.com/rendre-le-web-meilleur/) -### Sobriété par choix. +### Sobriété par choix Je privilégie le développement de **sites statiques** en adoptant une approche [d'éco-conception numérique.](https://eco-conception.designersethiques.org/guide/fr/) C'est-à-dire que le site est pensé pour n'embarquer que les fonctionnalités nécessaires à son utilisation. diff --git a/src/data/HP/fr/03-about.md b/src/data/HP/fr/03-about.md index 3dc7ae9..27f4ad0 100644 --- a/src/data/HP/fr/03-about.md +++ b/src/data/HP/fr/03-about.md @@ -10,20 +10,20 @@ quickTitle: Moi quickImage: /assets/images/home/icon-heart.svg --- -## À propos. +## À propos -### Formations personnelles. +### Formations personnelles Afin de solidifier mes compétences, j'ai suivi les formations et passé les certifications suivantes : - [Opquast](https://directory.opquast.com/fr/certificat/CTQSKP/) - Maîtrise de la qualité en projet web ; - Access42 - Développer et coder des sites accessibles (certificat numéro : 696fa2e0-cc67-11ec-88d2-9dabf3f992d4). -### Formations des autres. +### Formations des autres Depuis plusieurs années, j'interviens dans différents campus afin de dispenser des cours de développement web. -### Temps libre. +### Temps libre J’essaie de contribuer à des [projets open source](https://git.nardu.in/explore/repos) qui me tiennent à cœur et je m'engage localement avec le collectif [good-it!](https://www.good-it.org/) diff --git a/src/styles/global/global-styles.css b/src/styles/global/global-styles.css index e793c80..237d253 100644 --- a/src/styles/global/global-styles.css +++ b/src/styles/global/global-styles.css @@ -61,9 +61,9 @@ a { color: var(--color-blue); text-decoration: underline; } -a:visited { +/* a:visited { color: currentColor; -} +} */ a:hover, a:focus { text-decoration: none;