From f23f708f95d75a92cd673688657886c2e74697b0 Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Tue, 23 Jan 2024 12:03:56 -0800 Subject: [PATCH] merge --- .../{publish.yml => astro-ghostcms.yml} | 10 +- .github/workflows/lighthouse.yml | 24 + DELETE_ME.md | 19 - demo/.env | 2 + demo/.env.demo | 2 + demo/.vscode/extensions.json | 4 + demo/.vscode/launch.json | 11 + demo/LICENSE | 21 + demo/README.md | 12 + demo/astro.config.mjs | 8 + demo/package.json | 20 + demo/public/favicon.svg | 9 + demo/public/rss.xsl | 52 + demo/src/env.d.ts | 9 + demo/tsconfig.json | 3 + package.json | 2 + pnpm-lock.yaml | 868 +++++- pnpm-workspace.yaml | 4 +- www/.gitignore | 21 + www/README.md | 1 + www/astro.config.mjs | 44 + www/houston-vscode.jsonc | 2369 +++++++++++++++++ www/package.json | 20 + www/public/favicon.ico | Bin 0 -> 270398 bytes www/public/favicon.svg | 1 + www/src/assets/favicon.svg | 1 + www/src/assets/houston-vscode.jsonc | 2369 +++++++++++++++++ www/src/assets/quickstart.sh | 5 + www/src/components/BaseHead.astro | 21 + www/src/components/Footer.astro | 12 + www/src/components/FormattedDate.astro | 25 + www/src/components/GhostAstroFooter.astro | 4 + www/src/components/Header.astro | 30 + www/src/components/QuickStart.astro | 14 + www/src/components/SEO.astro | 87 + www/src/consts.ts | 5 + .../content/archivedreleases/v2_0/2_0_5.md | 48 + .../content/archivedreleases/v2_0/2_0_8.md | 13 + www/src/content/config.ts | 35 + www/src/content/docs/docs/index.md | 11 + .../docs/docs/introduction/api/install.md | 34 + .../docs/docs/introduction/api/usage.md | 136 + .../docs/docs/introduction/getting-started.md | 17 + .../docs/introduction/integration/config.md | 50 + .../docs/introduction/integration/manual.md | 49 + .../docs/introduction/integration/quick.md | 39 + .../docs/reference/ghost-content-api-ref.md | 205 ++ .../docs/reference/unlighthouse-reports.md | 9 + www/src/content/releases/posts/01192024.md | 13 + www/src/content/releases/v2_1/2_1_0.md | 20 + www/src/content/releases/v2_1/2_1_3.md | 22 + www/src/content/releases/v2_1/2_1_5.md | 22 + www/src/content/releases/v2_1/2_1_7.md | 23 + www/src/content/releases/v2_1/2_1_8.md | 17 + www/src/env.d.ts | 2 + www/src/layouts/ArchivePostLayout.astro | 41 + www/src/layouts/IndexLayout.astro | 27 + www/src/layouts/PostLayout.astro | 41 + www/src/pages/archive/[...slug].astro | 21 + www/src/pages/archive/index.astro | 37 + www/src/pages/index.astro | 41 + www/src/pages/releases/[...slug].astro | 21 + www/src/styles/colors.scss | 61 + www/src/styles/global.scss | 3 + www/src/styles/layout.scss | 291 ++ www/src/styles/starlight.css | 29 + www/src/styles/type.scss | 136 + www/tsconfig.json | 4 + 68 files changed, 7567 insertions(+), 60 deletions(-) rename .github/workflows/{publish.yml => astro-ghostcms.yml} (85%) create mode 100644 .github/workflows/lighthouse.yml delete mode 100644 DELETE_ME.md create mode 100644 demo/.env create mode 100644 demo/.env.demo create mode 100644 demo/.vscode/extensions.json create mode 100644 demo/.vscode/launch.json create mode 100644 demo/LICENSE create mode 100644 demo/README.md create mode 100644 demo/astro.config.mjs create mode 100644 demo/package.json create mode 100644 demo/public/favicon.svg create mode 100644 demo/public/rss.xsl create mode 100644 demo/src/env.d.ts create mode 100644 demo/tsconfig.json create mode 100644 www/.gitignore create mode 100644 www/README.md create mode 100644 www/astro.config.mjs create mode 100644 www/houston-vscode.jsonc create mode 100644 www/package.json create mode 100644 www/public/favicon.ico create mode 100644 www/public/favicon.svg create mode 100644 www/src/assets/favicon.svg create mode 100644 www/src/assets/houston-vscode.jsonc create mode 100644 www/src/assets/quickstart.sh create mode 100644 www/src/components/BaseHead.astro create mode 100644 www/src/components/Footer.astro create mode 100644 www/src/components/FormattedDate.astro create mode 100644 www/src/components/GhostAstroFooter.astro create mode 100644 www/src/components/Header.astro create mode 100644 www/src/components/QuickStart.astro create mode 100644 www/src/components/SEO.astro create mode 100644 www/src/consts.ts create mode 100644 www/src/content/archivedreleases/v2_0/2_0_5.md create mode 100644 www/src/content/archivedreleases/v2_0/2_0_8.md create mode 100644 www/src/content/config.ts create mode 100644 www/src/content/docs/docs/index.md create mode 100644 www/src/content/docs/docs/introduction/api/install.md create mode 100644 www/src/content/docs/docs/introduction/api/usage.md create mode 100644 www/src/content/docs/docs/introduction/getting-started.md create mode 100644 www/src/content/docs/docs/introduction/integration/config.md create mode 100644 www/src/content/docs/docs/introduction/integration/manual.md create mode 100644 www/src/content/docs/docs/introduction/integration/quick.md create mode 100644 www/src/content/docs/docs/reference/ghost-content-api-ref.md create mode 100644 www/src/content/docs/docs/reference/unlighthouse-reports.md create mode 100644 www/src/content/releases/posts/01192024.md create mode 100644 www/src/content/releases/v2_1/2_1_0.md create mode 100644 www/src/content/releases/v2_1/2_1_3.md create mode 100644 www/src/content/releases/v2_1/2_1_5.md create mode 100644 www/src/content/releases/v2_1/2_1_7.md create mode 100644 www/src/content/releases/v2_1/2_1_8.md create mode 100644 www/src/env.d.ts create mode 100644 www/src/layouts/ArchivePostLayout.astro create mode 100644 www/src/layouts/IndexLayout.astro create mode 100644 www/src/layouts/PostLayout.astro create mode 100644 www/src/pages/archive/[...slug].astro create mode 100644 www/src/pages/archive/index.astro create mode 100644 www/src/pages/index.astro create mode 100644 www/src/pages/releases/[...slug].astro create mode 100644 www/src/styles/colors.scss create mode 100644 www/src/styles/global.scss create mode 100644 www/src/styles/layout.scss create mode 100644 www/src/styles/starlight.css create mode 100644 www/src/styles/type.scss create mode 100644 www/tsconfig.json diff --git a/.github/workflows/publish.yml b/.github/workflows/astro-ghostcms.yml similarity index 85% rename from .github/workflows/publish.yml rename to .github/workflows/astro-ghostcms.yml index 28826aab..7bdbe1fa 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/astro-ghostcms.yml @@ -1,12 +1,15 @@ -name: publish npm +name: Publish Astro-GhostCMS on: release: - types: [created] + types: [published] jobs: publishnpm: runs-on: ubuntu-latest + defaults: + run: + working-directory: ./packages/astro-ghostcms steps: - name: checkout uses: actions/checkout@v3 @@ -29,6 +32,9 @@ jobs: contents: read packages: write runs-on: ubuntu-latest + defaults: + run: + working-directory: ./packages/astro-ghostcms steps: - name: checkout uses: actions/checkout@v3 diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml new file mode 100644 index 00000000..4756ecd3 --- /dev/null +++ b/.github/workflows/lighthouse.yml @@ -0,0 +1,24 @@ +name: Unlighthouse - Demo Site + +on: + workflow_call: + +jobs: + Unlighthouse-demo: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Install Dependencies + run: npm install -g @unlighthouse/cli puppeteer netlify-cli + + - name: Unlighthouse assertions and client + run: unlighthouse-ci --site demo.astro-ghostcms.xyz --budget 75 --build-static + + - name: Deploy + run: netlify deploy --dir=.unlighthouse --prod --message="New Release Deploy from GitHub Actions" + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} diff --git a/DELETE_ME.md b/DELETE_ME.md deleted file mode 100644 index cd67c9ad..00000000 --- a/DELETE_ME.md +++ /dev/null @@ -1,19 +0,0 @@ -## Checklist - -- [ ] Update all `TODO:` -- [ ] Update all `package-name` occurences -- [ ] Add a LICENSE.md at the root -- [ ] Have gh cli installed -- [ ] Work on the integration logic -- [ ] Work on docs - - [ ] JSDoc - - [ ] Package README -- [ ] Format/lint (`pnpm lint:fix`) -- [ ] Setup GitHub repository -- [ ] Release (see below) -- [ ] Share! - -To create a release: -- [ ] `pnpm run changeset` -- [ ] Commit and push -- [ ] `pnpm release` diff --git a/demo/.env b/demo/.env new file mode 100644 index 00000000..fbeecd6d --- /dev/null +++ b/demo/.env @@ -0,0 +1,2 @@ +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz \ No newline at end of file diff --git a/demo/.env.demo b/demo/.env.demo new file mode 100644 index 00000000..fbeecd6d --- /dev/null +++ b/demo/.env.demo @@ -0,0 +1,2 @@ +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz \ No newline at end of file diff --git a/demo/.vscode/extensions.json b/demo/.vscode/extensions.json new file mode 100644 index 00000000..22a15055 --- /dev/null +++ b/demo/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/demo/.vscode/launch.json b/demo/.vscode/launch.json new file mode 100644 index 00000000..d6422097 --- /dev/null +++ b/demo/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/demo/LICENSE b/demo/LICENSE new file mode 100644 index 00000000..88dd1335 --- /dev/null +++ b/demo/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Matthiesen XYZ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/demo/README.md b/demo/README.md new file mode 100644 index 00000000..e844e622 --- /dev/null +++ b/demo/README.md @@ -0,0 +1,12 @@ +# Astro-GhostCMS Demo Template + +![Vercel](https://vercelbadge.vercel.app/api/matthiesenxyz/astro-ghostcms-demo) + +This Repo is a Demo Website for the [@matthiesenxyz/astro-ghostcms](https://github.com/MatthiesenXYZ/astro-ghostcms) integraion. + +- For a live preview goto [Demo.Astro-GhostCMS.xyz](https://demo.astro-ghostcms.xyz) +- To see the Current Lighthouse test that is ran every deployment goto [Test.Demo.Astro-GhostCMS.xyz](https://test.demo.astro-ghostcms.xyz) + +### For more information Check our website + +[Astro-GhostCMS.xyz](https://astro-ghostcms.xyz) diff --git a/demo/astro.config.mjs b/demo/astro.config.mjs new file mode 100644 index 00000000..e445154c --- /dev/null +++ b/demo/astro.config.mjs @@ -0,0 +1,8 @@ +import { defineConfig } from 'astro/config'; +import GhostCMS from "@matthiesenxyz/astro-ghostcms"; + +// https://astro.build/config +export default defineConfig({ + site: "https://demo.astro-ghostcms.xyz/", + integrations: [GhostCMS()] +}); diff --git a/demo/package.json b/demo/package.json new file mode 100644 index 00000000..cfc7662e --- /dev/null +++ b/demo/package.json @@ -0,0 +1,20 @@ +{ + "name": "demo", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/check": "^0.4.1", + "@matthiesenxyz/astro-ghostcms": "^2.1.8", + "astro": "^4.2.0", + "astro-robots-txt": "^1.0.0", + "typescript": "^5.3.3", + "zod-validation-error": "^3.0.0" + } +} diff --git a/demo/public/favicon.svg b/demo/public/favicon.svg new file mode 100644 index 00000000..f157bd1c --- /dev/null +++ b/demo/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/demo/public/rss.xsl b/demo/public/rss.xsl new file mode 100644 index 00000000..7fdf8788 --- /dev/null +++ b/demo/public/rss.xsl @@ -0,0 +1,52 @@ + + + + + + + <xsl:value-of select="/rss/channel/title"/> Blog Feed + + + + + + + +
+
+

+ + +

+

+ + + + + Visit Website → + +
+

Recent Blog Posts

+ +
+

+ + + + + + +

+ + Published: + +

+ +

