diff --git a/dev/test-studio/package.json b/dev/test-studio/package.json index ec8a8584f5d..80c23abb7f2 100644 --- a/dev/test-studio/package.json +++ b/dev/test-studio/package.json @@ -57,6 +57,7 @@ "rxjs": "^7.8.0", "sanity": "workspace:*", "sanity-plugin-hotspot-array": "^2.0.0", + "sanity-plugin-markdown": "^5.0.0", "sanity-plugin-media": "^2.3.1", "sanity-plugin-mux-input": "^2.2.1", "styled-components": "^6.1.11" diff --git a/dev/test-studio/sanity.config.ts b/dev/test-studio/sanity.config.ts index 43eefde3dc4..1a634090030 100644 --- a/dev/test-studio/sanity.config.ts +++ b/dev/test-studio/sanity.config.ts @@ -14,6 +14,7 @@ import {defineConfig, definePlugin, type WorkspaceOptions} from 'sanity' import {presentationTool} from 'sanity/presentation' import {structureTool} from 'sanity/structure' import {imageHotspotArrayPlugin} from 'sanity-plugin-hotspot-array' +import {markdownSchema} from 'sanity-plugin-markdown' import {media} from 'sanity-plugin-media' import {muxInput} from 'sanity-plugin-mux-input' @@ -144,6 +145,7 @@ const sharedSettings = definePlugin({ errorReportingTestPlugin(), tsdoc(), media(), + markdownSchema(), ], }) diff --git a/dev/test-studio/schema/externalPlugins/markdown.ts b/dev/test-studio/schema/externalPlugins/markdown.ts index f77a8fbec88..10df9867d38 100644 --- a/dev/test-studio/schema/externalPlugins/markdown.ts +++ b/dev/test-studio/schema/externalPlugins/markdown.ts @@ -10,10 +10,10 @@ export default defineType({ name: 'title', title: 'Title', }, - // { - // type: 'markdown', - // name: 'markdown', - // title: 'Markdown', - // }, + { + type: 'markdown', + name: 'markdown', + title: 'Markdown', + }, ], }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf1d24443e4..e22f15162a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -558,6 +558,9 @@ importers: sanity-plugin-hotspot-array: specifier: ^2.0.0 version: 2.0.0(@sanity/ui@2.8.9(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + sanity-plugin-markdown: + specifier: ^5.0.0 + version: 5.0.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) sanity-plugin-media: specifier: ^2.3.1 version: 2.3.2(@sanity/ui@2.8.9(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) @@ -4713,6 +4716,9 @@ packages: '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} + '@types/codemirror@5.60.15': + resolution: {integrity: sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==} + '@types/configstore@5.0.1': resolution: {integrity: sha512-c/QCznvk7bLKGhHETj29rqKufui3jaAxjBhK4R2zUrMG5UG0qTwfWYxBoUbH8JCyDjdCWMIxPJ7/Fdz1UcAnWg==} @@ -4788,6 +4794,9 @@ packages: '@types/log-symbols@2.0.0': resolution: {integrity: sha512-YJhbp0sz3egFFKl3BcCNPQKzuGFOP4PACcsifhK6ROGnJUW9ViYLuLybQ9GQZm7Zejy3tkGuiXYMq3GiyGkU4g==} + '@types/marked@4.3.2': + resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==} + '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -4906,6 +4915,9 @@ packages: '@types/tar@6.1.13': resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} + '@types/tern@0.23.9': + resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} + '@types/through@0.0.33': resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} @@ -5745,6 +5757,12 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + codemirror-spell-checker@1.1.2: + resolution: {integrity: sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==} + + codemirror@5.65.17: + resolution: {integrity: sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==} + codemirror@6.0.1: resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} @@ -6353,6 +6371,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + easymde@2.18.0: + resolution: {integrity: sha512-IxVVUxNWIoXLeqtBU4BLc+eS/ScYhT1Dcb6yF5Wchoj1iXAV+TIIDWx+NCaZhY7RcSHqDPKllbYq7nwGKILnoA==} + ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} @@ -8496,6 +8517,11 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} + marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + math-random@1.0.4: resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} @@ -9716,6 +9742,13 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-simplemde-editor@5.2.0: + resolution: {integrity: sha512-GkTg1MlQHVK2Rks++7sjuQr/GVS/xm6y+HchZ4GPBWrhcgLieh4CjK04GTKbsfYorSRYKa0n37rtNSJmOzEDkQ==} + peerDependencies: + easymde: '>= 2.0.0 < 3.0.0' + react: '>=16.8.2' + react-dom: '>=16.8.2' + react-style-proptype@3.2.2: resolution: {integrity: sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==} @@ -10074,6 +10107,15 @@ packages: sanity: ^3.0.0 styled-components: ^6.1 + sanity-plugin-markdown@5.0.0: + resolution: {integrity: sha512-EzyJ6f/TcQevIZushOG5HKGIu9aUggktbH5th16EwTlHtGWjxO1aEuarMv362FmVaVYPh7YOHe9JuBkkGBE0KQ==} + engines: {node: '>=18'} + peerDependencies: + easymde: ^2.18 + react: ^18.3 + sanity: ^3.23 + styled-components: ^6.1 + sanity-plugin-media@2.3.2: resolution: {integrity: sha512-5RZJyKuN2SuatWjUEr9x+DOZOPg6+ga/6RD+pc8RK3PgviP+945M+E8k93XwnIzSGNFtix8jf0mUbdbCO7HpjA==} engines: {node: '>=14'} @@ -10934,6 +10976,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + typo-js@1.2.4: + resolution: {integrity: sha512-Oy/k+tFle5NAA3J/yrrYGfvEnPVrDZ8s8/WCwjUE75k331QyKIsFss7byQ/PzBmXLY6h1moRnZbnaxWBe3I3CA==} + uglify-js@3.19.2: resolution: {integrity: sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==} engines: {node: '>=0.8.0'} @@ -14993,6 +15038,10 @@ snapshots: '@types/caseless@0.12.5': {} + '@types/codemirror@5.60.15': + dependencies: + '@types/tern': 0.23.9 + '@types/configstore@5.0.1': {} '@types/connect-history-api-fallback@1.5.4': @@ -15087,6 +15136,8 @@ snapshots: '@types/log-symbols@2.0.0': {} + '@types/marked@4.3.2': {} + '@types/mime@1.3.5': {} '@types/minimatch@3.0.5': {} @@ -15210,6 +15261,10 @@ snapshots: '@types/node': 18.19.44 minipass: 4.2.8 + '@types/tern@0.23.9': + dependencies: + '@types/estree': 1.0.5 + '@types/through@0.0.33': dependencies: '@types/node': 18.19.44 @@ -16241,6 +16296,12 @@ snapshots: co@4.6.0: {} + codemirror-spell-checker@1.1.2: + dependencies: + typo-js: 1.2.4 + + codemirror@5.65.17: {} + codemirror@6.0.1(@lezer/common@1.2.1): dependencies: '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) @@ -16913,6 +16974,14 @@ snapshots: eastasianwidth@0.2.0: {} + easymde@2.18.0: + dependencies: + '@types/codemirror': 5.60.15 + '@types/marked': 4.3.2 + codemirror: 5.65.17 + codemirror-spell-checker: 1.1.2 + marked: 4.3.0 + ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer: 5.2.1 @@ -19760,6 +19829,8 @@ snapshots: dependencies: object-visit: 1.0.1 + marked@4.3.0: {} + math-random@1.0.4: {} md5-o-matic@0.1.1: {} @@ -21125,6 +21196,13 @@ snapshots: - '@types/react' - supports-color + react-simplemde-editor@5.2.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@types/codemirror': 5.60.15 + easymde: 2.18.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-style-proptype@3.2.2: dependencies: prop-types: 15.8.1 @@ -21537,6 +21615,19 @@ snapshots: transitivePeerDependencies: - react-dom + sanity-plugin-markdown@5.0.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + dependencies: + '@sanity/incompatible-plugin': 1.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@sanity/ui': 2.8.9(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + easymde: 2.18.0 + react: 18.3.1 + react-simplemde-editor: 5.2.0(easymde@2.18.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + sanity: link:packages/sanity + styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react-dom + - react-is + sanity-plugin-media@2.3.2(@sanity/ui@2.8.9(react-dom@18.3.1(react@18.3.1))(react-is@19.0.0-rc-a7d1240c-20240731)(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@hookform/resolvers': 3.9.0(react-hook-form@7.52.2(react@18.3.1)) @@ -22587,6 +22678,8 @@ snapshots: typescript@5.5.4: {} + typo-js@1.2.4: {} + uglify-js@3.19.2: optional: true