diff --git a/.changeset/moody-maps-lay.md b/.changeset/moody-maps-lay.md new file mode 100644 index 0000000000..20ea52ab5a --- /dev/null +++ b/.changeset/moody-maps-lay.md @@ -0,0 +1,7 @@ +--- +'nextra-theme-blog': minor +'nextra-theme-docs': minor +'nextra': minor +--- + +support ANSI highlighting diff --git a/docs/pages/docs/guide/syntax-highlighting.mdx b/docs/pages/docs/guide/syntax-highlighting.mdx index 3edf31e749..a12ec52a03 100644 --- a/docs/pages/docs/guide/syntax-highlighting.mdx +++ b/docs/pages/docs/guide/syntax-highlighting.mdx @@ -138,6 +138,34 @@ Renders: console.log('hello, world') ``` +### ANSI Highlighting + +You can highlight ANSI escape codes: + +````md filename="Markdown" +```ansi + ✓ src/index.test.ts (1) +  Test Files  1 passed (1) +  Tests  1 passed (1) +  Start at  23:32:41 +  Duration  11ms +  PASS  Waiting for file changes... + press h to show help, press q to quit +``` +```` + +Renders: + +```ansi + ✓ src/index.test.ts (1) +  Test Files  1 passed (1) +  Tests  1 passed (1) +  Start at  23:32:41 +  Duration  11ms +  PASS  Waiting for file changes... + press h to show help, press q to quit +``` + ## Supported Languages Check [this list](https://github.com/shikijs/shiki/blob/main/docs/languages.md) for all supported languages. diff --git a/packages/nextra/package.json b/packages/nextra/package.json index debcd13f3f..9f517fdbc4 100644 --- a/packages/nextra/package.json +++ b/packages/nextra/package.json @@ -123,7 +123,7 @@ "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "remark-reading-time": "^2.0.1", - "shiki": "^0.14.0", + "shiki": "^0.14.2", "slash": "^3.0.0", "title": "^3.5.3", "unist-util-remove": "^3.1.1", diff --git a/packages/nextra/src/theme.json b/packages/nextra/src/theme.json index f3fafff909..3bc8827558 100644 --- a/packages/nextra/src/theme.json +++ b/packages/nextra/src/theme.json @@ -3,7 +3,23 @@ "type": "css", "colors": { "editor.foreground": "#000001", - "editor.background": "#000002" + "editor.background": "#000002", + "terminal.ansiBlack": "#A00000", + "terminal.ansiRed": "#A00001", + "terminal.ansiGreen": "#A00002", + "terminal.ansiYellow": "#A00003", + "terminal.ansiBlue": "#A00004", + "terminal.ansiMagenta": "#A00005", + "terminal.ansiCyan": "#A00006", + "terminal.ansiWhite": "#A00007", + "terminal.ansiBrightBlack": "#A00008", + "terminal.ansiBrightRed": "#A00009", + "terminal.ansiBrightGreen": "#A00010", + "terminal.ansiBrightYellow": "#A00011", + "terminal.ansiBrightBlue": "#A00012", + "terminal.ansiBrightMagenta": "#A00013", + "terminal.ansiBrightCyan": "#A00014", + "terminal.ansiBrightWhite": "#A00015" }, "tokenColors": [ { diff --git a/packages/nextra/styles/variables.css b/packages/nextra/styles/variables.css index 87312f2be9..32ca561d8b 100644 --- a/packages/nextra/styles/variables.css +++ b/packages/nextra/styles/variables.css @@ -10,6 +10,40 @@ --shiki-token-string-expression: var(--shiki-token-string); --shiki-token-punctuation: oklch(24.78% 0 0); --shiki-token-link: var(--shiki-token-string); + + /* from github-light */ + --shiki-color-ansi-black: #24292e; + --shiki-color-ansi-black-dim: #24292e80; + --shiki-color-ansi-red: #d73a49; + --shiki-color-ansi-red-dim: #d73a4980; + --shiki-color-ansi-green: #28a745; + --shiki-color-ansi-green-dim: #28a74580; + --shiki-color-ansi-yellow: #dbab09; + --shiki-color-ansi-yellow-dim: #dbab0980; + --shiki-color-ansi-blue: #0366d6; + --shiki-color-ansi-blue-dim: #0366d680; + --shiki-color-ansi-magenta: #5a32a3; + --shiki-color-ansi-magenta-dim: #5a32a380; + --shiki-color-ansi-cyan: #1b7c83; + --shiki-color-ansi-cyan-dim: #1b7c8380; + --shiki-color-ansi-white: #6a737d; + --shiki-color-ansi-white-dim: #6a737d80; + --shiki-color-ansi-bright-black: #959da5; + --shiki-color-ansi-bright-black-dim: #959da580; + --shiki-color-ansi-bright-red: #cb2431; + --shiki-color-ansi-bright-red-dim: #cb243180; + --shiki-color-ansi-bright-green: #22863a; + --shiki-color-ansi-bright-green-dim: #22863a80; + --shiki-color-ansi-bright-yellow: #b08800; + --shiki-color-ansi-bright-yellow-dim: #b0880080; + --shiki-color-ansi-bright-blue: #005cc5; + --shiki-color-ansi-bright-blue-dim: #005cc580; + --shiki-color-ansi-bright-magenta: #5a32a3; + --shiki-color-ansi-bright-magenta-dim: #5a32a380; + --shiki-color-ansi-bright-cyan: #3192aa; + --shiki-color-ansi-bright-cyan-dim: #3192aa80; + --shiki-color-ansi-bright-white: #d1d5da; + --shiki-color-ansi-bright-white-dim: #d1d5da80; } .dark { @@ -23,4 +57,38 @@ --shiki-token-string-expression: oklch(69.28% 0.179 143.2); --shiki-token-punctuation: oklch(79.21% 0 0); --shiki-token-link: var(--shiki-token-string); + + /* from github-dark */ + --shiki-color-ansi-black: #586069; + --shiki-color-ansi-black-dim: #58606980; + --shiki-color-ansi-red: #ea4a5a; + --shiki-color-ansi-red-dim: #ea4a5a80; + --shiki-color-ansi-green: #34d058; + --shiki-color-ansi-green-dim: #34d05880; + --shiki-color-ansi-yellow: #ffea7f; + --shiki-color-ansi-yellow-dim: #ffea7f80; + --shiki-color-ansi-blue: #2188ff; + --shiki-color-ansi-blue-dim: #2188ff80; + --shiki-color-ansi-magenta: #b392f0; + --shiki-color-ansi-magenta-dim: #b392f080; + --shiki-color-ansi-cyan: #39c5cf; + --shiki-color-ansi-cyan-dim: #39c5cf80; + --shiki-color-ansi-white: #d1d5da; + --shiki-color-ansi-white-dim: #d1d5da80; + --shiki-color-ansi-bright-black: #959da5; + --shiki-color-ansi-bright-black-dim: #959da580; + --shiki-color-ansi-bright-red: #f97583; + --shiki-color-ansi-bright-red-dim: #f9758380; + --shiki-color-ansi-bright-green: #85e89d; + --shiki-color-ansi-bright-green-dim: #85e89d80; + --shiki-color-ansi-bright-yellow: #ffea7f; + --shiki-color-ansi-bright-yellow-dim: #ffea7f80; + --shiki-color-ansi-bright-blue: #79b8ff; + --shiki-color-ansi-bright-blue-dim: #79b8ff80; + --shiki-color-ansi-bright-magenta: #b392f0; + --shiki-color-ansi-bright-magenta-dim: #b392f080; + --shiki-color-ansi-bright-cyan: #56d4dd; + --shiki-color-ansi-bright-cyan-dim: #56d4dd80; + --shiki-color-ansi-bright-white: #fafbfc; + --shiki-color-ansi-bright-white-dim: #fafbfc80; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f330b0735..dcb6c66dda 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,7 +59,7 @@ importers: version: 4.6.0(eslint@8.39.0) eslint-plugin-tailwindcss: specifier: 3.11.0 - version: 3.11.0(tailwindcss@3.3.1) + version: 3.11.0 eslint-plugin-typescript-sort-keys: specifier: 2.3.0 version: 2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) @@ -77,7 +77,7 @@ importers: version: 5.0.0 tsup: specifier: 6.7.0 - version: 6.7.0(postcss@8.4.21)(typescript@5.0.4) + version: 6.7.0(typescript@5.0.4) turbo: specifier: 1.9.3 version: 1.9.3 @@ -98,7 +98,7 @@ importers: version: 10.0.0(react-dom@18.2.0)(react@18.2.0) next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: link:../packages/nextra @@ -138,7 +138,7 @@ importers: dependencies: next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: file:packages/nextra(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) @@ -161,7 +161,7 @@ importers: dependencies: next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: file:packages/nextra(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) @@ -196,7 +196,7 @@ importers: version: 6.11.4(react@18.2.0) next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: file:packages/nextra(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) @@ -265,7 +265,7 @@ importers: version: 6.0.2 rehype-pretty-code: specifier: 0.9.4 - version: 0.9.4(shiki@0.14.0) + version: 0.9.4(shiki@0.14.2) remark-gfm: specifier: ^3.0.1 version: 3.0.1 @@ -276,8 +276,8 @@ importers: specifier: ^2.0.1 version: 2.0.1 shiki: - specifier: ^0.14.0 - version: 0.14.0 + specifier: ^0.14.2 + version: 0.14.2 slash: specifier: ^3.0.0 version: 3.0.0 @@ -314,7 +314,7 @@ importers: version: 18.0.6 '@types/webpack': specifier: ^5.28.0 - version: 5.28.0(esbuild@0.17.11) + version: 5.28.0 '@types/webpack-env': specifier: ^1.18.0 version: 1.18.0 @@ -323,7 +323,7 @@ importers: version: 3.2.12 next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -335,7 +335,7 @@ importers: version: 10.1.2 vitest: specifier: ^0.27.1 - version: 0.27.1(@edge-runtime/vm@2.1.2)(jsdom@22.0.0) + version: 0.27.1 packages/nextra-theme-blog: dependencies: @@ -360,7 +360,7 @@ importers: version: 7.4.0 next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: link:../nextra @@ -390,7 +390,7 @@ importers: version: 3.3.1(postcss@8.4.21) vitest: specifier: ^0.27.1 - version: 0.27.1(@edge-runtime/vm@2.1.2)(jsdom@22.0.0) + version: 0.27.1 packages/nextra-theme-docs: dependencies: @@ -451,7 +451,7 @@ importers: version: 18.0.6 '@vitejs/plugin-react': specifier: ^3.0.1 - version: 3.0.1(vite@4.0.4) + version: 3.0.1 concurrently: specifier: ^7.3.0 version: 7.4.0 @@ -460,7 +460,7 @@ importers: version: 22.0.0 next: specifier: ^13.3.1 - version: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + version: 13.3.1(react-dom@18.2.0)(react@18.2.0) nextra: specifier: workspace:* version: link:../nextra @@ -487,7 +487,7 @@ importers: version: 3.3.1(postcss@8.4.21) vitest: specifier: ^0.27.1 - version: 0.27.1(@edge-runtime/vm@2.1.2)(jsdom@22.0.0) + version: 0.27.1(jsdom@22.0.0) packages: @@ -497,16 +497,19 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.14 + dev: true /@babel/code-frame@7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 + dev: true /@babel/compat-data@7.20.10: resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} engines: {node: '>=6.9.0'} + dev: true /@babel/core@7.20.12: resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} @@ -529,6 +532,7 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color + dev: true /@babel/generator@7.20.7: resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} @@ -537,6 +541,7 @@ packages: '@babel/types': 7.20.7 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 + dev: true /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12): resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} @@ -550,10 +555,12 @@ packages: browserslist: 4.21.4 lru-cache: 5.1.1 semver: 6.3.0 + dev: true /@babel/helper-environment-visitor@7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-function-name@7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} @@ -561,18 +568,21 @@ packages: dependencies: '@babel/template': 7.20.7 '@babel/types': 7.20.7 + dev: true /@babel/helper-hoist-variables@7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 + dev: true /@babel/helper-module-imports@7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 + dev: true /@babel/helper-module-transforms@7.20.11: resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} @@ -588,6 +598,7 @@ packages: '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-plugin-utils@7.20.2: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} @@ -599,24 +610,29 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 + dev: true /@babel/helper-split-export-declaration@7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 + dev: true /@babel/helper-string-parser@7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-option@7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helpers@7.20.7: resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==} @@ -627,6 +643,7 @@ packages: '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color + dev: true /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -635,6 +652,7 @@ packages: '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true /@babel/parser@7.20.7: resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==} @@ -642,6 +660,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.20.7 + dev: true /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.20.12): resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} @@ -676,6 +695,7 @@ packages: '@babel/code-frame': 7.18.6 '@babel/parser': 7.20.7 '@babel/types': 7.20.7 + dev: true /@babel/traverse@7.20.12: resolution: {integrity: sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==} @@ -693,6 +713,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/types@7.20.7: resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} @@ -701,6 +722,7 @@ packages: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + dev: true /@changesets/apply-release-plan@6.1.3: resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} @@ -1415,6 +1437,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 + dev: true /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -1423,14 +1446,17 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.14 + dev: true /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/source-map@0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} @@ -1441,12 +1467,14 @@ packages: /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true /@jridgewell/trace-mapping@0.3.14: resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + dev: true /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1985,12 +2013,12 @@ packages: resolution: {integrity: sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==} dev: true - /@types/webpack@5.28.0(esbuild@0.17.11): + /@types/webpack@5.28.0: resolution: {integrity: sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==} dependencies: '@types/node': 18.11.18 tapable: 2.2.1 - webpack: 5.73.0(esbuild@0.17.11) + webpack: 5.73.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2210,7 +2238,7 @@ packages: yoga-wasm-web: 0.3.3 dev: false - /@vitejs/plugin-react@3.0.1(vite@4.0.4): + /@vitejs/plugin-react@3.0.1: resolution: {integrity: sha512-mx+QvYwIbbpOIJw+hypjnW1lAbKDHtWK5ibkF/V1/oMBu8HU/chb+SnqJDAsLq1+7rGqjktCEomMTM5KShzUKQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2221,7 +2249,6 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.20.12) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.0.4(@types/node@18.11.18) transitivePeerDependencies: - supports-color dev: true @@ -2613,6 +2640,7 @@ packages: electron-to-chromium: 1.4.254 node-releases: 2.0.6 update-browserslist-db: 1.0.9(browserslist@4.21.4) + dev: true /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -2715,6 +2743,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2891,6 +2920,7 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true /crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} @@ -3163,6 +3193,7 @@ packages: /electron-to-chromium@1.4.254: resolution: {integrity: sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==} + dev: true /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} @@ -3342,6 +3373,7 @@ packages: /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} + dev: true /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} @@ -3471,7 +3503,7 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-tailwindcss@3.11.0(tailwindcss@3.3.1): + /eslint-plugin-tailwindcss@3.11.0: resolution: {integrity: sha512-RaraOG4D6VXutKnoNvFQ4+frTWGJDKtezy1yCrGFS7Um1to/npDNdh2GL19IRoGB/eanbtwhxFXy+xyEw0grAg==} engines: {node: '>=12.13.0'} peerDependencies: @@ -3479,7 +3511,6 @@ packages: dependencies: fast-glob: 3.2.12 postcss: 8.4.21 - tailwindcss: 3.3.1(postcss@8.4.21) dev: true /eslint-plugin-typescript-sort-keys@2.3.0(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): @@ -4016,6 +4047,7 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -4126,6 +4158,7 @@ packages: /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + dev: true /globals@13.19.0: resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} @@ -4204,6 +4237,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -4798,6 +4832,7 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + dev: true /jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} @@ -4832,6 +4867,7 @@ packages: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -5092,6 +5128,7 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -5853,7 +5890,7 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + next: 13.3.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5865,12 +5902,12 @@ packages: react: '*' react-dom: '*' dependencies: - next: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + next: 13.3.1(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next@13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0): + /next@13.3.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==} engines: {node: '>=14.18.0'} hasBin: true @@ -5898,7 +5935,7 @@ packages: postcss: 8.4.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.20.12)(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: '@next/swc-darwin-arm64': 13.3.1 '@next/swc-darwin-x64': 13.3.1 @@ -5915,6 +5952,7 @@ packages: /node-releases@2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + dev: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -6324,6 +6362,22 @@ packages: postcss: 8.4.21 dev: true + /postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.6 + yaml: 1.10.2 + dev: true + /postcss-load-config@3.1.4(postcss@8.4.21): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -6718,7 +6772,7 @@ packages: unified: 10.1.2 dev: false - /rehype-pretty-code@0.9.4(shiki@0.14.0): + /rehype-pretty-code@0.9.4(shiki@0.14.2): resolution: {integrity: sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg==} engines: {node: ^12.16.0 || >=13.2.0} peerDependencies: @@ -6726,7 +6780,7 @@ packages: dependencies: hash-obj: 4.0.0 parse-numeric-range: 1.3.0 - shiki: 0.14.0 + shiki: 0.14.2 dev: false /remark-gfm@3.0.1: @@ -6960,6 +7014,7 @@ packages: /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + dev: true /semver@7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} @@ -7013,8 +7068,8 @@ packages: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} dev: true - /shiki@0.14.0: - resolution: {integrity: sha512-fb9Fg1Yx/ElVJcTqPQIEOSfn7mSZlrT1W3CkymY08lL2Jsi+t7jPcZzKO1lCsQwlSDuyNhHvolnyA2OI4EgJNg==} + /shiki@0.14.2: + resolution: {integrity: sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==} dependencies: ansi-sequence-parser: 1.1.0 jsonc-parser: 3.2.0 @@ -7278,7 +7333,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-jsx@5.1.1(@babel/core@7.20.12)(react@18.2.0): + /styled-jsx@5.1.1(react@18.2.0): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -7291,7 +7346,6 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.20.12 client-only: 0.0.1 react: 18.2.0 @@ -7334,6 +7388,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -7403,7 +7458,7 @@ packages: engines: {node: '>=8'} dev: true - /terser-webpack-plugin@5.3.3(esbuild@0.17.11)(webpack@5.73.0): + /terser-webpack-plugin@5.3.3(webpack@5.73.0): resolution: {integrity: sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -7420,12 +7475,11 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.14 - esbuild: 0.17.11 jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.0 terser: 5.14.2 - webpack: 5.73.0(esbuild@0.17.11) + webpack: 5.73.0 dev: true /terser@5.14.2: @@ -7503,6 +7557,7 @@ packages: /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -7571,7 +7626,7 @@ packages: /tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - /tsup@6.7.0(postcss@8.4.21)(typescript@5.0.4): + /tsup@6.7.0(typescript@5.0.4): resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} engines: {node: '>=14.18'} hasBin: true @@ -7595,8 +7650,7 @@ packages: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss: 8.4.21 - postcss-load-config: 3.1.4(postcss@8.4.21) + postcss-load-config: 3.1.4 resolve-from: 5.0.0 rollup: 3.9.1 source-map: 0.8.0-beta.0 @@ -7892,6 +7946,7 @@ packages: browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -8013,7 +8068,56 @@ packages: fsevents: 2.3.2 dev: true - /vitest@0.27.1(@edge-runtime/vm@2.1.2)(jsdom@22.0.0): + /vitest@0.27.1: + resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.11.18 + acorn: 8.8.1 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + local-pkg: 0.4.2 + picocolors: 1.0.0 + source-map: 0.6.1 + strip-literal: 1.0.0 + tinybench: 2.3.1 + tinypool: 0.3.0 + tinyspy: 1.0.2 + vite: 4.0.4(@types/node@18.11.18) + vite-node: 0.27.1(@types/node@18.11.18) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vitest@0.27.1(jsdom@22.0.0): resolution: {integrity: sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g==} engines: {node: '>=v14.16.0'} hasBin: true @@ -8035,7 +8139,6 @@ packages: jsdom: optional: true dependencies: - '@edge-runtime/vm': 2.1.2 '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.11.18 @@ -8111,7 +8214,7 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.73.0(esbuild@0.17.11): + /webpack@5.73.0: resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} engines: {node: '>=10.13.0'} hasBin: true @@ -8142,7 +8245,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 - terser-webpack-plugin: 5.3.3(esbuild@0.17.11)(webpack@5.73.0) + terser-webpack-plugin: 5.3.3(webpack@5.73.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -8307,6 +8410,7 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -8400,17 +8504,17 @@ packages: gray-matter: 4.0.3 katex: 0.16.4 lodash.get: 4.4.2 - next: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + next: 13.3.1(react-dom@18.2.0)(react@18.2.0) next-mdx-remote: 4.2.1(react-dom@18.2.0)(react@18.2.0) p-limit: 3.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rehype-katex: 6.0.2 - rehype-pretty-code: 0.9.4(shiki@0.14.0) + rehype-pretty-code: 0.9.4(shiki@0.14.2) remark-gfm: 3.0.1 remark-math: 5.1.1 remark-reading-time: 2.0.1 - shiki: 0.14.0 + shiki: 0.14.2 slash: 3.0.0 title: 3.5.3 unist-util-remove: 3.1.1 @@ -8435,7 +8539,7 @@ packages: react-cusdis: optional: true dependencies: - next: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + next: 13.3.1(react-dom@18.2.0)(react@18.2.0) next-themes: 0.2.1(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) nextra: file:packages/nextra(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -8461,7 +8565,7 @@ packages: git-url-parse: 13.1.0 intersection-observer: 0.12.2 match-sorter: 6.3.1 - next: 13.3.1(@babel/core@7.20.12)(react-dom@18.2.0)(react@18.2.0) + next: 13.3.1(react-dom@18.2.0)(react@18.2.0) next-seo: 6.0.0(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) next-themes: 0.2.1(next@13.3.1)(react-dom@18.2.0)(react@18.2.0) nextra: file:packages/nextra(next@13.3.1)(react-dom@18.2.0)(react@18.2.0)