+
+
+
+ + +
+
\ No newline at end of file diff --git a/demo/src/env.d.ts b/demo/src/env.d.ts new file mode 100644 index 00000000..e8c8b171 --- /dev/null +++ b/demo/src/env.d.ts @@ -0,0 +1,9 @@ +/// +interface ImportMetaEnv { + readonly CONTENT_API_KEY: string + readonly CONTENT_API_URL: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} \ No newline at end of file diff --git a/demo/tsconfig.json b/demo/tsconfig.json new file mode 100644 index 00000000..77da9dd0 --- /dev/null +++ b/demo/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "astro/tsconfigs/strict" +} \ No newline at end of file diff --git a/package.json b/package.json index f72417dc..167713fb 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ }, "scripts": { "playground:dev": "pnpm --filter playground dev", + "www:dev": "pnpm --filter www dev", + "demo:dev": "pnpm --filter demo dev", "lint": "biome check .", "lint:fix": "biome check --apply ." }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index acc87434..f1b2e99d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,6 +15,27 @@ importers: specifier: ^2.27.1 version: 2.27.1 + demo: + dependencies: + '@astrojs/check': + specifier: ^0.4.1 + version: 0.4.1(typescript@5.3.3) + '@matthiesenxyz/astro-ghostcms': + specifier: ^2.1.8 + version: link:../packages/astro-ghostcms + astro: + specifier: ^4.2.0 + version: 4.2.3(@types/node@20.11.5)(sass@1.70.0)(typescript@5.3.3) + astro-robots-txt: + specifier: ^1.0.0 + version: 1.0.0 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + zod-validation-error: + specifier: ^3.0.0 + version: 3.0.0(zod@3.22.4) + packages/astro-ghostcms: dependencies: '@astrojs/check': @@ -94,6 +115,27 @@ importers: specifier: ^5.3.3 version: 5.3.3 + www: + dependencies: + '@astrojs/check': + specifier: ^0.4.1 + version: 0.4.1(typescript@5.3.3) + '@astrojs/starlight': + specifier: ^0.15.4 + version: 0.15.4(astro@4.2.3) + astro: + specifier: ^4.2.0 + version: 4.2.3(@types/node@20.11.5)(sass@1.70.0)(typescript@5.3.3) + sass: + specifier: ^1.69.5 + version: 1.70.0 + sharp: + specifier: ^0.32.6 + version: 0.32.6 + typescript: + specifier: ^5.3.3 + version: 5.3.3 + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -141,7 +183,6 @@ packages: transitivePeerDependencies: - prettier - prettier-plugin-astro - dev: true /@astrojs/compiler@1.8.2: resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} @@ -209,6 +250,32 @@ packages: - supports-color dev: false + /@astrojs/mdx@2.0.6(astro@4.2.3): + resolution: {integrity: sha512-PY6FYN5TN8dsRFSzcPIt5ofJ/w+v+5GtUUyDYbznu8zmFWlL9TkTLJ9U1zaQ3s2Qh6r1cAeLdEYjW/hW+vZzlw==} + engines: {node: '>=18.14.1'} + peerDependencies: + astro: ^4.0.0 + dependencies: + '@astrojs/markdown-remark': 4.2.0 + '@mdx-js/mdx': 3.0.0 + acorn: 8.11.3 + astro: 4.2.3(@types/node@20.11.5)(sass@1.70.0)(typescript@5.3.3) + es-module-lexer: 1.4.1 + estree-util-visit: 2.0.0 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.0 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 2.1.0 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /@astrojs/prism@3.0.0: resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} engines: {node: '>=18.14.1'} @@ -230,6 +297,33 @@ packages: zod: 3.22.4 dev: false + /@astrojs/starlight@0.15.4(astro@4.2.3): + resolution: {integrity: sha512-o3heYH+RltsCsvO3L0qLnnFJEakwLSRoxW4wFX2zDeDWta9BIpdSOo7+Zg+sSn7k9RPOhI9SGvdFx67B53I18Q==} + peerDependencies: + astro: ^4.0.0 + dependencies: + '@astrojs/mdx': 2.0.6(astro@4.2.3) + '@astrojs/sitemap': 3.0.5 + '@pagefind/default-ui': 1.0.4 + '@types/hast': 3.0.3 + '@types/mdast': 4.0.3 + astro: 4.2.3(@types/node@20.11.5)(sass@1.70.0)(typescript@5.3.3) + astro-expressive-code: 0.31.0(astro@4.2.3) + bcp-47: 2.1.0 + hast-util-select: 6.0.2 + hastscript: 8.0.0 + mdast-util-directive: 3.0.0 + pagefind: 1.0.4 + rehype: 13.0.1 + remark-directive: 3.0.0 + unified: 11.0.4 + unist-util-remove: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /@astrojs/telemetry@3.0.4: resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} engines: {node: '>=18.14.1'} @@ -747,6 +841,11 @@ packages: prettier: 2.8.8 dev: true + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: false + /@emmetio/abbreviation@2.3.3: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: @@ -1202,6 +1301,38 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false + /@expressive-code/core@0.31.0: + resolution: {integrity: sha512-zeCuojWRYeFs0UDOhzpKMzpjI/tJPCQna4jcVp5SJLMn4qNtHXgVmz3AngoMFoFcAlK6meE3wxzy//0d6K4NPw==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + hast-util-to-html: 8.0.4 + hastscript: 7.2.0 + postcss: 8.4.33 + postcss-nested: 6.0.1(postcss@8.4.33) + dev: false + + /@expressive-code/plugin-frames@0.31.0: + resolution: {integrity: sha512-eYWfK3i4w2gSpOGBFNnu05JKSXC90APgUNdam8y5i0Ie2CVAwpxDtEp0NRqugvEKC0aMJe6ZmHN5Hu2WAVJmig==} + dependencies: + '@expressive-code/core': 0.31.0 + hastscript: 7.2.0 + dev: false + + /@expressive-code/plugin-shiki@0.31.0: + resolution: {integrity: sha512-fU5wPPfV1LGcS+Z1wcEkzI1fzBq9IAdt0DN0ni8sT7E+gpkULda4GA4IFD9iWKCGIhSDsBbG+bjc9hrYoJsDIQ==} + dependencies: + '@expressive-code/core': 0.31.0 + shikiji: 0.8.7 + dev: false + + /@expressive-code/plugin-text-markers@0.31.0: + resolution: {integrity: sha512-32o3pPMBq6bVUfRsAfFyqNpHbD1Z3iftoX9yt95F5zakLMsmHzZL4f0jyNr8XpXe7qcTnl0kIijBkUpvS6Pxfg==} + dependencies: + '@expressive-code/core': 0.31.0 + hastscript: 7.2.0 + unist-util-visit-parents: 5.1.3 + dev: false + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -1271,6 +1402,36 @@ packages: read-yaml-file: 1.1.0 dev: true + /@mdx-js/mdx@3.0.0: + resolution: {integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.3 + '@types/hast': 3.0.3 + '@types/mdx': 2.0.10 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + source-map: 0.7.4 + unified: 11.0.4 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1289,6 +1450,50 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.16.0 + /@pagefind/darwin-arm64@1.0.4: + resolution: {integrity: sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@pagefind/darwin-x64@1.0.4: + resolution: {integrity: sha512-xkdvp0D9Ld/ZKsjo/y1bgfhTEU72ITimd2PMMQtts7jf6JPIOJbsiErCvm37m/qMFuPGEq/8d+fZ4pydOj08HQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@pagefind/default-ui@1.0.4: + resolution: {integrity: sha512-edkcaPSKq67C49Vehjo+LQCpT615v4d7JRhfGzFPccePvdklaL+VXrfghN/uIfsdoG+HoLI1PcYy2iFcB9CTkw==} + dev: false + + /@pagefind/linux-arm64@1.0.4: + resolution: {integrity: sha512-jGBrcCzIrMnNxLKVtogaQyajVfTAXM59KlBEwg6vTn8NW4fQ6nuFbbhlG4dTIsaamjEM5e8ZBEAKZfTB/qd9xw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@pagefind/linux-x64@1.0.4: + resolution: {integrity: sha512-LIn/QcvcEtLEBqKe5vpSbSC2O3fvqbRCWOTIklslqSORisCsvzsWbP6j+LYxE9q0oWIfkdMoWV1vrE/oCKRxHg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@pagefind/windows-x64@1.0.4: + resolution: {integrity: sha512-QlBCVeZfj9fc9sbUgdOz76ZDbeK4xZihOBAFqGuRJeChfM8pnVeH9iqSnXgO3+m9oITugTf7PicyRUFAG76xeQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@pkgr/core@0.1.1: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1398,6 +1603,12 @@ packages: dev: false optional: true + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -1433,10 +1644,22 @@ packages: '@types/ms': 0.7.34 dev: false + /@types/estree-jsx@1.0.3: + resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: false + /@types/hast@2.3.9: + resolution: {integrity: sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==} + dependencies: + '@types/unist': 2.0.10 + dev: false + /@types/hast@3.0.3: resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} dependencies: @@ -1453,6 +1676,10 @@ packages: '@types/unist': 3.0.2 dev: false + /@types/mdx@2.0.10: + resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} + dev: false + /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true @@ -1485,6 +1712,10 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true + /@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: false + /@types/sax@1.2.7: resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: @@ -1853,6 +2084,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false + /astro-eslint-parser@0.16.2: resolution: {integrity: sha512-JJ/AlnPEiFgu5Tuuj9AxkSjiyobg2x7hjiXpglZtyzN2Bkj7GSXVppDQL6oavwtk0kHOAAkvyuJJ+8cC5c1NqQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1870,6 +2106,15 @@ packages: - supports-color dev: false + /astro-expressive-code@0.31.0(astro@4.2.3): + resolution: {integrity: sha512-o6eFrRSYLnlM/2FKkO3MgkbmVxT8N6DJcKvbRf1wbUcRXpz7s1KfugbdsaGw3ABEWUBuQIBsRppcGGw2L816Vg==} + peerDependencies: + astro: ^3.3.0 || ^4.0.0-beta + dependencies: + astro: 4.2.3(@types/node@20.11.5)(sass@1.70.0)(typescript@5.3.3) + remark-expressive-code: 0.31.0 + dev: false + /astro-font@0.0.72: resolution: {integrity: sha512-FUjIerovSg2lsfJfvvqY23hgvc++gHi69ikFkxm0mqO3MPFykK5ppeUuROUjhNbE6vwdD8MpiJOy1CR5S0g/lQ==} dev: false @@ -2002,7 +2247,6 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} requiresBuild: true dev: false - optional: true /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2020,6 +2264,18 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false + /bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + dev: false + + /bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + dev: false + /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -2039,7 +2295,6 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 dev: false - optional: true /bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} @@ -2049,6 +2304,10 @@ packages: readable-stream: 3.6.2 dev: false + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: false + /boxen@7.1.1: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} @@ -2106,7 +2365,6 @@ packages: base64-js: 1.5.1 ieee754: 1.2.1 dev: false - optional: true /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -2187,6 +2445,10 @@ packages: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} dev: false + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true @@ -2209,7 +2471,6 @@ packages: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} requiresBuild: true dev: false - optional: true /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} @@ -2263,6 +2524,10 @@ packages: engines: {node: '>=6'} dev: false + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + dev: false + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2287,7 +2552,6 @@ packages: color-name: 1.1.4 simple-swizzle: 0.2.2 dev: false - optional: true /color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} @@ -2297,7 +2561,6 @@ packages: color-convert: 2.0.1 color-string: 1.9.1 dev: false - optional: true /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -2344,6 +2607,10 @@ packages: which: 2.0.2 dev: false + /css-selector-parser@3.0.4: + resolution: {integrity: sha512-pnmS1dbKsz6KA4EW4BznyPL2xxkNDRg62hcD0v8g6DEw2W7hxOln5M953jsp9hmw5Dg57S6o/A8GOn37mbAgcQ==} + dev: false + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2432,14 +2699,12 @@ packages: dependencies: mimic-response: 3.1.0 dev: false - optional: true /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} requiresBuild: true dev: false - optional: true /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2489,7 +2754,6 @@ packages: engines: {node: '>=8'} requiresBuild: true dev: false - optional: true /deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} @@ -2519,6 +2783,11 @@ packages: dependencies: path-type: 4.0.0 + /direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dev: false + /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: false @@ -2566,7 +2835,6 @@ packages: dependencies: once: 1.4.0 dev: false - optional: true /enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} @@ -2858,6 +3126,40 @@ packages: engines: {node: '>=4.0'} dev: false + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + dependencies: + '@types/estree-jsx': 1.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + dev: false + + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false + + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + dependencies: + '@types/estree-jsx': 1.0.3 + astring: 1.8.6 + source-map: 0.7.4 + dev: false + + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/unist': 3.0.2 + dev: false + /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -2893,7 +3195,15 @@ packages: engines: {node: '>=6'} requiresBuild: true dev: false - optional: true + + /expressive-code@0.31.0: + resolution: {integrity: sha512-rxKGYS8iRwNUbRNfyCyoe3XQvBLTtGdXbNKM+ODDWCn4VL2DVT1gD1M2N2Alg8HQHIWZJsZIMsYbziO0MRjPlw==} + dependencies: + '@expressive-code/core': 0.31.0 + '@expressive-code/plugin-frames': 0.31.0 + '@expressive-code/plugin-shiki': 0.31.0 + '@expressive-code/plugin-text-markers': 0.31.0 + dev: false /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -2927,7 +3237,6 @@ packages: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} requiresBuild: true dev: false - optional: true /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} @@ -3044,7 +3353,6 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} requiresBuild: true dev: false - optional: true /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -3132,7 +3440,6 @@ packages: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} requiresBuild: true dev: false - optional: true /github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3276,6 +3583,18 @@ packages: vfile-message: 4.0.2 dev: false + /hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + dependencies: + '@types/hast': 2.3.9 + '@types/unist': 2.0.10 + hastscript: 7.2.0 + property-information: 6.4.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + /hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: @@ -3289,12 +3608,40 @@ packages: web-namespaces: 2.0.1 dev: false + /hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + dependencies: + '@types/hast': 3.0.3 + dev: false + + /hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + dependencies: + '@types/hast': 2.3.9 + dev: false + /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: '@types/hast': 3.0.3 dev: false + /hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + dependencies: + '@types/hast': 2.3.9 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-raw@9.0.2: resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: @@ -3313,6 +3660,66 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-select@6.0.2: + resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} + dependencies: + '@types/hast': 3.0.3 + '@types/unist': 3.0.2 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.0.4 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.0 + hast-util-whitespace: 3.0.0 + not: 0.1.0 + nth-check: 2.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.3 + '@types/hast': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + dependencies: + '@types/hast': 2.3.9 + '@types/unist': 2.0.10 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + /hast-util-to-html@9.0.0: resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} dependencies: @@ -3330,6 +3737,39 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.3 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.5 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + dependencies: + '@types/hast': 2.3.9 + comma-separated-tokens: 2.0.3 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + /hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: @@ -3342,12 +3782,32 @@ packages: zwitch: 2.0.4 dev: false + /hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + dependencies: + '@types/hast': 3.0.3 + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + /hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: '@types/hast': 3.0.3 dev: false + /hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + dependencies: + '@types/hast': 2.3.9 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + dev: false + /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: @@ -3366,6 +3826,10 @@ packages: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} dev: false + /html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + /html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} dev: false @@ -3438,7 +3902,14 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} requiresBuild: true dev: false - optional: true + + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + dev: false /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} @@ -3449,6 +3920,17 @@ packages: side-channel: 1.0.4 dev: true + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -3465,7 +3947,6 @@ packages: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} requiresBuild: true dev: false - optional: true /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -3509,6 +3990,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + /is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3534,6 +4019,10 @@ packages: dependencies: is-extglob: 2.1.1 + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -3578,6 +4067,12 @@ packages: engines: {node: '>=12'} dev: false + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -3817,6 +4312,11 @@ packages: engines: {node: '>=8'} dev: true + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + dev: false + /markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false @@ -3829,6 +4329,21 @@ packages: unist-util-visit: 5.0.0 dev: false + /mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-visit-parents: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: @@ -3926,6 +4441,64 @@ packages: - supports-color dev: false + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 3.0.3 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@3.0.0: + resolution: {integrity: sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 3.0.3 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 5.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 3.0.3 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /mdast-util-phrasing@4.0.0: resolution: {integrity: sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==} dependencies: @@ -4011,6 +4584,18 @@ packages: micromark-util-types: 2.0.0 dev: false + /micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + dev: false + /micromark-extension-gfm-autolink-literal@2.0.0: resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: @@ -4083,6 +4668,67 @@ packages: micromark-util-types: 2.0.0 dev: false + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + dev: false + + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.0 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + /micromark-factory-destination@2.0.0: resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: @@ -4100,6 +4746,19 @@ packages: micromark-util-types: 2.0.0 dev: false + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} + dependencies: + '@types/estree': 1.0.5 + devlop: 1.1.0 + micromark-util-character: 2.0.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + dev: false + /micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: @@ -4172,6 +4831,19 @@ packages: resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} dev: false + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + '@types/unist': 3.0.2 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + dev: false + /micromark-util-html-tag-name@2.0.0: resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} dev: false @@ -4277,7 +4949,6 @@ packages: engines: {node: '>=10'} requiresBuild: true dev: false - optional: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -4310,7 +4981,6 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} requiresBuild: true dev: false - optional: true /mixme@0.5.10: resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} @@ -4321,7 +4991,6 @@ packages: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} requiresBuild: true dev: false - optional: true /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -4348,7 +5017,6 @@ packages: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} requiresBuild: true dev: false - optional: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4379,13 +5047,11 @@ packages: dependencies: semver: 7.5.4 dev: false - optional: true /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} requiresBuild: true dev: false - optional: true /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -4404,6 +5070,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + /not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} + dev: false + /npm-run-path@5.2.0: resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4411,6 +5081,12 @@ packages: path-key: 4.0.0 dev: false + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: false + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -4546,6 +5222,17 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + /pagefind@1.0.4: + resolution: {integrity: sha512-oRIizYe+zSI2Jw4zcMU0ebDZm27751hRFiSOBLwc1OIYMrsZKk+3m8p9EVaOmc6zZdtqwwdilNUNxXvBeHcP9w==} + hasBin: true + optionalDependencies: + '@pagefind/darwin-arm64': 1.0.4 + '@pagefind/darwin-x64': 1.0.4 + '@pagefind/linux-arm64': 1.0.4 + '@pagefind/linux-x64': 1.0.4 + '@pagefind/windows-x64': 1.0.4 + dev: false + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4553,6 +5240,19 @@ packages: callsites: 3.1.0 dev: false + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -4571,6 +5271,10 @@ packages: unist-util-visit-children: 2.0.2 dev: false + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -4610,6 +5314,14 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false @@ -4628,6 +5340,16 @@ packages: dependencies: find-up: 4.1.0 + /postcss-nested@6.0.1(postcss@8.4.33): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.33 + postcss-selector-parser: 6.0.15 + dev: false + /postcss-selector-parser@6.0.15: resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} @@ -4664,7 +5386,6 @@ packages: tar-fs: 2.1.1 tunnel-agent: 0.6.0 dev: false - optional: true /preferred-pm@3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} @@ -4741,7 +5462,6 @@ packages: end-of-stream: 1.4.4 once: 1.4.0 dev: false - optional: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -4755,7 +5475,6 @@ packages: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} requiresBuild: true dev: false - optional: true /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -4772,7 +5491,6 @@ packages: minimist: 1.2.8 strip-json-comments: 2.0.1 dev: false - optional: true /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} @@ -4872,6 +5590,25 @@ packages: unified: 11.0.4 dev: false + /remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-directive: 3.0.0 + micromark-extension-directive: 3.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-expressive-code@0.31.0: + resolution: {integrity: sha512-ZnKXo9lB0kBUHZIlw2NdqMMgXriVVajEhtQfJ+MWeibMpyM1kuOa28jefNfNFd3FAoNPrc/A3M0fDRkYvWw9Gw==} + dependencies: + expressive-code: 0.31.0 + hast-util-to-html: 8.0.4 + unist-util-visit: 4.1.2 + dev: false + /remark-gfm@4.0.0: resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: @@ -4885,6 +5622,15 @@ packages: - supports-color dev: false + /remark-mdx@3.0.0: + resolution: {integrity: sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g==} + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: @@ -5157,7 +5903,6 @@ packages: tar-fs: 3.0.4 tunnel-agent: 0.6.0 dev: false - optional: true /shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} @@ -5187,6 +5932,12 @@ packages: resolution: {integrity: sha512-AFJu/vcNT21t0e6YrfadZ+9q86gvPum6iywRyt1OtIPjPFe25RQnYJyxHQPMLKCCWA992TPxmEmbNcOZCAJclw==} dev: false + /shikiji@0.8.7: + resolution: {integrity: sha512-j5usxwI0yHkDTHOuhuSJl9+wT5CNYeYO82dJMSJBlJ/NYT5SIebGcPoL6y9QOyH15wGrJC4LOP2nz5k8mUDGRQ==} + dependencies: + hast-util-to-html: 9.0.0 + dev: false + /shikiji@0.9.19: resolution: {integrity: sha512-Kw2NHWktdcdypCj1GkKpXH4o6Vxz8B8TykPlPuLHOGSV8VkhoCLcFOH4k19K4LXAQYRQmxg+0X/eM+m2sLhAkg==} dependencies: @@ -5213,7 +5964,6 @@ packages: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} requiresBuild: true dev: false - optional: true /simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} @@ -5223,7 +5973,6 @@ packages: once: 1.4.0 simple-concat: 1.0.1 dev: false - optional: true /simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -5231,7 +5980,6 @@ packages: dependencies: is-arrayish: 0.3.2 dev: false - optional: true /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -5270,6 +6018,11 @@ packages: engines: {node: '>=0.10.0'} dev: false + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false + /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: false @@ -5334,7 +6087,6 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 dev: false - optional: true /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -5448,7 +6200,6 @@ packages: engines: {node: '>=0.10.0'} requiresBuild: true dev: false - optional: true /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -5459,6 +6210,18 @@ packages: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: false + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + + /style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + dependencies: + inline-style-parser: 0.2.2 + dev: false + /suf-log@2.5.3: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} dependencies: @@ -5497,7 +6260,6 @@ packages: pump: 3.0.0 tar-stream: 2.2.0 dev: false - optional: true /tar-fs@3.0.4: resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} @@ -5507,7 +6269,6 @@ packages: pump: 3.0.0 tar-stream: 3.1.7 dev: false - optional: true /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -5520,7 +6281,6 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 dev: false - optional: true /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -5530,7 +6290,6 @@ packages: fast-fifo: 1.3.2 streamx: 2.15.6 dev: false - optional: true /term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -5622,7 +6381,6 @@ packages: dependencies: safe-buffer: 5.2.1 dev: false - optional: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -5767,12 +6525,39 @@ packages: array-iterate: 2.0.1 dev: false + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + /unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 dev: false + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /unist-util-remove@4.0.0: + resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: @@ -5861,6 +6646,13 @@ packages: spdx-expression-parse: 3.0.1 dev: true + /vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + dependencies: + '@types/unist': 2.0.10 + vfile: 5.3.7 + dev: false + /vfile-location@5.0.2: resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2127a8c0..401540ba 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,6 @@ packages: - package - "packages/*" - - "playground" \ No newline at end of file + - "playground" + - "www" + - "demo" \ No newline at end of file diff --git a/www/.gitignore b/www/.gitignore new file mode 100644 index 00000000..bffa11f0 --- /dev/null +++ b/www/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store \ No newline at end of file diff --git a/www/README.md b/www/README.md new file mode 100644 index 00000000..55801475 --- /dev/null +++ b/www/README.md @@ -0,0 +1 @@ +Repo for Astro-ghostcms.xyz website \ No newline at end of file diff --git a/www/astro.config.mjs b/www/astro.config.mjs new file mode 100644 index 00000000..d217656a --- /dev/null +++ b/www/astro.config.mjs @@ -0,0 +1,44 @@ +import { defineConfig } from 'astro/config'; +import fs from 'node:fs'; +import { ExpressiveCodeTheme } from '@astrojs/starlight/expressive-code'; +import starlight from "@astrojs/starlight"; + +const houstonFile = `./houston-vscode.jsonc`; +const houston = fs.readFileSync( + new URL(houstonFile, import.meta.url),'utf-8'); +const houstonTheme = ExpressiveCodeTheme.fromJSONString(houston); + +// https://astro.build/config +export default defineConfig({ + site: 'https://astro-ghostcms.xyz', + integrations: [ + starlight({ + title: 'Astro-GhostCMS', + logo: { + src: './src/assets/favicon.svg' + }, + favicon: 'favicon.svg', + customCss: [ './src/styles/starlight.css' ], + expressiveCode: { themes: [ houstonTheme ] }, + social: { + github: 'https://github.com/MatthiesenXYZ/astro-ghostcms', + }, + sidebar: [ + { label: 'Docs Home', link: '/docs/' }, + { label: 'Introduction', items: [ + { label: 'Getting Started', link: '/docs/introduction/getting-started' }, + { label: 'Integration Mode', items: [ + { label: 'Quick Install', link: '/docs/introduction/integration/quick' }, + { label: 'Manual Install', link: '/docs/introduction/integration/manual' }, + { label: 'Configuration Options', link: '/docs/introduction/integration/config', + badge: { text: 'BETA', variant: 'caution' }, }, ], }, + { label: 'API ( DIY ) Mode', items: [ + { label: 'Install', link: '/docs/introduction/api/install' }, + { label: 'Basic API Usage', link: '/docs/introduction/api/usage' }, ], }, ], }, + //{ label: 'Advanced Usage', link: '/docs/#' }, + { label: 'Tutorials', autogenerate: { directory: 'docs/tutorials' }, }, + { label: 'Reference', autogenerate: { directory: 'docs/reference' }, }, + ], + }), + ], +}); \ No newline at end of file diff --git a/www/houston-vscode.jsonc b/www/houston-vscode.jsonc new file mode 100644 index 00000000..37e5ea46 --- /dev/null +++ b/www/houston-vscode.jsonc @@ -0,0 +1,2369 @@ +{ + "$schema": "vscode://schemas/color-theme", + "type": "dark", + "colors": { + "activityBar.activeBackground": "#343841", + "activityBar.background": "#17191e", + "activityBar.border": "#343841", + "activityBar.foreground": "#eef0f9", + "activityBar.inactiveForeground": "#858b98", + "activityBarBadge.background": "#4bf3c8", + "activityBarBadge.foreground": "#000000", + "badge.background": "#bfc1c9", + "badge.foreground": "#17191e", + "breadcrumb.activeSelectionForeground": "#eef0f9", + "breadcrumb.background": "#17191e", + "breadcrumb.focusForeground": "#eef0f9", + "breadcrumb.foreground": "#858b98", + "button.background": "#4bf3c8", + "button.foreground": "#17191e", + "button.hoverBackground": "#31c19c", + "button.secondaryBackground": "#545864", + "button.secondaryForeground": "#eef0f9", + "button.secondaryHoverBackground": "#858b98", + "checkbox.background": "#23262d", + "checkbox.border": "#00000000", + "checkbox.foreground": "#eef0f9", + "debugExceptionWidget.background": "#23262d", + "debugExceptionWidget.border": "#8996d5", + "debugToolBar.background": "#000000", + "debugToolBar.border": "#ffffff00", + "diffEditor.border": "#ffffff00", + "diffEditor.insertedTextBackground": "#4bf3c824", + "diffEditor.removedTextBackground": "#dc365724", + "dropdown.background": "#23262d", + "dropdown.border": "#00000000", + "dropdown.foreground": "#eef0f9", + "editor.background": "#17191e", + "editor.findMatchBackground": "#515c6a", + "editor.findMatchBorder": "#74879f", + "editor.findMatchHighlightBackground": "#ea5c0055", + "editor.findMatchHighlightBorder": "#ffffff00", + "editor.findRangeHighlightBackground": "#23262d", + "editor.findRangeHighlightBorder": "#b2434300", + "editor.foldBackground": "#ad5dca26", + "editor.foreground": "#eef0f9", + "editor.hoverHighlightBackground": "#5495d740", + "editor.inactiveSelectionBackground": "#2a2d34", + "editor.lineHighlightBackground": "#23262d", + "editor.lineHighlightBorder": "#ffffff00", + "editor.rangeHighlightBackground": "#ffffff0b", + "editor.rangeHighlightBorder": "#ffffff00", + "editor.selectionBackground": "#ad5dca44", + "editor.selectionHighlightBackground": "#add6ff34", + "editor.selectionHighlightBorder": "#495f77", + "editor.wordHighlightBackground": "#494949b8", + "editor.wordHighlightStrongBackground": "#004972b8", + "editorBracketMatch.background": "#545864", + "editorBracketMatch.border": "#ffffff00", + "editorCodeLens.foreground": "#bfc1c9", + "editorCursor.background": "#000000", + "editorCursor.foreground": "#aeafad", + "editorError.background": "#ffffff00", + "editorError.border": "#ffffff00", + "editorError.foreground": "#f4587e", + "editorGroup.border": "#343841", + "editorGroup.emptyBackground": "#17191e", + "editorGroupHeader.border": "#ffffff00", + "editorGroupHeader.tabsBackground": "#23262d", + "editorGroupHeader.tabsBorder": "#ffffff00", + "editorGutter.addedBackground": "#4bf3c8", + "editorGutter.background": "#17191e", + "editorGutter.commentRangeForeground": "#545864", + "editorGutter.deletedBackground": "#f06788", + "editorGutter.foldingControlForeground": "#545864", + "editorGutter.modifiedBackground": "#54b9ff", + "editorHoverWidget.background": "#252526", + "editorHoverWidget.border": "#454545", + "editorHoverWidget.foreground": "#cccccc", + "editorIndentGuide.activeBackground": "#858b98", + "editorIndentGuide.background": "#343841", + "editorInfo.background": "#4490bf00", + "editorInfo.border": "#4490bf00", + "editorInfo.foreground": "#54b9ff", + "editorLineNumber.activeForeground": "#858b98", + "editorLineNumber.foreground": "#545864", + "editorLink.activeForeground": "#54b9ff", + "editorMarkerNavigation.background": "#23262d", + "editorMarkerNavigationError.background": "#dc3657", + "editorMarkerNavigationInfo.background": "#54b9ff", + "editorMarkerNavigationWarning.background": "#ffd493", + "editorOverviewRuler.background": "#ffffff00", + "editorOverviewRuler.border": "#ffffff00", + "editorRuler.foreground": "#545864", + "editorSuggestWidget.background": "#252526", + "editorSuggestWidget.border": "#454545", + "editorSuggestWidget.foreground": "#d4d4d4", + "editorSuggestWidget.highlightForeground": "#0097fb", + "editorSuggestWidget.selectedBackground": "#062f4a", + "editorWarning.background": "#a9904000", + "editorWarning.border": "#ffffff00", + "editorWarning.foreground": "#fbc23b", + "editorWhitespace.foreground": "#cc75f450", + "editorWidget.background": "#343841", + "editorWidget.foreground": "#ffffff", + "editorWidget.resizeBorder": "#cc75f4", + "focusBorder": "#00daef", + "foreground": "#cccccc", + "gitDecoration.addedResourceForeground": "#4bf3c8", + "gitDecoration.conflictingResourceForeground": "#00daef", + "gitDecoration.deletedResourceForeground": "#f4587e", + "gitDecoration.ignoredResourceForeground": "#858b98", + "gitDecoration.modifiedResourceForeground": "#ffd493", + "gitDecoration.stageDeletedResourceForeground": "#c74e39", + "gitDecoration.stageModifiedResourceForeground": "#ffd493", + "gitDecoration.submoduleResourceForeground": "#54b9ff", + "gitDecoration.untrackedResourceForeground": "#4bf3c8", + "icon.foreground": "#cccccc", + "input.background": "#23262d", + "input.border": "#bfc1c9", + "input.foreground": "#eef0f9", + "input.placeholderForeground": "#858b98", + "inputOption.activeBackground": "#54b9ff", + "inputOption.activeBorder": "#007acc00", + "inputOption.activeForeground": "#17191e", + "list.activeSelectionBackground": "#2d4860", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#17191e", + "list.focusBackground": "#54b9ff", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#343841", + "list.hoverForeground": "#eef0f9", + "list.inactiveSelectionBackground": "#17191e", + "list.inactiveSelectionForeground": "#eef0f9", + "listFilterWidget.background": "#2d4860", + "listFilterWidget.noMatchesOutline": "#dc3657", + "listFilterWidget.outline": "#54b9ff", + "menu.background": "#252526", + "menu.border": "#00000085", + "menu.foreground": "#cccccc", + "menu.selectionBackground": "#094771", + "menu.selectionBorder": "#00000000", + "menu.selectionForeground": "#4bf3c8", + "menu.separatorBackground": "#bbbbbb", + "menubar.selectionBackground": "#ffffff1a", + "menubar.selectionForeground": "#cccccc", + "merge.commonContentBackground": "#282828", + "merge.commonHeaderBackground": "#383838", + "merge.currentContentBackground": "#27403b", + "merge.currentHeaderBackground": "#367366", + "merge.incomingContentBackground": "#28384b", + "merge.incomingHeaderBackground": "#395f8f", + "minimap.background": "#17191e", + "minimap.errorHighlight": "#dc3657", + "minimap.findMatchHighlight": "#515c6a", + "minimap.selectionHighlight": "#3757b942", + "minimap.warningHighlight": "#fbc23b", + "minimapGutter.addedBackground": "#4bf3c8", + "minimapGutter.deletedBackground": "#f06788", + "minimapGutter.modifiedBackground": "#54b9ff", + "notificationCenter.border": "#ffffff00", + "notificationCenterHeader.background": "#343841", + "notificationCenterHeader.foreground": "#17191e", + "notificationToast.border": "#ffffff00", + "notifications.background": "#343841", + "notifications.border": "#bfc1c9", + "notifications.foreground": "#ffffff", + "notificationsErrorIcon.foreground": "#f4587e", + "notificationsInfoIcon.foreground": "#54b9ff", + "notificationsWarningIcon.foreground": "#ff8551", + "panel.background": "#23262d", + "panel.border": "#17191e", + "panelSection.border": "#17191e", + "panelTitle.activeBorder": "#e7e7e7", + "panelTitle.activeForeground": "#eef0f9", + "panelTitle.inactiveForeground": "#bfc1c9", + "peekView.border": "#007acc", + "peekViewEditor.background": "#001f33", + "peekViewEditor.matchHighlightBackground": "#ff8f0099", + "peekViewEditor.matchHighlightBorder": "#ee931e", + "peekViewEditorGutter.background": "#001f33", + "peekViewResult.background": "#252526", + "peekViewResult.fileForeground": "#ffffff", + "peekViewResult.lineForeground": "#bbbbbb", + "peekViewResult.matchHighlightBackground": "#ff0000", + "peekViewResult.selectionBackground": "#3399ff33", + "peekViewResult.selectionForeground": "#ffffff", + "peekViewTitle.background": "#1e1e1e", + "peekViewTitleDescription.foreground": "#ccccccb3", + "peekViewTitleLabel.foreground": "#ffffff", + "pickerGroup.border": "#ffffff00", + "pickerGroup.foreground": "#eef0f9", + "progressBar.background": "#4bf3c8", + "scrollbar.shadow": "#000000", + "scrollbarSlider.activeBackground": "#54b9ff66", + "scrollbarSlider.background": "#54586466", + "scrollbarSlider.hoverBackground": "#545864b3", + "selection.background": "#00daef56", + "settings.focusedRowBackground": "#ffffff07", + "settings.headerForeground": "#cccccc", + "sideBar.background": "#23262d", + "sideBar.border": "#17191e", + "sideBar.dropBackground": "#17191e", + "sideBar.foreground": "#bfc1c9", + "sideBarSectionHeader.background": "#343841", + "sideBarSectionHeader.border": "#17191e", + "sideBarSectionHeader.foreground": "#eef0f9", + "sideBarTitle.foreground": "#eef0f9", + "statusBar.background": "#17548b", + "statusBar.debuggingBackground": "#cc75f4", + "statusBar.debuggingForeground": "#eef0f9", + "statusBar.foreground": "#eef0f9", + "statusBar.noFolderBackground": "#6c3c7d", + "statusBar.noFolderForeground": "#eef0f9", + "statusBarItem.activeBackground": "#ffffff25", + "statusBarItem.hoverBackground": "#ffffff1f", + "statusBarItem.remoteBackground": "#297763", + "statusBarItem.remoteForeground": "#eef0f9", + "tab.activeBackground": "#17191e", + "tab.activeBorder": "#ffffff00", + "tab.activeBorderTop": "#eef0f9", + "tab.activeForeground": "#eef0f9", + "tab.border": "#17191e", + "tab.hoverBackground": "#343841", + "tab.hoverForeground": "#eef0f9", + "tab.inactiveBackground": "#23262d", + "tab.inactiveForeground": "#858b98", + "terminal.ansiBlack": "#17191e", + "terminal.ansiBlue": "#2b7eca", + "terminal.ansiBrightBlack": "#545864", + "terminal.ansiBrightBlue": "#54b9ff", + "terminal.ansiBrightCyan": "#00daef", + "terminal.ansiBrightGreen": "#4bf3c8", + "terminal.ansiBrightMagenta": "#cc75f4", + "terminal.ansiBrightRed": "#f4587e", + "terminal.ansiBrightWhite": "#fafafa", + "terminal.ansiBrightYellow": "#ffd493", + "terminal.ansiCyan": "#24c0cf", + "terminal.ansiGreen": "#23d18b", + "terminal.ansiMagenta": "#ad5dca", + "terminal.ansiRed": "#dc3657", + "terminal.ansiWhite": "#eef0f9", + "terminal.ansiYellow": "#ffc368", + "terminal.border": "#80808059", + "terminal.foreground": "#cccccc", + "terminal.selectionBackground": "#ffffff40", + "terminalCursor.background": "#0087ff", + "terminalCursor.foreground": "#ffffff", + "textLink.foreground": "#54b9ff", + "titleBar.activeBackground": "#17191e", + "titleBar.activeForeground": "#cccccc", + "titleBar.border": "#00000000", + "titleBar.inactiveBackground": "#3c3c3c99", + "titleBar.inactiveForeground": "#cccccc99", + "tree.indentGuidesStroke": "#545864", + "walkThrough.embeddedEditorBackground": "#00000050", + "widget.shadow": "#ffffff00", + //"actionBar.toggledBackground": "#54b9ff", + //"activityBar.activeBorder": "#eef0f9", + //"activityBar.dropBorder": "#eef0f9", + //"banner.background": "#2d4860", + //"banner.foreground": "#ffffff", + //"banner.iconForeground": "#54b9ff", + //"breadcrumbPicker.background": "#343841", + //"button.separator": "#17191e66", + //"charts.blue": "#54b9ff", + //"charts.foreground": "#cccccc", + //"charts.green": "#89d185", + //"charts.lines": "#cccccc80", + //"charts.orange": "#515c6a", + //"charts.purple": "#b180d7", + //"charts.red": "#f4587e", + //"charts.yellow": "#fbc23b", + //"chat.avatarBackground": "#1f1f1f", + //"chat.avatarForeground": "#cccccc", + //"chat.requestBorder": "#ffffff1a", + //"chat.slashCommandBackground": "#34414b", + //"chat.slashCommandForeground": "#40a6ff", + //"checkbox.selectBackground": "#343841", + //"checkbox.selectBorder": "#cccccc", + //"commandCenter.activeBackground": "#ffffff14", + //"commandCenter.activeBorder": "#cccccc4d", + //"commandCenter.activeForeground": "#cccccc", + //"commandCenter.background": "#ffffff0d", + //"commandCenter.border": "#cccccc33", + //"commandCenter.debuggingBackground": "#cc75f442", + //"commandCenter.foreground": "#cccccc", + //"commandCenter.inactiveBorder": "#cccccc26", + //"commandCenter.inactiveForeground": "#cccccc99", + //"commentsView.resolvedIcon": "#cccccc80", + //"commentsView.unresolvedIcon": "#00daef", + //"consoleninja.logTime": "#6a9955", + //"debugConsole.errorForeground": "#f48771", + //"debugConsole.infoForeground": "#54b9ff", + //"debugConsole.sourceForeground": "#cccccc", + //"debugConsole.warningForeground": "#fbc23b", + //"debugConsoleInputIcon.foreground": "#cccccc", + //"debugIcon.breakpointCurrentStackframeForeground": "#ffcc00", + //"debugIcon.breakpointDisabledForeground": "#848484", + //"debugIcon.breakpointForeground": "#e51400", + //"debugIcon.breakpointStackframeForeground": "#89d185", + //"debugIcon.breakpointUnverifiedForeground": "#848484", + //"debugIcon.continueForeground": "#75beff", + //"debugIcon.disconnectForeground": "#f48771", + //"debugIcon.pauseForeground": "#75beff", + //"debugIcon.restartForeground": "#89d185", + //"debugIcon.startForeground": "#89d185", + //"debugIcon.stepBackForeground": "#75beff", + //"debugIcon.stepIntoForeground": "#75beff", + //"debugIcon.stepOutForeground": "#75beff", + //"debugIcon.stepOverForeground": "#75beff", + //"debugIcon.stopForeground": "#f48771", + //"debugTokenExpression.boolean": "#4e94ce", + //"debugTokenExpression.error": "#f48771", + //"debugTokenExpression.name": "#c586c0", + //"debugTokenExpression.number": "#b5cea8", + //"debugTokenExpression.string": "#ce9178", + //"debugTokenExpression.value": "#cccccc99", + //"debugView.exceptionLabelBackground": "#6c2022", + //"debugView.exceptionLabelForeground": "#cccccc", + //"debugView.stateLabelBackground": "#88888844", + //"debugView.stateLabelForeground": "#cccccc", + //"debugView.valueChangedHighlight": "#569cd6", + //"descriptionForeground": "#ccccccb3", + //"diffEditor.diagonalFill": "#cccccc33", + //"diffEditor.insertedLineBackground": "#9bb95533", + //"diffEditor.move.border": "#8b8b8b9c", + //"diffEditor.moveActive.border": "#ffa500", + //"diffEditor.removedLineBackground": "#ff000033", + //"diffEditor.unchangedCodeBackground": "#74747429", + //"diffEditor.unchangedRegionBackground": "#23262d", + //"diffEditor.unchangedRegionForeground": "#cccccc", + //"diffEditor.unchangedRegionShadow": "#000000", + //"disabledForeground": "#cccccc80", + //"editor.focusedStackFrameHighlightBackground": "#7abd7a4d", + //"editor.inlineValuesBackground": "#ffc80033", + //"editor.inlineValuesForeground": "#ffffff80", + //"editor.linkedEditingBackground": "#ff00004d", + //"editor.snippetFinalTabstopHighlightBorder": "#525252", + //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", + //"editor.stackFrameHighlightBackground": "#ffff0033", + //"editor.symbolHighlightBackground": "#ea5c0055", + //"editor.wordHighlightTextBackground": "#494949b8", + //"editorActiveLineNumber.foreground": "#c6c6c6", + //"editorBracketHighlight.foreground1": "#ffd700", + //"editorBracketHighlight.foreground2": "#da70d6", + //"editorBracketHighlight.foreground3": "#179fff", + //"editorBracketHighlight.foreground4": "#00000000", + //"editorBracketHighlight.foreground5": "#00000000", + //"editorBracketHighlight.foreground6": "#00000000", + //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", + //"editorBracketPairGuide.activeBackground1": "#00000000", + //"editorBracketPairGuide.activeBackground2": "#00000000", + //"editorBracketPairGuide.activeBackground3": "#00000000", + //"editorBracketPairGuide.activeBackground4": "#00000000", + //"editorBracketPairGuide.activeBackground5": "#00000000", + //"editorBracketPairGuide.activeBackground6": "#00000000", + //"editorBracketPairGuide.background1": "#00000000", + //"editorBracketPairGuide.background2": "#00000000", + //"editorBracketPairGuide.background3": "#00000000", + //"editorBracketPairGuide.background4": "#00000000", + //"editorBracketPairGuide.background5": "#00000000", + //"editorBracketPairGuide.background6": "#00000000", + //"editorCommentsWidget.rangeActiveBackground": "#00daef1a", + //"editorCommentsWidget.rangeBackground": "#00daef1a", + //"editorCommentsWidget.replyInputBackground": "#1e1e1e", + //"editorCommentsWidget.resolvedBorder": "#cccccc80", + //"editorCommentsWidget.unresolvedBorder": "#00daef", + //"editorGhostText.foreground": "#ffffff56", + //"editorGroup.dropBackground": "#53595d80", + //"editorGroup.dropIntoPromptBackground": "#343841", + //"editorGroup.dropIntoPromptForeground": "#ffffff", + //"editorGroupHeader.noTabsBackground": "#17191e", + //"editorGutter.commentGlyphForeground": "#eef0f9", + //"editorGutter.commentUnresolvedGlyphForeground": "#eef0f9", + //"editorHint.foreground": "#eeeeeeb3", + //"editorHoverWidget.highlightForeground": "#ffffff", + //"editorHoverWidget.statusBarBackground": "#2c2c2d", + //"editorIndentGuide.activeBackground1": "#858b98", + //"editorIndentGuide.activeBackground2": "#00000000", + //"editorIndentGuide.activeBackground3": "#00000000", + //"editorIndentGuide.activeBackground4": "#00000000", + //"editorIndentGuide.activeBackground5": "#00000000", + //"editorIndentGuide.activeBackground6": "#00000000", + //"editorIndentGuide.background1": "#343841", + //"editorIndentGuide.background2": "#00000000", + //"editorIndentGuide.background3": "#00000000", + //"editorIndentGuide.background4": "#00000000", + //"editorIndentGuide.background5": "#00000000", + //"editorIndentGuide.background6": "#00000000", + //"editorInlayHint.background": "#bfc1c91a", + //"editorInlayHint.foreground": "#969696", + //"editorInlayHint.parameterBackground": "#bfc1c91a", + //"editorInlayHint.parameterForeground": "#969696", + //"editorInlayHint.typeBackground": "#bfc1c91a", + //"editorInlayHint.typeForeground": "#969696", + //"editorLightBulb.foreground": "#ffcc00", + //"editorLightBulbAi.foreground": "#7a7a7a", + //"editorLightBulbAutoFix.foreground": "#75beff", + //"editorMarkerNavigationError.headerBackground": "#dc36571a", + //"editorMarkerNavigationInfo.headerBackground": "#54b9ff1a", + //"editorMarkerNavigationWarning.headerBackground": "#ffd4931a", + //"editorOverviewRuler.addedForeground": "#4bf3c899", + //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", + //"editorOverviewRuler.commentForeground": "#545864", + //"editorOverviewRuler.commentUnresolvedForeground": "#545864", + //"editorOverviewRuler.commonContentForeground": "#383838", + //"editorOverviewRuler.currentContentForeground": "#367366", + //"editorOverviewRuler.deletedForeground": "#f0678899", + //"editorOverviewRuler.errorForeground": "#ff1212b3", + //"editorOverviewRuler.findMatchForeground": "#d186167e", + //"editorOverviewRuler.incomingContentForeground": "#395f8f", + //"editorOverviewRuler.infoForeground": "#54b9ff", + //"editorOverviewRuler.modifiedForeground": "#54b9ff99", + //"editorOverviewRuler.rangeHighlightForeground": "#007acc99", + //"editorOverviewRuler.selectionHighlightForeground": "#a0a0a0cc", + //"editorOverviewRuler.warningForeground": "#fbc23b", + //"editorOverviewRuler.wordHighlightForeground": "#a0a0a0cc", + //"editorOverviewRuler.wordHighlightStrongForeground": "#c0a0c0cc", + //"editorOverviewRuler.wordHighlightTextForeground": "#a0a0a0cc", + //"editorPane.background": "#17191e", + //"editorStickyScroll.background": "#17191e", + //"editorStickyScrollHover.background": "#2a2d2e", + //"editorSuggestWidget.focusHighlightForeground": "#ffffff", + //"editorSuggestWidget.selectedForeground": "#ffffff", + //"editorSuggestWidgetStatus.foreground": "#d4d4d480", + //"editorUnicodeHighlight.background": "#bd9b0326", + //"editorUnicodeHighlight.border": "#bd9b03", + //"editorUnnecessaryCode.opacity": "#000000aa", + //"editorWidget.border": "#454545", + //"errorForeground": "#f48771", + //"extensionBadge.remoteBackground": "#4bf3c8", + //"extensionBadge.remoteForeground": "#000000", + //"extensionButton.background": "#4bf3c8", + //"extensionButton.foreground": "#17191e", + //"extensionButton.hoverBackground": "#31c19c", + //"extensionButton.prominentBackground": "#4bf3c8", + //"extensionButton.prominentForeground": "#17191e", + //"extensionButton.prominentHoverBackground": "#31c19c", + //"extensionButton.separator": "#17191e66", + //"extensionIcon.preReleaseForeground": "#1d9271", + //"extensionIcon.sponsorForeground": "#d758b3", + //"extensionIcon.starForeground": "#ff8e00", + //"extensionIcon.verifiedForeground": "#54b9ff", + //"gitDecoration.renamedResourceForeground": "#73c991", + //"inlineChat.background": "#343841", + //"inlineChat.border": "#454545", + //"inlineChat.regionHighlight": "#5495d740", + //"inlineChat.shadow": "#ffffff00", + //"inlineChatDiff.inserted": "#4bf3c812", + //"inlineChatDiff.removed": "#dc365712", + //"inlineChatInput.background": "#23262d", + //"inlineChatInput.border": "#454545", + //"inlineChatInput.focusBorder": "#00daef", + //"inlineChatInput.placeholderForeground": "#858b98", + //"inputOption.hoverBackground": "#5a5d5e80", + //"inputValidation.errorBackground": "#5a1d1d", + //"inputValidation.errorBorder": "#be1100", + //"inputValidation.infoBackground": "#063b49", + //"inputValidation.infoBorder": "#007acc", + //"inputValidation.warningBackground": "#352a05", + //"inputValidation.warningBorder": "#b89500", + //"interactive.activeCodeBorder": "#007acc", + //"interactive.inactiveCodeBorder": "#17191e", + //"keybindingLabel.background": "#8080802b", + //"keybindingLabel.border": "#33333399", + //"keybindingLabel.bottomBorder": "#44444499", + //"keybindingLabel.foreground": "#cccccc", + //"keybindingTable.headerBackground": "#cccccc0a", + //"keybindingTable.rowsBackground": "#cccccc0a", + //"list.deemphasizedForeground": "#8c8c8c", + //"list.errorForeground": "#f88070", + //"list.filterMatchBackground": "#ea5c0055", + //"list.filterMatchBorder": "#ffffff00", + //"list.focusHighlightForeground": "#ffffff", + //"list.focusOutline": "#00daef", + //"list.invalidItemForeground": "#b89500", + //"list.warningForeground": "#cca700", + //"listFilterWidget.shadow": "#ffffff00", + //"markdown.extension.editor.codeSpan.background": "#00000000", + //"markdown.extension.editor.codeSpan.border": "#ad5dca44", + //"markdown.extension.editor.formattingMark.foreground": "#cc75f450", + //"markdown.extension.editor.trailingSpace.background": "#cccccc33", + //"mergeEditor.change.background": "#9bb95533", + //"mergeEditor.change.word.background": "#9ccc2c33", + //"mergeEditor.changeBase.background": "#4b1818", + //"mergeEditor.changeBase.word.background": "#6f1313", + //"mergeEditor.conflict.handled.minimapOverViewRuler": "#adaca8ee", + //"mergeEditor.conflict.handledFocused.border": "#c1c1c1cc", + //"mergeEditor.conflict.handledUnfocused.border": "#86868649", + //"mergeEditor.conflict.input1.background": "#36736666", + //"mergeEditor.conflict.input2.background": "#395f8f66", + //"mergeEditor.conflict.unhandled.minimapOverViewRuler": "#fcba03", + //"mergeEditor.conflict.unhandledFocused.border": "#ffa600", + //"mergeEditor.conflict.unhandledUnfocused.border": "#ffa6007a", + //"mergeEditor.conflictingLines.background": "#ffea0047", + //"minimap.foregroundOpacity": "#000000", + //"minimap.infoHighlight": "#54b9ff", + //"minimap.selectionOccurrenceHighlight": "#676767", + //"minimapSlider.activeBackground": "#54b9ff33", + //"minimapSlider.background": "#54586433", + //"minimapSlider.hoverBackground": "#5458645a", + //"multiDiffEditor.headerBackground": "#808080", + //"notebook.cellBorderColor": "#17191e", + //"notebook.cellEditorBackground": "#23262d", + //"notebook.cellInsertionIndicator": "#00daef", + //"notebook.cellStatusBarItemHoverBackground": "#ffffff26", + //"notebook.cellToolbarSeparator": "#80808059", + //"notebook.editorBackground": "#17191e", + //"notebook.focusedCellBorder": "#00daef", + //"notebook.focusedEditorBorder": "#00daef", + //"notebook.inactiveFocusedCellBorder": "#17191e", + //"notebook.selectedCellBackground": "#17191e", + //"notebook.selectedCellBorder": "#17191e", + //"notebook.symbolHighlightBackground": "#ffffff0b", + //"notebookEditorOverviewRuler.runningCellForeground": "#89d185", + //"notebookScrollbarSlider.activeBackground": "#54b9ff66", + //"notebookScrollbarSlider.background": "#54586466", + //"notebookScrollbarSlider.hoverBackground": "#545864b3", + //"notebookStatusErrorIcon.foreground": "#f48771", + //"notebookStatusRunningIcon.foreground": "#cccccc", + //"notebookStatusSuccessIcon.foreground": "#89d185", + //"notificationLink.foreground": "#54b9ff", + //"panel.dropBorder": "#eef0f9", + //"panelInput.border": "#bfc1c9", + //"panelSection.dropBackground": "#53595d80", + //"panelSectionHeader.background": "#80808033", + //"peekViewEditorStickyScroll.background": "#001f33", + //"ports.iconRunningProcessForeground": "#297763", + //"problemsErrorIcon.foreground": "#f4587e", + //"problemsInfoIcon.foreground": "#54b9ff", + //"problemsWarningIcon.foreground": "#fbc23b", + //"profileBadge.background": "#4d4d4d", + //"profileBadge.foreground": "#ffffff", + //"quickInput.background": "#343841", + //"quickInput.foreground": "#ffffff", + //"quickInputList.focusBackground": "#2d4860", + //"quickInputList.focusForeground": "#ffffff", + //"quickInputTitle.background": "#ffffff1b", + //"remoteHub.decorations.addedForegroundColor": "#81b88b", + //"remoteHub.decorations.conflictForegroundColor": "#e4676b", + //"remoteHub.decorations.deletedForegroundColor": "#c74e39", + //"remoteHub.decorations.ignoredResourceForeground": "#8c8c8c", + //"remoteHub.decorations.incomingAddedForegroundColor": "#81b88b", + //"remoteHub.decorations.incomingDeletedForegroundColor": "#c74e39", + //"remoteHub.decorations.incomingModifiedForegroundColor": "#e2c08d", + //"remoteHub.decorations.incomingRenamedForegroundColor": "#73c991", + //"remoteHub.decorations.modifiedForegroundColor": "#e2c08d", + //"remoteHub.decorations.possibleConflictForegroundColor": "#cca700", + //"remoteHub.decorations.submoduleForegroundColor": "#8db9e2", + //"remoteHub.decorations.workspaceRepositoriesView.hasUncommittedChangesForegroundColor": "#e2c08d", + //"sash.hoverBorder": "#00daef", + //"scm.historyItemAdditionsForeground": "#4bf3c8", + //"scm.historyItemDeletionsForeground": "#f4587e", + //"scm.historyItemSelectedStatisticsBorder": "#ffffff33", + //"scm.historyItemStatisticsBorder": "#cccccc33", + //"search.resultsInfoForeground": "#cccccca6", + //"searchEditor.findMatchBackground": "#ea5c0038", + //"searchEditor.findMatchBorder": "#ffffff00", + //"searchEditor.textInputBorder": "#bfc1c9", + //"settings.checkboxBackground": "#23262d", + //"settings.checkboxBorder": "#00000000", + //"settings.checkboxForeground": "#eef0f9", + //"settings.dropdownBackground": "#23262d", + //"settings.dropdownBorder": "#00000000", + //"settings.dropdownForeground": "#eef0f9", + //"settings.dropdownListBorder": "#454545", + //"settings.focusedRowBorder": "#00daef", + //"settings.headerBorder": "#17191e", + //"settings.modifiedItemIndicator": "#0c7d9d", + //"settings.numberInputBackground": "#23262d", + //"settings.numberInputBorder": "#bfc1c9", + //"settings.numberInputForeground": "#eef0f9", + //"settings.rowHoverBackground": "#3438414d", + //"settings.sashBorder": "#17191e", + //"settings.settingsHeaderHoverForeground": "#ccccccb3", + //"settings.textInputBackground": "#23262d", + //"settings.textInputBorder": "#bfc1c9", + //"settings.textInputForeground": "#eef0f9", + //"sideBySideEditor.horizontalBorder": "#343841", + //"sideBySideEditor.verticalBorder": "#343841", + //"simpleFindWidget.sashBorder": "#454545", + //"statusBar.focusBorder": "#eef0f9", + //"statusBarItem.compactHoverBackground": "#ffffff33", + //"statusBarItem.errorBackground": "#c72e0f", + //"statusBarItem.errorForeground": "#ffffff", + //"statusBarItem.errorHoverBackground": "#ffffff1f", + //"statusBarItem.errorHoverForeground": "#eef0f9", + //"statusBarItem.focusBorder": "#eef0f9", + //"statusBarItem.hoverForeground": "#eef0f9", + //"statusBarItem.offlineBackground": "#6c1717", + //"statusBarItem.offlineForeground": "#eef0f9", + //"statusBarItem.offlineHoverBackground": "#ffffff1f", + //"statusBarItem.offlineHoverForeground": "#eef0f9", + //"statusBarItem.prominentBackground": "#00000080", + //"statusBarItem.prominentForeground": "#eef0f9", + //"statusBarItem.prominentHoverBackground": "#0000004d", + //"statusBarItem.prominentHoverForeground": "#eef0f9", + //"statusBarItem.remoteHoverBackground": "#ffffff1f", + //"statusBarItem.remoteHoverForeground": "#eef0f9", + //"statusBarItem.warningBackground": "#b68104", + //"statusBarItem.warningForeground": "#ffffff", + //"statusBarItem.warningHoverBackground": "#ffffff1f", + //"statusBarItem.warningHoverForeground": "#eef0f9", + //"symbolIcon.arrayForeground": "#cccccc", + //"symbolIcon.booleanForeground": "#cccccc", + //"symbolIcon.classForeground": "#ee9d28", + //"symbolIcon.colorForeground": "#cccccc", + //"symbolIcon.constantForeground": "#cccccc", + //"symbolIcon.constructorForeground": "#b180d7", + //"symbolIcon.enumeratorForeground": "#ee9d28", + //"symbolIcon.enumeratorMemberForeground": "#75beff", + //"symbolIcon.eventForeground": "#ee9d28", + //"symbolIcon.fieldForeground": "#75beff", + //"symbolIcon.fileForeground": "#cccccc", + //"symbolIcon.folderForeground": "#cccccc", + //"symbolIcon.functionForeground": "#b180d7", + //"symbolIcon.interfaceForeground": "#75beff", + //"symbolIcon.keyForeground": "#cccccc", + //"symbolIcon.keywordForeground": "#cccccc", + //"symbolIcon.methodForeground": "#b180d7", + //"symbolIcon.moduleForeground": "#cccccc", + //"symbolIcon.namespaceForeground": "#cccccc", + //"symbolIcon.nullForeground": "#cccccc", + //"symbolIcon.numberForeground": "#cccccc", + //"symbolIcon.objectForeground": "#cccccc", + //"symbolIcon.operatorForeground": "#cccccc", + //"symbolIcon.packageForeground": "#cccccc", + //"symbolIcon.propertyForeground": "#cccccc", + //"symbolIcon.referenceForeground": "#cccccc", + //"symbolIcon.snippetForeground": "#cccccc", + //"symbolIcon.stringForeground": "#cccccc", + //"symbolIcon.structForeground": "#cccccc", + //"symbolIcon.textForeground": "#cccccc", + //"symbolIcon.typeParameterForeground": "#cccccc", + //"symbolIcon.unitForeground": "#cccccc", + //"symbolIcon.variableForeground": "#75beff", + //"tab.activeModifiedBorder": "#3399cc", + //"tab.inactiveModifiedBorder": "#3399cc80", + //"tab.lastPinnedBorder": "#545864", + //"tab.unfocusedActiveBackground": "#17191e", + //"tab.unfocusedActiveBorder": "#ffffff00", + //"tab.unfocusedActiveBorderTop": "#eef0f980", + //"tab.unfocusedActiveForeground": "#eef0f980", + //"tab.unfocusedActiveModifiedBorder": "#3399cc80", + //"tab.unfocusedHoverBackground": "#34384180", + //"tab.unfocusedHoverForeground": "#eef0f980", + //"tab.unfocusedInactiveBackground": "#23262d", + //"tab.unfocusedInactiveForeground": "#858b9880", + //"tab.unfocusedInactiveModifiedBorder": "#3399cc40", + //"terminal.dropBackground": "#53595d80", + //"terminal.findMatchBackground": "#515c6a", + //"terminal.findMatchHighlightBackground": "#ea5c0055", + //"terminal.hoverHighlightBackground": "#5495d720", + //"terminal.inactiveSelectionBackground": "#ffffff20", + //"terminal.tab.activeBorder": "#ffffff00", + //"terminalCommandDecoration.defaultBackground": "#ffffff40", + //"terminalCommandDecoration.errorBackground": "#f14c4c", + //"terminalCommandDecoration.successBackground": "#1b81a8", + //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", + //"terminalOverviewRuler.findMatchForeground": "#d186167e", + //"terminalStickyScrollHover.background": "#2a2d2e", + //"testing.iconErrored": "#f14c4c", + //"testing.iconFailed": "#f14c4c", + //"testing.iconPassed": "#73c991", + //"testing.iconQueued": "#cca700", + //"testing.iconSkipped": "#848484", + //"testing.iconUnset": "#848484", + //"testing.message.error.decorationForeground": "#f4587e", + //"testing.message.error.lineBackground": "#ff000033", + //"testing.message.info.decorationForeground": "#eef0f980", + //"testing.peekBorder": "#f4587e", + //"testing.peekHeaderBackground": "#f4587e1a", + //"testing.runAction": "#73c991", + //"textBlockQuote.background": "#222222", + //"textBlockQuote.border": "#007acc80", + //"textCodeBlock.background": "#0a0a0a66", + //"textLink.activeForeground": "#3794ff", + //"textPreformat.background": "#ffffff1a", + //"textPreformat.foreground": "#d7ba7d", + //"textSeparator.foreground": "#ffffff2e", + //"toolbar.activeBackground": "#63666750", + //"toolbar.hoverBackground": "#5a5d5e50", + //"tree.inactiveIndentGuidesStroke": "#54586466", + //"tree.tableColumnsBorder": "#cccccc20", + //"tree.tableOddRowsBackground": "#cccccc0a", + //"walkthrough.stepTitle.foreground": "#ffffff", + //"welcomePage.progress.background": "#23262d", + //"welcomePage.progress.foreground": "#54b9ff", + //"welcomePage.tileBackground": "#343841", + //"welcomePage.tileBorder": "#ffffff1a", + //"welcomePage.tileHoverBackground": "#3e434e", + //"activityBar.activeFocusBorder": null, + //"button.border": null, + //"contrastActiveBorder": null, + //"contrastBorder": null, + //"diffEditor.insertedTextBorder": null, + //"diffEditor.removedTextBorder": null, + //"diffEditorGutter.insertedLineBackground": null, + //"diffEditorGutter.removedLineBackground": null, + //"diffEditorOverview.insertedForeground": null, + //"diffEditorOverview.removedForeground": null, + //"dropdown.listBackground": null, + //"editor.selectionForeground": null, + //"editor.snippetFinalTabstopHighlightBackground": null, + //"editor.snippetTabstopHighlightBorder": null, + //"editor.symbolHighlightBorder": null, + //"editor.wordHighlightBorder": null, + //"editor.wordHighlightStrongBorder": null, + //"editor.wordHighlightTextBorder": null, + //"editorGhostText.background": null, + //"editorGhostText.border": null, + //"editorGroup.dropIntoPromptBorder": null, + //"editorGroup.focusedEmptyBorder": null, + //"editorHint.border": null, + //"editorLineNumber.dimmedForeground": null, + //"editorSuggestWidget.selectedIconForeground": null, + //"editorUnnecessaryCode.border": null, + //"inputValidation.errorForeground": null, + //"inputValidation.infoForeground": null, + //"inputValidation.warningForeground": null, + //"list.activeSelectionIconForeground": null, + //"list.focusAndSelectionOutline": null, + //"list.inactiveFocusBackground": null, + //"list.inactiveFocusOutline": null, + //"list.inactiveSelectionIconForeground": null, + //"menubar.selectionBorder": null, + //"merge.border": null, + //"notebook.cellHoverBackground": null, + //"notebook.focusedCellBackground": null, + //"notebook.inactiveSelectedCellBorder": null, + //"notebook.outputContainerBackgroundColor": null, + //"notebook.outputContainerBorderColor": null, + //"panelSectionHeader.border": null, + //"panelSectionHeader.foreground": null, + //"quickInput.list.focusBackground": null, + //"quickInputList.focusIconForeground": null, + //"statusBar.border": null, + //"statusBar.debuggingBorder": null, + //"statusBar.noFolderBorder": null, + //"tab.hoverBorder": null, + //"tab.unfocusedHoverBorder": null, + //"terminal.background": null, + //"terminal.findMatchBorder": null, + //"terminal.findMatchHighlightBorder": null, + //"terminal.selectionForeground": null, + //"terminalStickyScroll.background": null, + //"testing.message.info.lineBackground": null, + //"toolbar.hoverOutline": null, + //"welcomePage.background": null, + //"widget.border": null, + //"window.activeBorder": null, + //"window.inactiveBorder": null + }, + "tokenColors": [ + { + "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "variable.other.generic-type.haskell", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "storage.type.haskell", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.variable.magic.python", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "variable.parameter.function.language.special.self.python", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "storage.modifier.lifetime.rust", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.function.std.rust", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable.language.rust", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.constant.edge", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.string.begin,punctuation.definition.string.end", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "comment markup.link", + "settings": { + "foreground": "#545864" + } + }, + { + "scope": "markup.changed.diff", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "meta.function.c,meta.function.cpp", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.expression.import", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "support.constant.math", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.constant.property.math", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "source.java", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "meta.method.java", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.operator.instanceof.java", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "meta.definition.variable.name.java", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.channel", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.property-value.scss,support.constant.property-value.css", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.separator.list.comma.css", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.color.w3c-standard-color-name.css", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.type.vendored.property-name.css", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.module.node,support.type.object.module,support.module.node", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.type.module", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.constant.json", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.operator.expression.instanceof", + "keyword.operator.new", + "keyword.operator.ternary", + "keyword.operator.optional", + "keyword.operator.expression.keyof" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.object.console", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.variable.property.process", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.function,support.function.console", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.operator.misc.rust", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.sigil.rust", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.delete", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.object.dom", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.variable.dom,support.variable.property.dom", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "punctuation.separator.delimiter", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.separator.c,punctuation.separator.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "variable.parameter.function.language.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "variable.parameter.function.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "constant.character.format.placeholder.other.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.assignment.compound", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "variable.c", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "variable.language", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "token.variable.parameter.java", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "import.storage.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "token.package.keyword", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.package", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "entity.name.function", + "meta.require", + "support.function.any-method", + "variable.function" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "entity.name.type.namespace", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.class, entity.name.type.class", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.class.identifier.namespace.type", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.class", + "variable.other.class.js", + "variable.other.class.ts" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable.other.class.php", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "control.elements, keyword.operator.less", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.other.special-method", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.storage", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.storage.type.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.function", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.property-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.font-name", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "meta.tag", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "constant.other.symbol", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.numeric", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.constant", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.other.attribute-name.html", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "source.astro.meta.attribute.client:idle.html", + "settings": { + "foreground": "#FFD493", + "fontStyle": "italic" + } + }, + { + "scope": "string.quoted.double.html,string.quoted.single.html,string.template.html,punctuation.definition.string.begin.html,punctuation.definition.string.end.html", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#00DAEF", + "fontStyle": "normal" + } + }, + { + "scope": "entity.other.attribute-name.class.css", + "settings": { + "foreground": "#4BF3C8", + "fontStyle": "normal" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.heading punctuation.definition.heading, entity.name.section", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.bold,todo.bold", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.bold", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "emphasis md", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.name.section.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.heading.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.heading.setext", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.definition.bold.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.list.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.metadata.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "beginning.punctuation.definition.list.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.section.embedded, variable.interpolation", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.illegal.bad-ampersand.html", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "invalid.broken", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { + "foreground": "#CC75F4" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.type.property-name.json punctuation", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.operator.error-control.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.type.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "punctuation.section.array.begin.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.section.array.end.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.goto-label.php,support.other.php", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.regexp.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.comparison.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "meta.function.decorator.python", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.parameter", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.brace", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.parameter.ruby, function.parameter.cs", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "rgb-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "inline-color-decoration rgb-value", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "less rgb-value", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "selector.sass", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "block.scope.end,block.scope.begin", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "storage.type.cs", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "meta.template.expression" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "keyword.operator.module" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "support.type.type.flowtype" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "support.type.primitive" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.property.object" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "variable.parameter.function.js" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "keyword.other.template.begin" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.template.end" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.substitution.begin" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.substitution.end" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.operator.assignment" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "keyword.operator.assignment.go" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "keyword.operator.arithmetic.go", + "keyword.operator.address.go" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "entity.name.package.go" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "support.type.prelude.elm" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "support.constant.elm" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "punctuation.quasi.element" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "constant.character.entity" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "entity.global.clojure" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.symbol.clojure" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "constant.keyword.clojure" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "meta.arguments.coffee", + "variable.parameter.function.coffee" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "source.ini" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "meta.scope.prerequisites.makefile" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "source.makefile" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "storage.modifier.import.groovy" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.method.groovy" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "meta.definition.variable.name.groovy" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "meta.definition.class.inherited.classes.groovy" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "support.variable.semantic.hlsl" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "text.variable", + "text.bracketed" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "support.type.swift", + "support.type.vb.asp" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.function.xi" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.class.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "constant.character.character-class.regexp.xi" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "constant.regexp.xi" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "keyword.control.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "invalid.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "beginning.punctuation.definition.quote.markdown.xi" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "beginning.punctuation.definition.list.markdown.xi" + ], + "settings": { + "foreground": "#EEF0F98F" + } + }, + { + "scope": [ + "constant.character.xi" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "accent.xi" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "wikiword.xi" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "constant.other.color.rgb-value.xi" + ], + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": [ + "punctuation.definition.tag.xi" + ], + "settings": { + "foreground": "#545864" + } + }, + { + "scope": [ + "entity.name.label.cs", + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.label.cs", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + " meta.brace.square" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "comment, punctuation.definition.comment", + "settings": { + "foreground": "#EEF0F98F", + "fontStyle": "italic" + } + }, + { + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#EEF0F98F" + } + }, + { + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "constant.language.symbol.elixir" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "comment.line.double-slash,comment.block.documentation", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "keyword.control.import.python,keyword.control.flow.python", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + } + ] +} \ No newline at end of file diff --git a/www/package.json b/www/package.json new file mode 100644 index 00000000..e6863c0c --- /dev/null +++ b/www/package.json @@ -0,0 +1,20 @@ +{ + "name": "www", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/check": "^0.4.1", + "@astrojs/starlight": "^0.15.4", + "astro": "^4.2.0", + "sass": "^1.69.5", + "sharp": "^0.32.6", + "typescript": "^5.3.3" + } +} diff --git a/www/public/favicon.ico b/www/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fba93592107b6b0024ed3753a13ae63048d29891 GIT binary patch literal 270398 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ℑ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 literal 0 HcmV?d00001 diff --git a/www/public/favicon.svg b/www/public/favicon.svg new file mode 100644 index 00000000..51eef27e --- /dev/null +++ b/www/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/www/src/assets/favicon.svg b/www/src/assets/favicon.svg new file mode 100644 index 00000000..51eef27e --- /dev/null +++ b/www/src/assets/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/www/src/assets/houston-vscode.jsonc b/www/src/assets/houston-vscode.jsonc new file mode 100644 index 00000000..37e5ea46 --- /dev/null +++ b/www/src/assets/houston-vscode.jsonc @@ -0,0 +1,2369 @@ +{ + "$schema": "vscode://schemas/color-theme", + "type": "dark", + "colors": { + "activityBar.activeBackground": "#343841", + "activityBar.background": "#17191e", + "activityBar.border": "#343841", + "activityBar.foreground": "#eef0f9", + "activityBar.inactiveForeground": "#858b98", + "activityBarBadge.background": "#4bf3c8", + "activityBarBadge.foreground": "#000000", + "badge.background": "#bfc1c9", + "badge.foreground": "#17191e", + "breadcrumb.activeSelectionForeground": "#eef0f9", + "breadcrumb.background": "#17191e", + "breadcrumb.focusForeground": "#eef0f9", + "breadcrumb.foreground": "#858b98", + "button.background": "#4bf3c8", + "button.foreground": "#17191e", + "button.hoverBackground": "#31c19c", + "button.secondaryBackground": "#545864", + "button.secondaryForeground": "#eef0f9", + "button.secondaryHoverBackground": "#858b98", + "checkbox.background": "#23262d", + "checkbox.border": "#00000000", + "checkbox.foreground": "#eef0f9", + "debugExceptionWidget.background": "#23262d", + "debugExceptionWidget.border": "#8996d5", + "debugToolBar.background": "#000000", + "debugToolBar.border": "#ffffff00", + "diffEditor.border": "#ffffff00", + "diffEditor.insertedTextBackground": "#4bf3c824", + "diffEditor.removedTextBackground": "#dc365724", + "dropdown.background": "#23262d", + "dropdown.border": "#00000000", + "dropdown.foreground": "#eef0f9", + "editor.background": "#17191e", + "editor.findMatchBackground": "#515c6a", + "editor.findMatchBorder": "#74879f", + "editor.findMatchHighlightBackground": "#ea5c0055", + "editor.findMatchHighlightBorder": "#ffffff00", + "editor.findRangeHighlightBackground": "#23262d", + "editor.findRangeHighlightBorder": "#b2434300", + "editor.foldBackground": "#ad5dca26", + "editor.foreground": "#eef0f9", + "editor.hoverHighlightBackground": "#5495d740", + "editor.inactiveSelectionBackground": "#2a2d34", + "editor.lineHighlightBackground": "#23262d", + "editor.lineHighlightBorder": "#ffffff00", + "editor.rangeHighlightBackground": "#ffffff0b", + "editor.rangeHighlightBorder": "#ffffff00", + "editor.selectionBackground": "#ad5dca44", + "editor.selectionHighlightBackground": "#add6ff34", + "editor.selectionHighlightBorder": "#495f77", + "editor.wordHighlightBackground": "#494949b8", + "editor.wordHighlightStrongBackground": "#004972b8", + "editorBracketMatch.background": "#545864", + "editorBracketMatch.border": "#ffffff00", + "editorCodeLens.foreground": "#bfc1c9", + "editorCursor.background": "#000000", + "editorCursor.foreground": "#aeafad", + "editorError.background": "#ffffff00", + "editorError.border": "#ffffff00", + "editorError.foreground": "#f4587e", + "editorGroup.border": "#343841", + "editorGroup.emptyBackground": "#17191e", + "editorGroupHeader.border": "#ffffff00", + "editorGroupHeader.tabsBackground": "#23262d", + "editorGroupHeader.tabsBorder": "#ffffff00", + "editorGutter.addedBackground": "#4bf3c8", + "editorGutter.background": "#17191e", + "editorGutter.commentRangeForeground": "#545864", + "editorGutter.deletedBackground": "#f06788", + "editorGutter.foldingControlForeground": "#545864", + "editorGutter.modifiedBackground": "#54b9ff", + "editorHoverWidget.background": "#252526", + "editorHoverWidget.border": "#454545", + "editorHoverWidget.foreground": "#cccccc", + "editorIndentGuide.activeBackground": "#858b98", + "editorIndentGuide.background": "#343841", + "editorInfo.background": "#4490bf00", + "editorInfo.border": "#4490bf00", + "editorInfo.foreground": "#54b9ff", + "editorLineNumber.activeForeground": "#858b98", + "editorLineNumber.foreground": "#545864", + "editorLink.activeForeground": "#54b9ff", + "editorMarkerNavigation.background": "#23262d", + "editorMarkerNavigationError.background": "#dc3657", + "editorMarkerNavigationInfo.background": "#54b9ff", + "editorMarkerNavigationWarning.background": "#ffd493", + "editorOverviewRuler.background": "#ffffff00", + "editorOverviewRuler.border": "#ffffff00", + "editorRuler.foreground": "#545864", + "editorSuggestWidget.background": "#252526", + "editorSuggestWidget.border": "#454545", + "editorSuggestWidget.foreground": "#d4d4d4", + "editorSuggestWidget.highlightForeground": "#0097fb", + "editorSuggestWidget.selectedBackground": "#062f4a", + "editorWarning.background": "#a9904000", + "editorWarning.border": "#ffffff00", + "editorWarning.foreground": "#fbc23b", + "editorWhitespace.foreground": "#cc75f450", + "editorWidget.background": "#343841", + "editorWidget.foreground": "#ffffff", + "editorWidget.resizeBorder": "#cc75f4", + "focusBorder": "#00daef", + "foreground": "#cccccc", + "gitDecoration.addedResourceForeground": "#4bf3c8", + "gitDecoration.conflictingResourceForeground": "#00daef", + "gitDecoration.deletedResourceForeground": "#f4587e", + "gitDecoration.ignoredResourceForeground": "#858b98", + "gitDecoration.modifiedResourceForeground": "#ffd493", + "gitDecoration.stageDeletedResourceForeground": "#c74e39", + "gitDecoration.stageModifiedResourceForeground": "#ffd493", + "gitDecoration.submoduleResourceForeground": "#54b9ff", + "gitDecoration.untrackedResourceForeground": "#4bf3c8", + "icon.foreground": "#cccccc", + "input.background": "#23262d", + "input.border": "#bfc1c9", + "input.foreground": "#eef0f9", + "input.placeholderForeground": "#858b98", + "inputOption.activeBackground": "#54b9ff", + "inputOption.activeBorder": "#007acc00", + "inputOption.activeForeground": "#17191e", + "list.activeSelectionBackground": "#2d4860", + "list.activeSelectionForeground": "#ffffff", + "list.dropBackground": "#17191e", + "list.focusBackground": "#54b9ff", + "list.focusForeground": "#ffffff", + "list.highlightForeground": "#ffffff", + "list.hoverBackground": "#343841", + "list.hoverForeground": "#eef0f9", + "list.inactiveSelectionBackground": "#17191e", + "list.inactiveSelectionForeground": "#eef0f9", + "listFilterWidget.background": "#2d4860", + "listFilterWidget.noMatchesOutline": "#dc3657", + "listFilterWidget.outline": "#54b9ff", + "menu.background": "#252526", + "menu.border": "#00000085", + "menu.foreground": "#cccccc", + "menu.selectionBackground": "#094771", + "menu.selectionBorder": "#00000000", + "menu.selectionForeground": "#4bf3c8", + "menu.separatorBackground": "#bbbbbb", + "menubar.selectionBackground": "#ffffff1a", + "menubar.selectionForeground": "#cccccc", + "merge.commonContentBackground": "#282828", + "merge.commonHeaderBackground": "#383838", + "merge.currentContentBackground": "#27403b", + "merge.currentHeaderBackground": "#367366", + "merge.incomingContentBackground": "#28384b", + "merge.incomingHeaderBackground": "#395f8f", + "minimap.background": "#17191e", + "minimap.errorHighlight": "#dc3657", + "minimap.findMatchHighlight": "#515c6a", + "minimap.selectionHighlight": "#3757b942", + "minimap.warningHighlight": "#fbc23b", + "minimapGutter.addedBackground": "#4bf3c8", + "minimapGutter.deletedBackground": "#f06788", + "minimapGutter.modifiedBackground": "#54b9ff", + "notificationCenter.border": "#ffffff00", + "notificationCenterHeader.background": "#343841", + "notificationCenterHeader.foreground": "#17191e", + "notificationToast.border": "#ffffff00", + "notifications.background": "#343841", + "notifications.border": "#bfc1c9", + "notifications.foreground": "#ffffff", + "notificationsErrorIcon.foreground": "#f4587e", + "notificationsInfoIcon.foreground": "#54b9ff", + "notificationsWarningIcon.foreground": "#ff8551", + "panel.background": "#23262d", + "panel.border": "#17191e", + "panelSection.border": "#17191e", + "panelTitle.activeBorder": "#e7e7e7", + "panelTitle.activeForeground": "#eef0f9", + "panelTitle.inactiveForeground": "#bfc1c9", + "peekView.border": "#007acc", + "peekViewEditor.background": "#001f33", + "peekViewEditor.matchHighlightBackground": "#ff8f0099", + "peekViewEditor.matchHighlightBorder": "#ee931e", + "peekViewEditorGutter.background": "#001f33", + "peekViewResult.background": "#252526", + "peekViewResult.fileForeground": "#ffffff", + "peekViewResult.lineForeground": "#bbbbbb", + "peekViewResult.matchHighlightBackground": "#ff0000", + "peekViewResult.selectionBackground": "#3399ff33", + "peekViewResult.selectionForeground": "#ffffff", + "peekViewTitle.background": "#1e1e1e", + "peekViewTitleDescription.foreground": "#ccccccb3", + "peekViewTitleLabel.foreground": "#ffffff", + "pickerGroup.border": "#ffffff00", + "pickerGroup.foreground": "#eef0f9", + "progressBar.background": "#4bf3c8", + "scrollbar.shadow": "#000000", + "scrollbarSlider.activeBackground": "#54b9ff66", + "scrollbarSlider.background": "#54586466", + "scrollbarSlider.hoverBackground": "#545864b3", + "selection.background": "#00daef56", + "settings.focusedRowBackground": "#ffffff07", + "settings.headerForeground": "#cccccc", + "sideBar.background": "#23262d", + "sideBar.border": "#17191e", + "sideBar.dropBackground": "#17191e", + "sideBar.foreground": "#bfc1c9", + "sideBarSectionHeader.background": "#343841", + "sideBarSectionHeader.border": "#17191e", + "sideBarSectionHeader.foreground": "#eef0f9", + "sideBarTitle.foreground": "#eef0f9", + "statusBar.background": "#17548b", + "statusBar.debuggingBackground": "#cc75f4", + "statusBar.debuggingForeground": "#eef0f9", + "statusBar.foreground": "#eef0f9", + "statusBar.noFolderBackground": "#6c3c7d", + "statusBar.noFolderForeground": "#eef0f9", + "statusBarItem.activeBackground": "#ffffff25", + "statusBarItem.hoverBackground": "#ffffff1f", + "statusBarItem.remoteBackground": "#297763", + "statusBarItem.remoteForeground": "#eef0f9", + "tab.activeBackground": "#17191e", + "tab.activeBorder": "#ffffff00", + "tab.activeBorderTop": "#eef0f9", + "tab.activeForeground": "#eef0f9", + "tab.border": "#17191e", + "tab.hoverBackground": "#343841", + "tab.hoverForeground": "#eef0f9", + "tab.inactiveBackground": "#23262d", + "tab.inactiveForeground": "#858b98", + "terminal.ansiBlack": "#17191e", + "terminal.ansiBlue": "#2b7eca", + "terminal.ansiBrightBlack": "#545864", + "terminal.ansiBrightBlue": "#54b9ff", + "terminal.ansiBrightCyan": "#00daef", + "terminal.ansiBrightGreen": "#4bf3c8", + "terminal.ansiBrightMagenta": "#cc75f4", + "terminal.ansiBrightRed": "#f4587e", + "terminal.ansiBrightWhite": "#fafafa", + "terminal.ansiBrightYellow": "#ffd493", + "terminal.ansiCyan": "#24c0cf", + "terminal.ansiGreen": "#23d18b", + "terminal.ansiMagenta": "#ad5dca", + "terminal.ansiRed": "#dc3657", + "terminal.ansiWhite": "#eef0f9", + "terminal.ansiYellow": "#ffc368", + "terminal.border": "#80808059", + "terminal.foreground": "#cccccc", + "terminal.selectionBackground": "#ffffff40", + "terminalCursor.background": "#0087ff", + "terminalCursor.foreground": "#ffffff", + "textLink.foreground": "#54b9ff", + "titleBar.activeBackground": "#17191e", + "titleBar.activeForeground": "#cccccc", + "titleBar.border": "#00000000", + "titleBar.inactiveBackground": "#3c3c3c99", + "titleBar.inactiveForeground": "#cccccc99", + "tree.indentGuidesStroke": "#545864", + "walkThrough.embeddedEditorBackground": "#00000050", + "widget.shadow": "#ffffff00", + //"actionBar.toggledBackground": "#54b9ff", + //"activityBar.activeBorder": "#eef0f9", + //"activityBar.dropBorder": "#eef0f9", + //"banner.background": "#2d4860", + //"banner.foreground": "#ffffff", + //"banner.iconForeground": "#54b9ff", + //"breadcrumbPicker.background": "#343841", + //"button.separator": "#17191e66", + //"charts.blue": "#54b9ff", + //"charts.foreground": "#cccccc", + //"charts.green": "#89d185", + //"charts.lines": "#cccccc80", + //"charts.orange": "#515c6a", + //"charts.purple": "#b180d7", + //"charts.red": "#f4587e", + //"charts.yellow": "#fbc23b", + //"chat.avatarBackground": "#1f1f1f", + //"chat.avatarForeground": "#cccccc", + //"chat.requestBorder": "#ffffff1a", + //"chat.slashCommandBackground": "#34414b", + //"chat.slashCommandForeground": "#40a6ff", + //"checkbox.selectBackground": "#343841", + //"checkbox.selectBorder": "#cccccc", + //"commandCenter.activeBackground": "#ffffff14", + //"commandCenter.activeBorder": "#cccccc4d", + //"commandCenter.activeForeground": "#cccccc", + //"commandCenter.background": "#ffffff0d", + //"commandCenter.border": "#cccccc33", + //"commandCenter.debuggingBackground": "#cc75f442", + //"commandCenter.foreground": "#cccccc", + //"commandCenter.inactiveBorder": "#cccccc26", + //"commandCenter.inactiveForeground": "#cccccc99", + //"commentsView.resolvedIcon": "#cccccc80", + //"commentsView.unresolvedIcon": "#00daef", + //"consoleninja.logTime": "#6a9955", + //"debugConsole.errorForeground": "#f48771", + //"debugConsole.infoForeground": "#54b9ff", + //"debugConsole.sourceForeground": "#cccccc", + //"debugConsole.warningForeground": "#fbc23b", + //"debugConsoleInputIcon.foreground": "#cccccc", + //"debugIcon.breakpointCurrentStackframeForeground": "#ffcc00", + //"debugIcon.breakpointDisabledForeground": "#848484", + //"debugIcon.breakpointForeground": "#e51400", + //"debugIcon.breakpointStackframeForeground": "#89d185", + //"debugIcon.breakpointUnverifiedForeground": "#848484", + //"debugIcon.continueForeground": "#75beff", + //"debugIcon.disconnectForeground": "#f48771", + //"debugIcon.pauseForeground": "#75beff", + //"debugIcon.restartForeground": "#89d185", + //"debugIcon.startForeground": "#89d185", + //"debugIcon.stepBackForeground": "#75beff", + //"debugIcon.stepIntoForeground": "#75beff", + //"debugIcon.stepOutForeground": "#75beff", + //"debugIcon.stepOverForeground": "#75beff", + //"debugIcon.stopForeground": "#f48771", + //"debugTokenExpression.boolean": "#4e94ce", + //"debugTokenExpression.error": "#f48771", + //"debugTokenExpression.name": "#c586c0", + //"debugTokenExpression.number": "#b5cea8", + //"debugTokenExpression.string": "#ce9178", + //"debugTokenExpression.value": "#cccccc99", + //"debugView.exceptionLabelBackground": "#6c2022", + //"debugView.exceptionLabelForeground": "#cccccc", + //"debugView.stateLabelBackground": "#88888844", + //"debugView.stateLabelForeground": "#cccccc", + //"debugView.valueChangedHighlight": "#569cd6", + //"descriptionForeground": "#ccccccb3", + //"diffEditor.diagonalFill": "#cccccc33", + //"diffEditor.insertedLineBackground": "#9bb95533", + //"diffEditor.move.border": "#8b8b8b9c", + //"diffEditor.moveActive.border": "#ffa500", + //"diffEditor.removedLineBackground": "#ff000033", + //"diffEditor.unchangedCodeBackground": "#74747429", + //"diffEditor.unchangedRegionBackground": "#23262d", + //"diffEditor.unchangedRegionForeground": "#cccccc", + //"diffEditor.unchangedRegionShadow": "#000000", + //"disabledForeground": "#cccccc80", + //"editor.focusedStackFrameHighlightBackground": "#7abd7a4d", + //"editor.inlineValuesBackground": "#ffc80033", + //"editor.inlineValuesForeground": "#ffffff80", + //"editor.linkedEditingBackground": "#ff00004d", + //"editor.snippetFinalTabstopHighlightBorder": "#525252", + //"editor.snippetTabstopHighlightBackground": "#7c7c7c4d", + //"editor.stackFrameHighlightBackground": "#ffff0033", + //"editor.symbolHighlightBackground": "#ea5c0055", + //"editor.wordHighlightTextBackground": "#494949b8", + //"editorActiveLineNumber.foreground": "#c6c6c6", + //"editorBracketHighlight.foreground1": "#ffd700", + //"editorBracketHighlight.foreground2": "#da70d6", + //"editorBracketHighlight.foreground3": "#179fff", + //"editorBracketHighlight.foreground4": "#00000000", + //"editorBracketHighlight.foreground5": "#00000000", + //"editorBracketHighlight.foreground6": "#00000000", + //"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc", + //"editorBracketPairGuide.activeBackground1": "#00000000", + //"editorBracketPairGuide.activeBackground2": "#00000000", + //"editorBracketPairGuide.activeBackground3": "#00000000", + //"editorBracketPairGuide.activeBackground4": "#00000000", + //"editorBracketPairGuide.activeBackground5": "#00000000", + //"editorBracketPairGuide.activeBackground6": "#00000000", + //"editorBracketPairGuide.background1": "#00000000", + //"editorBracketPairGuide.background2": "#00000000", + //"editorBracketPairGuide.background3": "#00000000", + //"editorBracketPairGuide.background4": "#00000000", + //"editorBracketPairGuide.background5": "#00000000", + //"editorBracketPairGuide.background6": "#00000000", + //"editorCommentsWidget.rangeActiveBackground": "#00daef1a", + //"editorCommentsWidget.rangeBackground": "#00daef1a", + //"editorCommentsWidget.replyInputBackground": "#1e1e1e", + //"editorCommentsWidget.resolvedBorder": "#cccccc80", + //"editorCommentsWidget.unresolvedBorder": "#00daef", + //"editorGhostText.foreground": "#ffffff56", + //"editorGroup.dropBackground": "#53595d80", + //"editorGroup.dropIntoPromptBackground": "#343841", + //"editorGroup.dropIntoPromptForeground": "#ffffff", + //"editorGroupHeader.noTabsBackground": "#17191e", + //"editorGutter.commentGlyphForeground": "#eef0f9", + //"editorGutter.commentUnresolvedGlyphForeground": "#eef0f9", + //"editorHint.foreground": "#eeeeeeb3", + //"editorHoverWidget.highlightForeground": "#ffffff", + //"editorHoverWidget.statusBarBackground": "#2c2c2d", + //"editorIndentGuide.activeBackground1": "#858b98", + //"editorIndentGuide.activeBackground2": "#00000000", + //"editorIndentGuide.activeBackground3": "#00000000", + //"editorIndentGuide.activeBackground4": "#00000000", + //"editorIndentGuide.activeBackground5": "#00000000", + //"editorIndentGuide.activeBackground6": "#00000000", + //"editorIndentGuide.background1": "#343841", + //"editorIndentGuide.background2": "#00000000", + //"editorIndentGuide.background3": "#00000000", + //"editorIndentGuide.background4": "#00000000", + //"editorIndentGuide.background5": "#00000000", + //"editorIndentGuide.background6": "#00000000", + //"editorInlayHint.background": "#bfc1c91a", + //"editorInlayHint.foreground": "#969696", + //"editorInlayHint.parameterBackground": "#bfc1c91a", + //"editorInlayHint.parameterForeground": "#969696", + //"editorInlayHint.typeBackground": "#bfc1c91a", + //"editorInlayHint.typeForeground": "#969696", + //"editorLightBulb.foreground": "#ffcc00", + //"editorLightBulbAi.foreground": "#7a7a7a", + //"editorLightBulbAutoFix.foreground": "#75beff", + //"editorMarkerNavigationError.headerBackground": "#dc36571a", + //"editorMarkerNavigationInfo.headerBackground": "#54b9ff1a", + //"editorMarkerNavigationWarning.headerBackground": "#ffd4931a", + //"editorOverviewRuler.addedForeground": "#4bf3c899", + //"editorOverviewRuler.bracketMatchForeground": "#a0a0a0", + //"editorOverviewRuler.commentForeground": "#545864", + //"editorOverviewRuler.commentUnresolvedForeground": "#545864", + //"editorOverviewRuler.commonContentForeground": "#383838", + //"editorOverviewRuler.currentContentForeground": "#367366", + //"editorOverviewRuler.deletedForeground": "#f0678899", + //"editorOverviewRuler.errorForeground": "#ff1212b3", + //"editorOverviewRuler.findMatchForeground": "#d186167e", + //"editorOverviewRuler.incomingContentForeground": "#395f8f", + //"editorOverviewRuler.infoForeground": "#54b9ff", + //"editorOverviewRuler.modifiedForeground": "#54b9ff99", + //"editorOverviewRuler.rangeHighlightForeground": "#007acc99", + //"editorOverviewRuler.selectionHighlightForeground": "#a0a0a0cc", + //"editorOverviewRuler.warningForeground": "#fbc23b", + //"editorOverviewRuler.wordHighlightForeground": "#a0a0a0cc", + //"editorOverviewRuler.wordHighlightStrongForeground": "#c0a0c0cc", + //"editorOverviewRuler.wordHighlightTextForeground": "#a0a0a0cc", + //"editorPane.background": "#17191e", + //"editorStickyScroll.background": "#17191e", + //"editorStickyScrollHover.background": "#2a2d2e", + //"editorSuggestWidget.focusHighlightForeground": "#ffffff", + //"editorSuggestWidget.selectedForeground": "#ffffff", + //"editorSuggestWidgetStatus.foreground": "#d4d4d480", + //"editorUnicodeHighlight.background": "#bd9b0326", + //"editorUnicodeHighlight.border": "#bd9b03", + //"editorUnnecessaryCode.opacity": "#000000aa", + //"editorWidget.border": "#454545", + //"errorForeground": "#f48771", + //"extensionBadge.remoteBackground": "#4bf3c8", + //"extensionBadge.remoteForeground": "#000000", + //"extensionButton.background": "#4bf3c8", + //"extensionButton.foreground": "#17191e", + //"extensionButton.hoverBackground": "#31c19c", + //"extensionButton.prominentBackground": "#4bf3c8", + //"extensionButton.prominentForeground": "#17191e", + //"extensionButton.prominentHoverBackground": "#31c19c", + //"extensionButton.separator": "#17191e66", + //"extensionIcon.preReleaseForeground": "#1d9271", + //"extensionIcon.sponsorForeground": "#d758b3", + //"extensionIcon.starForeground": "#ff8e00", + //"extensionIcon.verifiedForeground": "#54b9ff", + //"gitDecoration.renamedResourceForeground": "#73c991", + //"inlineChat.background": "#343841", + //"inlineChat.border": "#454545", + //"inlineChat.regionHighlight": "#5495d740", + //"inlineChat.shadow": "#ffffff00", + //"inlineChatDiff.inserted": "#4bf3c812", + //"inlineChatDiff.removed": "#dc365712", + //"inlineChatInput.background": "#23262d", + //"inlineChatInput.border": "#454545", + //"inlineChatInput.focusBorder": "#00daef", + //"inlineChatInput.placeholderForeground": "#858b98", + //"inputOption.hoverBackground": "#5a5d5e80", + //"inputValidation.errorBackground": "#5a1d1d", + //"inputValidation.errorBorder": "#be1100", + //"inputValidation.infoBackground": "#063b49", + //"inputValidation.infoBorder": "#007acc", + //"inputValidation.warningBackground": "#352a05", + //"inputValidation.warningBorder": "#b89500", + //"interactive.activeCodeBorder": "#007acc", + //"interactive.inactiveCodeBorder": "#17191e", + //"keybindingLabel.background": "#8080802b", + //"keybindingLabel.border": "#33333399", + //"keybindingLabel.bottomBorder": "#44444499", + //"keybindingLabel.foreground": "#cccccc", + //"keybindingTable.headerBackground": "#cccccc0a", + //"keybindingTable.rowsBackground": "#cccccc0a", + //"list.deemphasizedForeground": "#8c8c8c", + //"list.errorForeground": "#f88070", + //"list.filterMatchBackground": "#ea5c0055", + //"list.filterMatchBorder": "#ffffff00", + //"list.focusHighlightForeground": "#ffffff", + //"list.focusOutline": "#00daef", + //"list.invalidItemForeground": "#b89500", + //"list.warningForeground": "#cca700", + //"listFilterWidget.shadow": "#ffffff00", + //"markdown.extension.editor.codeSpan.background": "#00000000", + //"markdown.extension.editor.codeSpan.border": "#ad5dca44", + //"markdown.extension.editor.formattingMark.foreground": "#cc75f450", + //"markdown.extension.editor.trailingSpace.background": "#cccccc33", + //"mergeEditor.change.background": "#9bb95533", + //"mergeEditor.change.word.background": "#9ccc2c33", + //"mergeEditor.changeBase.background": "#4b1818", + //"mergeEditor.changeBase.word.background": "#6f1313", + //"mergeEditor.conflict.handled.minimapOverViewRuler": "#adaca8ee", + //"mergeEditor.conflict.handledFocused.border": "#c1c1c1cc", + //"mergeEditor.conflict.handledUnfocused.border": "#86868649", + //"mergeEditor.conflict.input1.background": "#36736666", + //"mergeEditor.conflict.input2.background": "#395f8f66", + //"mergeEditor.conflict.unhandled.minimapOverViewRuler": "#fcba03", + //"mergeEditor.conflict.unhandledFocused.border": "#ffa600", + //"mergeEditor.conflict.unhandledUnfocused.border": "#ffa6007a", + //"mergeEditor.conflictingLines.background": "#ffea0047", + //"minimap.foregroundOpacity": "#000000", + //"minimap.infoHighlight": "#54b9ff", + //"minimap.selectionOccurrenceHighlight": "#676767", + //"minimapSlider.activeBackground": "#54b9ff33", + //"minimapSlider.background": "#54586433", + //"minimapSlider.hoverBackground": "#5458645a", + //"multiDiffEditor.headerBackground": "#808080", + //"notebook.cellBorderColor": "#17191e", + //"notebook.cellEditorBackground": "#23262d", + //"notebook.cellInsertionIndicator": "#00daef", + //"notebook.cellStatusBarItemHoverBackground": "#ffffff26", + //"notebook.cellToolbarSeparator": "#80808059", + //"notebook.editorBackground": "#17191e", + //"notebook.focusedCellBorder": "#00daef", + //"notebook.focusedEditorBorder": "#00daef", + //"notebook.inactiveFocusedCellBorder": "#17191e", + //"notebook.selectedCellBackground": "#17191e", + //"notebook.selectedCellBorder": "#17191e", + //"notebook.symbolHighlightBackground": "#ffffff0b", + //"notebookEditorOverviewRuler.runningCellForeground": "#89d185", + //"notebookScrollbarSlider.activeBackground": "#54b9ff66", + //"notebookScrollbarSlider.background": "#54586466", + //"notebookScrollbarSlider.hoverBackground": "#545864b3", + //"notebookStatusErrorIcon.foreground": "#f48771", + //"notebookStatusRunningIcon.foreground": "#cccccc", + //"notebookStatusSuccessIcon.foreground": "#89d185", + //"notificationLink.foreground": "#54b9ff", + //"panel.dropBorder": "#eef0f9", + //"panelInput.border": "#bfc1c9", + //"panelSection.dropBackground": "#53595d80", + //"panelSectionHeader.background": "#80808033", + //"peekViewEditorStickyScroll.background": "#001f33", + //"ports.iconRunningProcessForeground": "#297763", + //"problemsErrorIcon.foreground": "#f4587e", + //"problemsInfoIcon.foreground": "#54b9ff", + //"problemsWarningIcon.foreground": "#fbc23b", + //"profileBadge.background": "#4d4d4d", + //"profileBadge.foreground": "#ffffff", + //"quickInput.background": "#343841", + //"quickInput.foreground": "#ffffff", + //"quickInputList.focusBackground": "#2d4860", + //"quickInputList.focusForeground": "#ffffff", + //"quickInputTitle.background": "#ffffff1b", + //"remoteHub.decorations.addedForegroundColor": "#81b88b", + //"remoteHub.decorations.conflictForegroundColor": "#e4676b", + //"remoteHub.decorations.deletedForegroundColor": "#c74e39", + //"remoteHub.decorations.ignoredResourceForeground": "#8c8c8c", + //"remoteHub.decorations.incomingAddedForegroundColor": "#81b88b", + //"remoteHub.decorations.incomingDeletedForegroundColor": "#c74e39", + //"remoteHub.decorations.incomingModifiedForegroundColor": "#e2c08d", + //"remoteHub.decorations.incomingRenamedForegroundColor": "#73c991", + //"remoteHub.decorations.modifiedForegroundColor": "#e2c08d", + //"remoteHub.decorations.possibleConflictForegroundColor": "#cca700", + //"remoteHub.decorations.submoduleForegroundColor": "#8db9e2", + //"remoteHub.decorations.workspaceRepositoriesView.hasUncommittedChangesForegroundColor": "#e2c08d", + //"sash.hoverBorder": "#00daef", + //"scm.historyItemAdditionsForeground": "#4bf3c8", + //"scm.historyItemDeletionsForeground": "#f4587e", + //"scm.historyItemSelectedStatisticsBorder": "#ffffff33", + //"scm.historyItemStatisticsBorder": "#cccccc33", + //"search.resultsInfoForeground": "#cccccca6", + //"searchEditor.findMatchBackground": "#ea5c0038", + //"searchEditor.findMatchBorder": "#ffffff00", + //"searchEditor.textInputBorder": "#bfc1c9", + //"settings.checkboxBackground": "#23262d", + //"settings.checkboxBorder": "#00000000", + //"settings.checkboxForeground": "#eef0f9", + //"settings.dropdownBackground": "#23262d", + //"settings.dropdownBorder": "#00000000", + //"settings.dropdownForeground": "#eef0f9", + //"settings.dropdownListBorder": "#454545", + //"settings.focusedRowBorder": "#00daef", + //"settings.headerBorder": "#17191e", + //"settings.modifiedItemIndicator": "#0c7d9d", + //"settings.numberInputBackground": "#23262d", + //"settings.numberInputBorder": "#bfc1c9", + //"settings.numberInputForeground": "#eef0f9", + //"settings.rowHoverBackground": "#3438414d", + //"settings.sashBorder": "#17191e", + //"settings.settingsHeaderHoverForeground": "#ccccccb3", + //"settings.textInputBackground": "#23262d", + //"settings.textInputBorder": "#bfc1c9", + //"settings.textInputForeground": "#eef0f9", + //"sideBySideEditor.horizontalBorder": "#343841", + //"sideBySideEditor.verticalBorder": "#343841", + //"simpleFindWidget.sashBorder": "#454545", + //"statusBar.focusBorder": "#eef0f9", + //"statusBarItem.compactHoverBackground": "#ffffff33", + //"statusBarItem.errorBackground": "#c72e0f", + //"statusBarItem.errorForeground": "#ffffff", + //"statusBarItem.errorHoverBackground": "#ffffff1f", + //"statusBarItem.errorHoverForeground": "#eef0f9", + //"statusBarItem.focusBorder": "#eef0f9", + //"statusBarItem.hoverForeground": "#eef0f9", + //"statusBarItem.offlineBackground": "#6c1717", + //"statusBarItem.offlineForeground": "#eef0f9", + //"statusBarItem.offlineHoverBackground": "#ffffff1f", + //"statusBarItem.offlineHoverForeground": "#eef0f9", + //"statusBarItem.prominentBackground": "#00000080", + //"statusBarItem.prominentForeground": "#eef0f9", + //"statusBarItem.prominentHoverBackground": "#0000004d", + //"statusBarItem.prominentHoverForeground": "#eef0f9", + //"statusBarItem.remoteHoverBackground": "#ffffff1f", + //"statusBarItem.remoteHoverForeground": "#eef0f9", + //"statusBarItem.warningBackground": "#b68104", + //"statusBarItem.warningForeground": "#ffffff", + //"statusBarItem.warningHoverBackground": "#ffffff1f", + //"statusBarItem.warningHoverForeground": "#eef0f9", + //"symbolIcon.arrayForeground": "#cccccc", + //"symbolIcon.booleanForeground": "#cccccc", + //"symbolIcon.classForeground": "#ee9d28", + //"symbolIcon.colorForeground": "#cccccc", + //"symbolIcon.constantForeground": "#cccccc", + //"symbolIcon.constructorForeground": "#b180d7", + //"symbolIcon.enumeratorForeground": "#ee9d28", + //"symbolIcon.enumeratorMemberForeground": "#75beff", + //"symbolIcon.eventForeground": "#ee9d28", + //"symbolIcon.fieldForeground": "#75beff", + //"symbolIcon.fileForeground": "#cccccc", + //"symbolIcon.folderForeground": "#cccccc", + //"symbolIcon.functionForeground": "#b180d7", + //"symbolIcon.interfaceForeground": "#75beff", + //"symbolIcon.keyForeground": "#cccccc", + //"symbolIcon.keywordForeground": "#cccccc", + //"symbolIcon.methodForeground": "#b180d7", + //"symbolIcon.moduleForeground": "#cccccc", + //"symbolIcon.namespaceForeground": "#cccccc", + //"symbolIcon.nullForeground": "#cccccc", + //"symbolIcon.numberForeground": "#cccccc", + //"symbolIcon.objectForeground": "#cccccc", + //"symbolIcon.operatorForeground": "#cccccc", + //"symbolIcon.packageForeground": "#cccccc", + //"symbolIcon.propertyForeground": "#cccccc", + //"symbolIcon.referenceForeground": "#cccccc", + //"symbolIcon.snippetForeground": "#cccccc", + //"symbolIcon.stringForeground": "#cccccc", + //"symbolIcon.structForeground": "#cccccc", + //"symbolIcon.textForeground": "#cccccc", + //"symbolIcon.typeParameterForeground": "#cccccc", + //"symbolIcon.unitForeground": "#cccccc", + //"symbolIcon.variableForeground": "#75beff", + //"tab.activeModifiedBorder": "#3399cc", + //"tab.inactiveModifiedBorder": "#3399cc80", + //"tab.lastPinnedBorder": "#545864", + //"tab.unfocusedActiveBackground": "#17191e", + //"tab.unfocusedActiveBorder": "#ffffff00", + //"tab.unfocusedActiveBorderTop": "#eef0f980", + //"tab.unfocusedActiveForeground": "#eef0f980", + //"tab.unfocusedActiveModifiedBorder": "#3399cc80", + //"tab.unfocusedHoverBackground": "#34384180", + //"tab.unfocusedHoverForeground": "#eef0f980", + //"tab.unfocusedInactiveBackground": "#23262d", + //"tab.unfocusedInactiveForeground": "#858b9880", + //"tab.unfocusedInactiveModifiedBorder": "#3399cc40", + //"terminal.dropBackground": "#53595d80", + //"terminal.findMatchBackground": "#515c6a", + //"terminal.findMatchHighlightBackground": "#ea5c0055", + //"terminal.hoverHighlightBackground": "#5495d720", + //"terminal.inactiveSelectionBackground": "#ffffff20", + //"terminal.tab.activeBorder": "#ffffff00", + //"terminalCommandDecoration.defaultBackground": "#ffffff40", + //"terminalCommandDecoration.errorBackground": "#f14c4c", + //"terminalCommandDecoration.successBackground": "#1b81a8", + //"terminalOverviewRuler.cursorForeground": "#a0a0a0cc", + //"terminalOverviewRuler.findMatchForeground": "#d186167e", + //"terminalStickyScrollHover.background": "#2a2d2e", + //"testing.iconErrored": "#f14c4c", + //"testing.iconFailed": "#f14c4c", + //"testing.iconPassed": "#73c991", + //"testing.iconQueued": "#cca700", + //"testing.iconSkipped": "#848484", + //"testing.iconUnset": "#848484", + //"testing.message.error.decorationForeground": "#f4587e", + //"testing.message.error.lineBackground": "#ff000033", + //"testing.message.info.decorationForeground": "#eef0f980", + //"testing.peekBorder": "#f4587e", + //"testing.peekHeaderBackground": "#f4587e1a", + //"testing.runAction": "#73c991", + //"textBlockQuote.background": "#222222", + //"textBlockQuote.border": "#007acc80", + //"textCodeBlock.background": "#0a0a0a66", + //"textLink.activeForeground": "#3794ff", + //"textPreformat.background": "#ffffff1a", + //"textPreformat.foreground": "#d7ba7d", + //"textSeparator.foreground": "#ffffff2e", + //"toolbar.activeBackground": "#63666750", + //"toolbar.hoverBackground": "#5a5d5e50", + //"tree.inactiveIndentGuidesStroke": "#54586466", + //"tree.tableColumnsBorder": "#cccccc20", + //"tree.tableOddRowsBackground": "#cccccc0a", + //"walkthrough.stepTitle.foreground": "#ffffff", + //"welcomePage.progress.background": "#23262d", + //"welcomePage.progress.foreground": "#54b9ff", + //"welcomePage.tileBackground": "#343841", + //"welcomePage.tileBorder": "#ffffff1a", + //"welcomePage.tileHoverBackground": "#3e434e", + //"activityBar.activeFocusBorder": null, + //"button.border": null, + //"contrastActiveBorder": null, + //"contrastBorder": null, + //"diffEditor.insertedTextBorder": null, + //"diffEditor.removedTextBorder": null, + //"diffEditorGutter.insertedLineBackground": null, + //"diffEditorGutter.removedLineBackground": null, + //"diffEditorOverview.insertedForeground": null, + //"diffEditorOverview.removedForeground": null, + //"dropdown.listBackground": null, + //"editor.selectionForeground": null, + //"editor.snippetFinalTabstopHighlightBackground": null, + //"editor.snippetTabstopHighlightBorder": null, + //"editor.symbolHighlightBorder": null, + //"editor.wordHighlightBorder": null, + //"editor.wordHighlightStrongBorder": null, + //"editor.wordHighlightTextBorder": null, + //"editorGhostText.background": null, + //"editorGhostText.border": null, + //"editorGroup.dropIntoPromptBorder": null, + //"editorGroup.focusedEmptyBorder": null, + //"editorHint.border": null, + //"editorLineNumber.dimmedForeground": null, + //"editorSuggestWidget.selectedIconForeground": null, + //"editorUnnecessaryCode.border": null, + //"inputValidation.errorForeground": null, + //"inputValidation.infoForeground": null, + //"inputValidation.warningForeground": null, + //"list.activeSelectionIconForeground": null, + //"list.focusAndSelectionOutline": null, + //"list.inactiveFocusBackground": null, + //"list.inactiveFocusOutline": null, + //"list.inactiveSelectionIconForeground": null, + //"menubar.selectionBorder": null, + //"merge.border": null, + //"notebook.cellHoverBackground": null, + //"notebook.focusedCellBackground": null, + //"notebook.inactiveSelectedCellBorder": null, + //"notebook.outputContainerBackgroundColor": null, + //"notebook.outputContainerBorderColor": null, + //"panelSectionHeader.border": null, + //"panelSectionHeader.foreground": null, + //"quickInput.list.focusBackground": null, + //"quickInputList.focusIconForeground": null, + //"statusBar.border": null, + //"statusBar.debuggingBorder": null, + //"statusBar.noFolderBorder": null, + //"tab.hoverBorder": null, + //"tab.unfocusedHoverBorder": null, + //"terminal.background": null, + //"terminal.findMatchBorder": null, + //"terminal.findMatchHighlightBorder": null, + //"terminal.selectionForeground": null, + //"terminalStickyScroll.background": null, + //"testing.message.info.lineBackground": null, + //"toolbar.hoverOutline": null, + //"welcomePage.background": null, + //"widget.border": null, + //"window.activeBorder": null, + //"window.inactiveBorder": null + }, + "tokenColors": [ + { + "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "variable.other.generic-type.haskell", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "storage.type.haskell", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.variable.magic.python", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "variable.parameter.function.language.special.self.python", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "storage.modifier.lifetime.rust", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.function.std.rust", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable.language.rust", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.constant.edge", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.string.begin,punctuation.definition.string.end", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "comment markup.link", + "settings": { + "foreground": "#545864" + } + }, + { + "scope": "markup.changed.diff", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "meta.function.c,meta.function.cpp", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.expression.import", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "support.constant.math", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.constant.property.math", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "storage.type.annotation.java", + "storage.type.object.array.java" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "source.java", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "meta.method.java", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.operator.instanceof.java", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "meta.definition.variable.name.java", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.channel", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.property-value.scss,support.constant.property-value.css", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.separator.list.comma.css", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.color.w3c-standard-color-name.css", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.type.vendored.property-name.css", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.module.node,support.type.object.module,support.module.node", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.type.module", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.constant.json", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.operator.expression.instanceof", + "keyword.operator.new", + "keyword.operator.ternary", + "keyword.operator.optional", + "keyword.operator.expression.keyof" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.object.console", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.variable.property.process", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.function,support.function.console", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.operator.misc.rust", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.sigil.rust", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.delete", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.object.dom", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.variable.dom,support.variable.property.dom", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "punctuation.separator.delimiter", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.separator.c,punctuation.separator.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "variable.parameter.function.language.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.type.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "variable.parameter.function.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "constant.character.format.placeholder.other.python", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.assignment.compound", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "variable.c", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "variable.language", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "token.variable.parameter.java", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "import.storage.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "token.package.keyword", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.package", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "entity.name.function", + "meta.require", + "support.function.any-method", + "variable.function" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "entity.name.type.namespace", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.class, entity.name.type.class", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.class.identifier.namespace.type", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.class", + "variable.other.class.js", + "variable.other.class.ts" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "variable.other.class.php", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.name.type", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "control.elements, keyword.operator.less", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "keyword.other.special-method", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.storage", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "token.storage.type.java", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "support.function", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.property-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.font-name", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "meta.tag", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "constant.other.symbol", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.numeric", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.constant", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.other.attribute-name.html", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "source.astro.meta.attribute.client:idle.html", + "settings": { + "foreground": "#FFD493", + "fontStyle": "italic" + } + }, + { + "scope": "string.quoted.double.html,string.quoted.single.html,string.template.html,punctuation.definition.string.begin.html,punctuation.definition.string.end.html", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#00DAEF", + "fontStyle": "normal" + } + }, + { + "scope": "entity.other.attribute-name.class.css", + "settings": { + "foreground": "#4BF3C8", + "fontStyle": "normal" + } + }, + { + "scope": "meta.selector", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.heading punctuation.definition.heading, entity.name.section", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.bold,todo.bold", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.bold", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "emphasis md", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "entity.name.section.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.heading.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.heading.setext", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.definition.bold.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "punctuation.definition.list.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.metadata.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "beginning.punctuation.definition.list.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.section.embedded, variable.interpolation", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.illegal.bad-ampersand.html", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "invalid.broken", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { + "foreground": "#CC75F4" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.type.property-name.json punctuation", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "keyword.operator.error-control.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.type.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "punctuation.section.array.begin.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "punctuation.section.array.end.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "entity.name.goto-label.php,support.other.php", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.regexp.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "keyword.operator.comparison.php", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": "meta.function.decorator.python", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.parameter", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.brace", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "function.parameter.ruby, function.parameter.cs", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "rgb-value", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "inline-color-decoration rgb-value", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "less rgb-value", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "selector.sass", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "block.scope.end,block.scope.begin", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "storage.type.cs", + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#F44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "meta.template.expression" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "keyword.operator.module" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "support.type.type.flowtype" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "support.type.primitive" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.property.object" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "variable.parameter.function.js" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "keyword.other.template.begin" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.template.end" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.substitution.begin" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.other.substitution.end" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "keyword.operator.assignment" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "keyword.operator.assignment.go" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "keyword.operator.arithmetic.go", + "keyword.operator.address.go" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "entity.name.package.go" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "support.type.prelude.elm" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "support.constant.elm" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "punctuation.quasi.element" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "constant.character.entity" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "entity.global.clojure" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.symbol.clojure" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "constant.keyword.clojure" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "meta.arguments.coffee", + "variable.parameter.function.coffee" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "source.ini" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "meta.scope.prerequisites.makefile" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "source.makefile" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "storage.modifier.import.groovy" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "meta.method.groovy" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "meta.definition.variable.name.groovy" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "meta.definition.class.inherited.classes.groovy" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "support.variable.semantic.hlsl" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "text.variable", + "text.bracketed" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "support.type.swift", + "support.type.vb.asp" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.function.xi" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.class.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "constant.character.character-class.regexp.xi" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + "constant.regexp.xi" + ], + "settings": { + "foreground": "#54B9FF" + } + }, + { + "scope": [ + "keyword.control.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "invalid.xi" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "beginning.punctuation.definition.quote.markdown.xi" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "beginning.punctuation.definition.list.markdown.xi" + ], + "settings": { + "foreground": "#EEF0F98F" + } + }, + { + "scope": [ + "constant.character.xi" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "accent.xi" + ], + "settings": { + "foreground": "#00DAEF" + } + }, + { + "scope": [ + "wikiword.xi" + ], + "settings": { + "foreground": "#FFD493" + } + }, + { + "scope": [ + "constant.other.color.rgb-value.xi" + ], + "settings": { + "foreground": "#FFFFFF" + } + }, + { + "scope": [ + "punctuation.definition.tag.xi" + ], + "settings": { + "foreground": "#545864" + } + }, + { + "scope": [ + "entity.name.label.cs", + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { + "foreground": "#ACAFFF" + } + }, + { + "scope": [ + "entity.name.label.cs", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#4BF3C8" + } + }, + { + "scope": [ + " meta.brace.square" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "comment, punctuation.definition.comment", + "settings": { + "foreground": "#EEF0F98F", + "fontStyle": "italic" + } + }, + { + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#EEF0F98F" + } + }, + { + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": [ + "constant.language.symbol.elixir" + ], + "settings": { + "foreground": "#EEF0F9" + } + }, + { + "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "comment.line.double-slash,comment.block.documentation", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "keyword.control.import.python,keyword.control.flow.python", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + } + ] +} \ No newline at end of file diff --git a/www/src/assets/quickstart.sh b/www/src/assets/quickstart.sh new file mode 100644 index 00000000..ab6560f9 --- /dev/null +++ b/www/src/assets/quickstart.sh @@ -0,0 +1,5 @@ +# First Create a fresh Astro Install +npm create astro@latest +# Create Empty Install with standard typescript +# Then Delete entire 'pages' folder under '/src/' +npx astro add @matthiesenxyz/astro-ghostcms \ No newline at end of file diff --git a/www/src/components/BaseHead.astro b/www/src/components/BaseHead.astro new file mode 100644 index 00000000..4f9aba05 --- /dev/null +++ b/www/src/components/BaseHead.astro @@ -0,0 +1,21 @@ +--- +import { ViewTransitions } from 'astro:transitions'; +import SEO, { type Props as SEOProps } from './SEO.astro'; +import { SiteTitle, SiteDescription } from '../consts'; +import favicon from '../assets/favicon.svg'; + +export type Props = Partial; +const { title = SiteTitle, name = SiteTitle, description = SiteDescription, ...seo } = Astro.props; +--- + + + + + + + + + diff --git a/www/src/components/Footer.astro b/www/src/components/Footer.astro new file mode 100644 index 00000000..2978b455 --- /dev/null +++ b/www/src/components/Footer.astro @@ -0,0 +1,12 @@ +--- +import '../styles/global.scss'; +--- + + diff --git a/www/src/components/FormattedDate.astro b/www/src/components/FormattedDate.astro new file mode 100644 index 00000000..377286d9 --- /dev/null +++ b/www/src/components/FormattedDate.astro @@ -0,0 +1,25 @@ +--- +import type { HTMLAttributes } from 'astro/types'; + +type Props = HTMLAttributes<'time'> & { + date: Date; +}; + +const { date, ...attrs } = Astro.props; +--- + + + + diff --git a/www/src/components/GhostAstroFooter.astro b/www/src/components/GhostAstroFooter.astro new file mode 100644 index 00000000..9cd703de --- /dev/null +++ b/www/src/components/GhostAstroFooter.astro @@ -0,0 +1,4 @@ +--- + +--- +
Astro-GhostCMS is independently maintained and not provided by Ghost or Astro, Ghost is a trademark of The Ghost Foundation.
\ No newline at end of file diff --git a/www/src/components/Header.astro b/www/src/components/Header.astro new file mode 100644 index 00000000..2f649d8d --- /dev/null +++ b/www/src/components/Header.astro @@ -0,0 +1,30 @@ +--- +import '../styles/global.scss'; +import { SiteTitle } from '../consts'; +import favicon from '../assets/favicon.svg' +import { Image } from 'astro:assets'; +--- + +
+ +
+ + diff --git a/www/src/components/QuickStart.astro b/www/src/components/QuickStart.astro new file mode 100644 index 00000000..e704f21d --- /dev/null +++ b/www/src/components/QuickStart.astro @@ -0,0 +1,14 @@ +--- +import { Code } from "astro:components" +import quickstart from "../assets/quickstart.sh?raw" + +--- +
+ +
+
/|\ Astro-GhostCMS Quickstart /|\
+
+ + + +
diff --git a/www/src/components/SEO.astro b/www/src/components/SEO.astro new file mode 100644 index 00000000..1e2ddcca --- /dev/null +++ b/www/src/components/SEO.astro @@ -0,0 +1,87 @@ +--- +import type { ImageMetadata } from 'astro'; +type Image = { + src: string | ImageMetadata; + alt: string; +}; + +type SEOMetadata = { + name: string; + title: string; + description: string; + image?: Image | undefined; + canonicalURL?: URL | string | undefined; + locale?: string; +}; + +type OpenGraph = Partial & { + type?: string; +}; + +type Twitter = Partial & { + handle?: string; + card?: 'summary' | 'summary_large_image'; +}; + +export type Props = SEOMetadata & { + og?: OpenGraph; + twitter?: Twitter; +}; + +const { + name, + title, + description, + image, + locale = 'en', + canonicalURL = new URL(Astro.url.pathname, Astro.site), +} = Astro.props; + +const og = { + name, + title, + description, + canonicalURL, + image, + locale, + type: 'website', + ...(Astro.props.og ?? {}), +} satisfies OpenGraph; + +const twitter = { + name, + title, + description, + canonicalURL, + image, + locale, + card: 'summary_large_image', + ...Astro.props.twitter, +}; + +function normalizeImageUrl(image: string | ImageMetadata) { + return typeof image === 'string' ? image : image.src; +} +--- + + + + + + + + + + + + +{og.image && } +{og.image && } + + + + + + +{twitter.image && } +{twitter.image && } diff --git a/www/src/consts.ts b/www/src/consts.ts new file mode 100644 index 00000000..ce7d7548 --- /dev/null +++ b/www/src/consts.ts @@ -0,0 +1,5 @@ +// Place any global data in this file. +// You can import this data from anywhere in your site by using the `import` keyword. + +export const SiteTitle = 'Astro-GhostCMS'; +export const SiteDescription = 'Astro-GhostCMS Integration & API'; diff --git a/www/src/content/archivedreleases/v2_0/2_0_5.md b/www/src/content/archivedreleases/v2_0/2_0_5.md new file mode 100644 index 00000000..36b51333 --- /dev/null +++ b/www/src/content/archivedreleases/v2_0/2_0_5.md @@ -0,0 +1,48 @@ +--- +title: 'Introducing Astro-GhostCMS.xyz!' +date: '01-17-2024' +versionNumber: '2.0.5' +description: 'This is the First Release posted to our new website!' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## Introducing Astro-GhostCMS.xyz! + +Greetings, Astro-GhostCMS users! We're happy to announce the launch of our new website astro-ghostcms.xyz a central location to get all your relevent updates regarding our Astro-GhostCMS integration! + +### Welcome to Astro-GhostCMS + +- [Live Demo](https://demo.astro-ghostcms.xyz/) of the Astro-GhostCMS integration in action! +- [Live Demo's Repo](https://github.com/MatthiesenXYZ/astro-ghostcms-demo) for an example of how the setup looks. + +Astro minimum Version: **Astro v4.0** + +This Integration is 2 parts. Firstly, there is the API portion that uses the `@tryghost/content-api` to create the link between astro and GhostCMS. From there we move to the Second Part, which is a theme pre-programmed to pull ALL of its data from GhostCMS iteself instead of storing any data locally outside of Build. + +- *This package contains a independent copy of the tryghost content-api.js that is used to establish the connection so this package dose not depend on `@tryghost/content-api` package.* +- If you are looking for a more Customizable option please check [astro-ghostcms-basetheme](https://github.com/MatthiesenXYZ/astro-ghostcms-basetheme) +- This project is not setup for SSR in Integration mode. As such is will most likely not function properly in that mode. You will need to build your own project around the API or customize the *basetheme* linked above. + +### Quick Start : Astro Integration Mode + +In this mode, the addon will not be just an API, but will be a full Route takeover, there is plans to add more themes in time, but for now there is only the base Casper theme based on Ghost's main Theme. + +## Astro Add Installation + +```sh +# For fresh Install +npm create astro@latest +# Create Empty Install with standard typescript +# Then Delete entire `pages` folder under `/src/` +npx astro add @matthiesenxyz/astro-ghostcms +``` +#### Dont forget to set your environment Variables! + +You must also create 2 environment variables in a `.env` file with the following(*Below info is for DEMO Purposes. Please generate your own API_KEY for your Ghost install.*): + +```ansi frame="code" title=".env" +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz +``` diff --git a/www/src/content/archivedreleases/v2_0/2_0_8.md b/www/src/content/archivedreleases/v2_0/2_0_8.md new file mode 100644 index 00000000..1bc9d977 --- /dev/null +++ b/www/src/content/archivedreleases/v2_0/2_0_8.md @@ -0,0 +1,13 @@ +--- +title: 'New Feature: Theming (BETA)' +date: '01-18-2024' +versionNumber: '2.0.8' +description: 'New Feature Alert! Theming!' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## New Feature: Themes (BETA)! + +As of posting this there is now a new undocumented feature. Themes! this feature will allow the end-user the option of changing how their website's astro-ghostcms install looks and functons! I will be building a Theme Skeleton and then documentation for this new feature. Stay tuned for more updates as this is a beta feature! \ No newline at end of file diff --git a/www/src/content/config.ts b/www/src/content/config.ts new file mode 100644 index 00000000..0ea0835a --- /dev/null +++ b/www/src/content/config.ts @@ -0,0 +1,35 @@ +import { defineCollection, z } from 'astro:content'; +import { docsSchema } from '@astrojs/starlight/schema'; + +const releases = defineCollection({ + schema: ({ image }) => + z.object({ + title: z.string(), + description: z.string(), + versionNumber: z.string(), + image: z.object({ + src: image(), + alt: z.string(), + }).optional(), + date: z.date({ coerce: true }), + }), +}); + +const archivedreleases = defineCollection({ + schema: ({ image }) => + z.object({ + title: z.string(), + description: z.string(), + versionNumber: z.string(), + image: z.object({ + src: image(), + alt: z.string(), + }).optional(), + date: z.date({ coerce: true }), + }), +}); + +export const collections = { + docs: defineCollection({ schema: docsSchema() }), + releases, archivedreleases, +}; diff --git a/www/src/content/docs/docs/index.md b/www/src/content/docs/docs/index.md new file mode 100644 index 00000000..0b78d88f --- /dev/null +++ b/www/src/content/docs/docs/index.md @@ -0,0 +1,11 @@ +--- +title: Welcome to the Docs +description: Learn more about Astro-GhostCMS - Docs built on Starlight +--- + +Demo site status: +![Vercel](https://vercelbadge.vercel.app/api/matthiesenxyz/astro-ghostcms-demo) + +Welcome to the Astro-GhostCMS Docs! Powered by Starlight & Astro.build! + +Here you will find a document reference for the Astro-GhostCMS Integration & API \ No newline at end of file diff --git a/www/src/content/docs/docs/introduction/api/install.md b/www/src/content/docs/docs/introduction/api/install.md new file mode 100644 index 00000000..f6aa490e --- /dev/null +++ b/www/src/content/docs/docs/introduction/api/install.md @@ -0,0 +1,34 @@ +--- +title: API Only Mode - Install +description: API Only Mode - Install +--- + +# API Mode Install + +In this mode the integration will not deploy routes at all. you will have to build your own website to utilize the exported functions listed below. + +```sh +npx astro add @matthiesenxyz/astro-ghostcms +``` + +You must also create 2 environment variables in a `.env` file with the following: + +```ansi frame="code" title=".env" +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz +``` + +***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!*** + +Then Change your astro config option in `astro.config.ts` to looks like this: + +```ts frame="code" title="astro.config.ts" +import { defineConfig } from "astro/config"; +import GhostCMS from '@matthiesenxyz/astro-ghostcms'; + +export default defineConfig({ + site: "https://YOUR-DOMAIN-HERE.com", + // THIS WILL DISABLE DEFAULT ROUTE INJECT + integrations: [ GhostCMS({ disableRouteInjection: true })], +}); +``` \ No newline at end of file diff --git a/www/src/content/docs/docs/introduction/api/usage.md b/www/src/content/docs/docs/introduction/api/usage.md new file mode 100644 index 00000000..ea6e2ea4 --- /dev/null +++ b/www/src/content/docs/docs/introduction/api/usage.md @@ -0,0 +1,136 @@ +--- +title: API Only Mode - Basic Usage +description: API Only Mode - Basic Usage +--- + +## Manual Function Usage Examples: + +### getGhostPosts() - Get list of posts + +```astro frame="code" title="getGhostPosts()" +--- +// IMPORT {GET} GhostPosts Function +import { getGhostPosts } from '@matthiesenxyz/astro-ghostcms/api'; +// GET LIST OF ALL POSTS +const ghostPosts = await getGhostPosts(); +--- +``` + +### getGhostRecentPosts(setLimit?) - Get Recent Posts (setLimit={6}) + +```astro frame="code" title="getGhostRecentPosts()" +--- +// IMPORT {GET} GhostFeaturedPosts Function +import { getGhostRecentPosts } from "@matthiesenxyz/astro-ghostcms/api"; +// CREATE INTERFACE TO PASS 'setLimit' for POST LIMIT +interface Props { + setLimit?:number; +} +// IF 'setLimit' IS NOT DEFINED AS PROP THEN MAKE IT DEFAULT TO 'undefined' +const { setLimit = undefined } = Astro.props +// GET POSTS with Limit +const ghostPosts = await getGhostRecentPosts(setLimit); +--- +``` + +### getGhostFeaturedPosts(setLimit?) - Get Featured Posts (setLimit={1}) + +```astro frame="code" title="getGhostFeaturedPosts()" +--- +// IMPORT {GET} GhostFeaturedPosts Function +import { getGhostFeaturedPosts } from "@matthiesenxyz/astro-ghostcms/api"; +// CREATE INTERFACE TO PASS 'setLimit' for POST LIMIT +interface Props { + setLimit?:number; +} +// IF 'setLimit' IS NOT DEFINED AS PROP THEN MAKE IT DEFAULT TO 'undefined' +const { setLimit = undefined } = Astro.props +// GET POSTS with Limit +const ghostPosts = await getGhostFeaturedPosts(setLimit); +--- +``` + +### getGhostPostbySlug(slug) - Get Post by Slug + +```astro frame="code" title="getGhostPostbySlug()" +--- +// IMPORT {GET} GhostPostbySlug Function +import { getGhostPostbySlug } from '@matthiesenxyz/astro-ghostcms/api'; +// GET SLUG from /blog/[slug] +const { slug } = Astro.params; +// GET CURRENT POST BY PASSING SLUG TO FUNCTION +const ghostPost = await getGhostPostbySlug(slug); +--- +``` + +### getGhostPostsbyTag(slug) - Get Posts list by Tag slug + +```astro frame="code" title="getGhostPostbyTag()" +--- +// IMPORT {GET} GhostPostsbyTag, and GhostTagbySlug Functions +import { getGhostPostsbyTag, getGhostTagbySlug } from '@matthiesenxyz/astro-ghostcms/api'; +// GET SLUG from /blog/tag/[slug] +const { slug } = Astro.params; +// GET TAG BY SLUG TO DISPLAY TAG INFO +const ghostTag = await getGhostTagbySlug(slug); +// GET POSTS FILTERED BY TAG SLUG +const ghostPosts = await getGhostPostsbyTag(slug) +--- +``` + +### getGhostTags() - Get list of tags + +```astro frame="code" title="getGhostTag()" +--- +// IMPORT {GET} GhostTags Function +import { getGhostTags } from "@matthiesenxyz/astro-ghostcms/api"; +// GET LIST OF ALL TAGS +const ghostTags = await getGhostTags(); +--- +``` + +### getGhostAuthors() - Get list of Authors + +```astro frame="code" title="getGhostAuthors()" +--- +// IMPORT {GET} GhostAuthors Function +import { getGhostAuthors } from "@matthiesenxyz/astro-ghostcms/api"; +// GET LIST OF ALL AUTHORS +const ghostAuthors = await getGhostAuthors(); +--- +``` + +### getGhostPages() - Get list of Pages + +```astro frame="code" title="getGhostPages()" +--- +// IMPORT {GET} GhostAuthors Function +import { getGhostPages } from "@matthiesenxyz/astro-ghostcms/api"; +// GET LIST OF ALL AUTHORS +const ghostPages = await getGhostPages(); +--- +``` + +### getGhostPage(slug) - Get page by slug + +```astro frame="code" title="getGhostPage()" +--- +// IMPORT {GET} GhostPostbySlug Function +import { getGhostPage } from '@matthiesenxyz/astro-ghostcms/api'; +// GET SLUG from /blog/[slug] +const { slug } = Astro.params; +// GET CURRENT POST BY PASSING SLUG TO FUNCTION +const ghostpage = await getGhostPage(slug); +--- +``` + +### getGhostSettings() - Get Settings for GhostCMS + +```astro frame="code" title="getGhostSettings()" +--- +// IMPORT {GET} GhostAuthors Function +import { getGhostSettings } from "@matthiesenxyz/astro-ghostcms/api"; +// GET LIST OF ALL AUTHORS +const ghostSettings = await getGhostSettings(); +--- +``` \ No newline at end of file diff --git a/www/src/content/docs/docs/introduction/getting-started.md b/www/src/content/docs/docs/introduction/getting-started.md new file mode 100644 index 00000000..41dc4951 --- /dev/null +++ b/www/src/content/docs/docs/introduction/getting-started.md @@ -0,0 +1,17 @@ +--- +title: Getting Started with Astro-GhostCMS +description: Getting Started +--- + + +- [Live Demo](https://demo.astro-ghostcms.xyz/) of the Astro-GhostCMS integration in action! +- [Live Demo - Unlighthouse Test](https://test.demo.astro-ghostcms.xyz) for a Automatically updated Lighthouse test from every deploy! +- [Live Demo's Repo](https://github.com/MatthiesenXYZ/astro-ghostcms-demo) for an example of how the setup looks. + +Astro minimum Version: **Astro v4.0** + +This Integration is 2 parts. Firstly, there is the API portion that uses the `@tryghost/content-api` to create the link between astro and GhostCMS. From there we move to the Second Part, which is a theme pre-programmed to pull ALL of its data from GhostCMS iteself instead of storing any data locally outside of Build. + +- *This package contains a independent copy of the tryghost content-api.js that is used to establish the connection so this package dose not depend on `@tryghost/content-api` package.* +- If you are looking for a more Customizable option please check [astro-ghostcms-basetheme](https://github.com/MatthiesenXYZ/astro-ghostcms-basetheme) +- The default theme is not setup for SSR in Integration mode. As such is will most likely not function properly in that mode. You will need to build your own project around the API or customize the *basetheme* linked above. diff --git a/www/src/content/docs/docs/introduction/integration/config.md b/www/src/content/docs/docs/introduction/integration/config.md new file mode 100644 index 00000000..9f7f514c --- /dev/null +++ b/www/src/content/docs/docs/introduction/integration/config.md @@ -0,0 +1,50 @@ +--- +title: Integration Mode - Configuration Options +description: Integration Mode - Configuration Options +--- + +### This is still a *BETA* Feature + +Theme config option in `astro.config.ts` looks like this: + +```ts frame="code" title="astro.config.ts" +import { defineConfig } from "astro/config"; +import GhostCMS from '@matthiesenxyz/astro-ghostcms'; + +export default defineConfig({ + site: "https://YOUR-DOMAIN-HERE.com", + integrations: [ + GhostCMS({ + // *OPTIONAL* THIS Option allows the user to disable default route + // injections, disabling the default layout and theme all together. + // Allowing the user to still use integration features while building + // off of the included API functions + disableRouteInjection: false // DEFAULT VALUE + // *OPTIONAL* Setting this to true will disable the extra info logs + disableConsoleOutput: false // DEFAULT VALUE + // *OPTIONAL* THIS IS THE DEFAULT VALUE + theme: '@matthiesenxyz/astro-ghostcms', + // THIS IS TO SHOW SUPPORTED FEATURES FOR MORE INFO SEE + // npm:@astrojs/sitemap package README + sitemap: { + customPages: // OPTIONAL - string[] + entryLimit: // OPTIONAL - number + } + // THIS IS TO SHOW SUPPORTED FEATURES FOR MORE INFO SEE + // npm:astro-robots-txt package README + robotstxt: { + host: // OPTIONAL - string + sitemap: // OPTIONAL - string + sitemapBaseFileName: // OPTIONAL - string + policy: { // OPTIONAL + userAgent: // REQUIRED IF POLICY IS PRESENT - string + allow: // OPTIONAL - string + disallow: //OPTIONAL - string + cleanParam: //OPTIONAL - string + crawlDelay: //OPTIONAL - number + } + } + }), + ], +}); +``` \ No newline at end of file diff --git a/www/src/content/docs/docs/introduction/integration/manual.md b/www/src/content/docs/docs/introduction/integration/manual.md new file mode 100644 index 00000000..69510e52 --- /dev/null +++ b/www/src/content/docs/docs/introduction/integration/manual.md @@ -0,0 +1,49 @@ +--- +title: Integration Mode - Manual Install +description: Integration Mode - Manual Install +--- + +## Install + +```sh +npm i @matthiesenxyz/astro-ghostcms +``` + +Then set your `astro.config.ts` to look like this: + +```ts frame="code" title="astro.config.ts" +import { defineConfig } from "astro/config"; +import GhostCMS from '@matthiesenxyz/astro-ghostcms'; + +// https://astro.build/config +export default defineConfig({ + site: "https://YOUR-DOMAIN-HERE.com" + integrations: [GhostCMS()], +}); +``` + + +## Setup `.env` variables + +```ansi frame="code" title=".env" +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz +``` + +***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!*** + +## Created Routes + +The routes are the same as a standard Ghost Blog so you can migrate to Astro easily. + +| Route | Content | +| --------------------- | ----------------------------------------- | +| `/` | Homepage with recents/features Blog Posts | +| `/404` | 404 Page | +| `/[slug]` | Post or Page | +| `/author/[slug]` | Author page with related posts | +| `/authors` | All the authors | +| `/tag[slug]` | Tag page with related posts | +| `/tags` | All the tags | +| `/archives/[...page]` | All the posts, paginated | +| `/rss.xml` | All the posts, in a FEED | diff --git a/www/src/content/docs/docs/introduction/integration/quick.md b/www/src/content/docs/docs/introduction/integration/quick.md new file mode 100644 index 00000000..c0c57e20 --- /dev/null +++ b/www/src/content/docs/docs/introduction/integration/quick.md @@ -0,0 +1,39 @@ +--- +title: Integration Mode - Quick Install +description: Integration Mode - Quick Install +--- + +## Install + +```sh +# For fresh Install +npm create astro@latest +# Create Empty Install with standard typescript +# Then Delete entire `pages` folder under `/src/` +npx astro add @matthiesenxyz/astro-ghostcms +``` + +## Setup `.env` variables + +```ansi frame="code" title=".env" +CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48 +CONTENT_API_URL=https://ghostdemo.matthiesen.xyz +``` + +***When you deploy your install dont forget to set the above ENVIRONMENT VARIABLES!*** + +## Created Routes + +The routes are the same as a standard Ghost Blog so you can migrate to Astro easily. + +| Route | Content | +| --------------------- | ----------------------------------------- | +| `/` | Homepage with recents/features Blog Posts | +| `/404` | 404 Page | +| `/[slug]` | Post or Page | +| `/author/[slug]` | Author page with related posts | +| `/authors` | All the authors | +| `/tag[slug]` | Tag page with related posts | +| `/tags` | All the tags | +| `/archives/[...page]` | All the posts, paginated | +| `/rss.xml` | All the posts, in a FEED | diff --git a/www/src/content/docs/docs/reference/ghost-content-api-ref.md b/www/src/content/docs/docs/reference/ghost-content-api-ref.md new file mode 100644 index 00000000..5244cdf0 --- /dev/null +++ b/www/src/content/docs/docs/reference/ghost-content-api-ref.md @@ -0,0 +1,205 @@ +--- +title: Ghost Content API References +description: Ghost Content API References +--- + +- [Main Content API Docs (ghost.org)](https://ghost.org/docs/content-api/) + +## Example of Posts Output + +```json frame="code" title="Posts" +{ + "posts": [ + { + "slug": "welcome-short", + "id": "5c7ece47da174000c0c5c6d7", + "uuid": "3a033ce7-9e2d-4b3b-a9ef-76887efacc7f", + "title": "Welcome", + "html": "

👋 Welcome, it's great to have you here.

", + "comment_id": "5c7ece47da174000c0c5c6d7", + "feature_image": "https://casper.ghost.org/v2.0.0/images/welcome-to-ghost.jpg", + "feature_image_alt": null, + "feature_image_caption": null, + "featured": false, + "meta_title": null, + "meta_description": null, + "created_at": "2019-03-05T19:30:15.000+00:00", + "updated_at": "2019-03-26T19:45:31.000+00:00", + "published_at": "2012-11-27T15:30:00.000+00:00", + "custom_excerpt": "Welcome, it's great to have you here.", + "codeinjection_head": null, + "codeinjection_foot": null, + "og_image": null, + "og_title": null, + "og_description": null, + "twitter_image": null, + "twitter_title": null, + "twitter_description": null, + "custom_template": null, + "canonical_url": null, + "authors": [ + { + "id": "5951f5fca366002ebd5dbef7", + "name": "Ghost", + "slug": "ghost", + "profile_image": "https://demo.ghost.io/content/images/2017/07/ghost-icon.png", + "cover_image": null, + "bio": "The professional publishing platform", + "website": "https://ghost.org", + "location": null, + "facebook": "ghost", + "twitter": "@tryghost", + "meta_title": null, + "meta_description": null, + "url": "https://demo.ghost.io/author/ghost/" + } + ], + "tags": [ + { + "id": "59799bbd6ebb2f00243a33db", + "name": "Getting Started", + "slug": "getting-started", + "description": null, + "feature_image": null, + "visibility": "public", + "meta_title": null, + "meta_description": null, + "url": "https://demo.ghost.io/tag/getting-started/" + } + ], + "primary_author": { + "id": "5951f5fca366002ebd5dbef7", + "name": "Ghost", + "slug": "ghost", + "profile_image": "https://demo.ghost.io/content/images/2017/07/ghost-icon.png", + "cover_image": null, + "bio": "The professional publishing platform", + "website": "https://ghost.org", + "location": null, + "facebook": "ghost", + "twitter": "@tryghost", + "meta_title": null, + "meta_description": null, + "url": "https://demo.ghost.io/author/ghost/" + }, + "primary_tag": { + "id": "59799bbd6ebb2f00243a33db", + "name": "Getting Started", + "slug": "getting-started", + "description": null, + "feature_image": null, + "visibility": "public", + "meta_title": null, + "meta_description": null, + "url": "https://demo.ghost.io/tag/getting-started/" + }, + "url": "https://demo.ghost.io/welcome-short/", + "excerpt": "Welcome, it's great to have you here." + } + ] +} +``` + +## Example of Tags Output + +```json frame="code" title="Tags" +{ + "tags": [ + { + "slug": "getting-started", + "id": "5ddc9063c35e7700383b27e0", + "name": "Getting Started", + "description": null, + "feature_image": null, + "visibility": "public", + "meta_title": null, + "meta_description": null, + "og_image": null, + "og_title": null, + "og_description": null, + "twitter_image": null, + "twitter_title": null, + "twitter_description": null, + "codeinjection_head": null, + "codeinjection_foot": null, + "canonical_url": null, + "accent_color": null, + "url": "https://docs.ghost.io/tag/getting-started/" + } + ] +} +``` + +## Example of Authors Output + +```json frame="code" title="Authors" +{ + "authors": [ + { + "slug": "cameron", + "id": "5ddc9b9510d8970038255d02", + "name": "Cameron Almeida", + "profile_image": "https://docs.ghost.io/content/images/2019/03/1c2f492a-a5d0-4d2d-b350-cdcdebc7e413.jpg", + "cover_image": null, + "bio": "Editor at large.", + "website": "https://example.com", + "location": "Cape Town", + "facebook": "example", + "twitter": "@example", + "meta_title": null, + "meta_description": null, + "url": "https://docs.ghost.io/author/cameron/" + } + ] +} +``` + +## Example of Settings Output + +```json frame="code" title="Settings" +{ + "settings": { + "title": "Ghost", + "description": "The professional publishing platform", + "logo": "https://docs.ghost.io/content/images/2014/09/Ghost-Transparent-for-DARK-BG.png", + "icon": "https://docs.ghost.io/content/images/2017/07/favicon.png", + "accent_color": null, + "cover_image": "https://docs.ghost.io/content/images/2019/10/publication-cover.png", + "facebook": "ghost", + "twitter": "@tryghost", + "lang": "en", + "timezone": "Etc/UTC", + "codeinjection_head": null, + "codeinjection_foot": "", + "navigation": [ + { + "label": "Home", + "url": "/" + }, + { + "label": "About", + "url": "/about/" + }, + { + "label": "Getting Started", + "url": "/tag/getting-started/" + }, + { + "label": "Try Ghost", + "url": "https://ghost.org" + } + ], + "secondary_navigation": [], + "meta_title": null, + "meta_description": null, + "og_image": null, + "og_title": null, + "og_description": null, + "twitter_image": null, + "twitter_title": null, + "twitter_description": null, + "members_support_address": "noreply@docs.ghost.io", + "url": "https://docs.ghost.io/" + } +} +``` \ No newline at end of file diff --git a/www/src/content/docs/docs/reference/unlighthouse-reports.md b/www/src/content/docs/docs/reference/unlighthouse-reports.md new file mode 100644 index 00000000..4249a7dc --- /dev/null +++ b/www/src/content/docs/docs/reference/unlighthouse-reports.md @@ -0,0 +1,9 @@ +--- +title: Unlighthouse Report Lists +description: Unlighthouse Report Lists +--- + +Below you will find a list of links to different lighthouse reports generated using [Unlighthouse](https://unlighthouse.dev)'s CI utility + +- [Main Demo](https://test.demo.astro-ghostcms.xyz) +- [Base Theme Demo](https://test.basetheme-demo.astro-ghostcms.xyz) \ No newline at end of file diff --git a/www/src/content/releases/posts/01192024.md b/www/src/content/releases/posts/01192024.md new file mode 100644 index 00000000..1944f8cb --- /dev/null +++ b/www/src/content/releases/posts/01192024.md @@ -0,0 +1,13 @@ +--- +title: 'We now have automated Lighthouse Reports with Unlighthouse!' +date: '01-19-2024' +versionNumber: 'POST' +description: 'New Feature Alert! Theming!' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## We now have automated Lighthouse Reports with Unlighthouse!! + +Hello! Our Main Demo site now autogenerates a Lighthouse Report every deployment! To see this test at any point just goto [test.demo.astro-ghostcms.xyz](https://test.demo.astro-ghostcms.xyz) eventually the goal will be to have a `test.*` domain for each of the themes as well to be able to demonstrate lighthouse scores for each of our inhouse projects! \ No newline at end of file diff --git a/www/src/content/releases/v2_1/2_1_0.md b/www/src/content/releases/v2_1/2_1_0.md new file mode 100644 index 00000000..824d4cab --- /dev/null +++ b/www/src/content/releases/v2_1/2_1_0.md @@ -0,0 +1,20 @@ +--- +title: 'Updates & Bug Fixes' +date: '01-20-2024 08:00' +versionNumber: '2.1.0' +description: 'Updates & Bug Fixes' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## Updates + +This patch resolved some outstanding issues with the api integration itself. There had been some issues with types being imported and not working. that is now solved. + +RSS Implentation is successful, Integration now checks that .env file exisits with the required values set. + +New Features in progress: +- sitemap integration +- robots integration +- rss styling \ No newline at end of file diff --git a/www/src/content/releases/v2_1/2_1_3.md b/www/src/content/releases/v2_1/2_1_3.md new file mode 100644 index 00000000..b61f4216 --- /dev/null +++ b/www/src/content/releases/v2_1/2_1_3.md @@ -0,0 +1,22 @@ +--- +title: 'Updates & Bug Fixes' +date: '01-20-2024 11:00' +versionNumber: '2.1.3' +description: 'Updates & Bug Fixes' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## Bug Fixes & New Config Options + +### Fixes: + +This patch resolved the issues that were causing sitemap, and robots to not load fully. Issue now resolved. + +### New: + +This patch also creates new Configuration Options for Sitemap and RobotsTxt allowing the user to modify the integrated plugins instead of having to run them independently from this Integration. More info on the Docs. + +#### Features in progress: +- rss styling \ No newline at end of file diff --git a/www/src/content/releases/v2_1/2_1_5.md b/www/src/content/releases/v2_1/2_1_5.md new file mode 100644 index 00000000..5c245851 --- /dev/null +++ b/www/src/content/releases/v2_1/2_1_5.md @@ -0,0 +1,22 @@ +--- +title: 'IntelliSense Docs Integration!' +date: '01-20-2024 14:40' +versionNumber: '2.1.5' +description: 'IntelliSense Docs Integration!' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## IntelliSense Docs Integration! + +### Fixes: + +Unnoted v2.1.4 was supposed to add jsDocs to our IntelliSense but that caused all sorts of errors at first. But we are glad to announce, IT IS NOW WORKING! now while you are trying to setup your config it will give you some help! + +### New: + +- IntelliSense jsDoc Integration(Resources right in your code editor)! + +#### Features in progress: +- rss styling \ No newline at end of file diff --git a/www/src/content/releases/v2_1/2_1_7.md b/www/src/content/releases/v2_1/2_1_7.md new file mode 100644 index 00000000..cf0e3b9d --- /dev/null +++ b/www/src/content/releases/v2_1/2_1_7.md @@ -0,0 +1,23 @@ +--- +title: 'More Features! and a 404 page!' +date: '01-21-2024 01:20' +versionNumber: '2.1.7' +description: 'More Features! and a 404 page!' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## More Features! and a 404 page! + +### Fixes: + +v2.1.6 & v2.1.7 include updates to include a new 404 page route, as well clean up a bunch of internal code. + +### New: + +- New options that allow users to disable both console logging and the default route injection + +#### Features in progress: + +- rss styling \ No newline at end of file diff --git a/www/src/content/releases/v2_1/2_1_8.md b/www/src/content/releases/v2_1/2_1_8.md new file mode 100644 index 00000000..42f506e3 --- /dev/null +++ b/www/src/content/releases/v2_1/2_1_8.md @@ -0,0 +1,17 @@ +--- +title: 'Minior Bug fixes & some code cleanup' +date: '01-21-2024 07:00' +versionNumber: '2.1.8' +description: 'Minior Bug fixes & some code cleanup' +#image: +# src: '../../assets/starlog-placeholder-2.jpg' +# alt: 'The full Astro logo.' +--- + +## Minior Bug fixes & some code cleanup + +Nothing Major in this update, i went through and cleaned up and reorganized some files and code. No breaking changes no bugs. + +#### Features in progress: + +- rss styling \ No newline at end of file diff --git a/www/src/env.d.ts b/www/src/env.d.ts new file mode 100644 index 00000000..c13bd73c --- /dev/null +++ b/www/src/env.d.ts @@ -0,0 +1,2 @@ +/// +/// \ No newline at end of file diff --git a/www/src/layouts/ArchivePostLayout.astro b/www/src/layouts/ArchivePostLayout.astro new file mode 100644 index 00000000..dcd19017 --- /dev/null +++ b/www/src/layouts/ArchivePostLayout.astro @@ -0,0 +1,41 @@ +--- +import type { CollectionEntry } from 'astro:content'; +import BaseHead from '../components/BaseHead.astro'; +import FormattedDate from '../components/FormattedDate.astro'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; +import { SiteTitle } from '../consts'; + +type Props = { + arrelease: CollectionEntry<'archivedreleases'>; +}; + +const { arrelease } = Astro.props; +--- + + + + + {arrelease.data.versionNumber} | {SiteTitle} + + +
+
+
+
+
+
{arrelease.data.versionNumber}
+ +
+
+
+ +
+
+