From c32fdb67ac653fb8840e4232a5f0eaf06b5e46f2 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 29 Apr 2025 17:34:25 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9E=95(frontend)=20add=20@blocknote/code-blo?= =?UTF-8?q?ck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To reduce the bundles size, the highlight syntax library is not included in blocknote core anymore. We need to add a separate dependency in order to have the code block syntax highlight feature. --- src/frontend/apps/impress/package.json | 1 + .../doc-editor/components/BlockNoteEditor.tsx | 2 + src/frontend/yarn.lock | 97 ++++++++++++++++++- 3 files changed, 99 insertions(+), 1 deletion(-) diff --git a/src/frontend/apps/impress/package.json b/src/frontend/apps/impress/package.json index 72ecc486..4dfafc25 100644 --- a/src/frontend/apps/impress/package.json +++ b/src/frontend/apps/impress/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@ag-media/react-pdf-table": "2.0.2", + "@blocknote/code-block": "0.29.1", "@blocknote/core": "0.29.1", "@blocknote/mantine": "0.29.1", "@blocknote/react": "0.29.1", diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx index 0419195c..5d5a280a 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx @@ -1,3 +1,4 @@ +import { codeBlock } from '@blocknote/code-block'; import { BlockNoteSchema, defaultBlockSpecs, @@ -61,6 +62,7 @@ export const BlockNoteEditor = ({ doc, provider }: BlockNoteEditorProps) => { const editor = useCreateBlockNote( { + codeBlock, collaboration: { provider, fragment: provider.document.getXmlFragment('document-store'), diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock index b44abf82..160cafc4 100644 --- a/src/frontend/yarn.lock +++ b/src/frontend/yarn.lock @@ -1004,6 +1004,19 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@blocknote/code-block@0.29.1": + version "0.29.1" + resolved "https://registry.yarnpkg.com/@blocknote/code-block/-/code-block-0.29.1.tgz#c27ebdee0663180bc165208f1af67fe23855066c" + integrity sha512-oKUK+gpNtbSWPTIP/ZeqsXifZeOY3UAw43QcU3ZVOncMXVetUe5E5WE2Z2iBYox1NevZFBIOv7pJIPwUQYBSlg== + dependencies: + "@blocknote/core" "0.29.1" + "@shikijs/core" "^3.2.1" + "@shikijs/engine-javascript" "^3.2.1" + "@shikijs/langs" "^3.2.1" + "@shikijs/langs-precompiled" "^3.2.1" + "@shikijs/themes" "^3.2.1" + "@shikijs/types" "^3.2.1" + "@blocknote/core@0.29.1": version "0.29.1" resolved "https://registry.yarnpkg.com/@blocknote/core/-/core-0.29.1.tgz#df5e972f966812d9047cef2c0f564f8aa52cd396" @@ -4633,6 +4646,47 @@ unplugin "1.0.1" uuid "^9.0.0" +"@shikijs/core@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-3.3.0.tgz#8840dcf59acc860f67412769c56c1f03d6735662" + integrity sha512-CovkFL2WVaHk6PCrwv6ctlmD4SS1qtIfN8yEyDXDYWh4ONvomdM9MaFw20qHuqJOcb8/xrkqoWQRJ//X10phOQ== + dependencies: + "@shikijs/types" "3.3.0" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + hast-util-to-html "^9.0.5" + +"@shikijs/engine-javascript@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-3.3.0.tgz#af7646fdb25160115658abc703c0ed4d8dbfdb41" + integrity sha512-XlhnFGv0glq7pfsoN0KyBCz9FJU678LZdQ2LqlIdAj6JKsg5xpYKay3DkazXWExp3DTJJK9rMOuGzU2911pg7Q== + dependencies: + "@shikijs/types" "3.3.0" + "@shikijs/vscode-textmate" "^10.0.2" + oniguruma-to-es "^4.2.0" + +"@shikijs/langs-precompiled@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs-precompiled/-/langs-precompiled-3.3.0.tgz#99dc470f39eff48be7f2577ef0d77383834e78d0" + integrity sha512-2qsvPdopTt15OPzvDGYCl7gy08F7JN+EKLbo7DmhO/QchkYy2W4EltMpYKBz1KHP4136z3+Wt9QP9+2Rxfq7Yg== + dependencies: + "@shikijs/types" "3.3.0" + oniguruma-to-es "^4.2.0" + +"@shikijs/langs@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-3.3.0.tgz#016b8360b4d220064a701c6bab0925898dc70a76" + integrity sha512-zt6Kf/7XpBQKSI9eqku+arLkAcDQ3NHJO6zFjiChI8w0Oz6Jjjay7pToottjQGjSDCFk++R85643WbyINcuL+g== + dependencies: + "@shikijs/types" "3.3.0" + +"@shikijs/themes@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-3.3.0.tgz#200213a37c7e80d39f9814c38291c360c4c42cf1" + integrity sha512-tXeCvLXBnqq34B0YZUEaAD1lD4lmN6TOHAhnHacj4Owh7Ptb/rf5XCDeROZt2rEOk5yuka3OOW2zLqClV7/SOg== + dependencies: + "@shikijs/types" "3.3.0" + "@shikijs/types@3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-3.2.1.tgz#8d289ad95d62833d7f9af536c073312d7afe8182" @@ -4641,6 +4695,14 @@ "@shikijs/vscode-textmate" "^10.0.2" "@types/hast" "^3.0.4" +"@shikijs/types@3.3.0", "@shikijs/types@^3.2.1": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-3.3.0.tgz#2787aac662ef0cf286abc0ab65595eab67c27c0f" + integrity sha512-KPCGnHG6k06QG/2pnYGbFtFvpVJmC3uIpXrAiPrawETifujPBv0Se2oUxm5qYgjCvGJS9InKvjytOdN+bGuX+Q== + dependencies: + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + "@shikijs/vscode-textmate@^10.0.2": version "10.0.2" resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" @@ -8693,7 +8755,7 @@ hast-util-phrasing@^3.0.0: hast-util-is-body-ok-link "^3.0.0" hast-util-is-element "^3.0.0" -hast-util-to-html@^9.0.0: +hast-util-to-html@^9.0.0, hast-util-to-html@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== @@ -11119,6 +11181,20 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +oniguruma-parser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/oniguruma-parser/-/oniguruma-parser-0.12.0.tgz#cfe3eaa769b9ed9e7a2f2901a7df9e06ff159b63" + integrity sha512-fD9o5ebCmEAA9dLysajdQvuKzLL7cj+w7DQjuO3Cb6IwafENfx6iL+RGkmyW82pVRsvgzixsWinHvgxTMJvdIA== + +oniguruma-to-es@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-4.3.1.tgz#40ceba461ad95c9242e3e8bee797d253cbee6a0c" + integrity sha512-VtX1kepWO+7HG7IWV5v72JhiqofK7XsiHmtgnvurnNOTdIvE5mrdWYtsOrQyrXCv1L2Ckm08hywp+MFO7rC4Ug== + dependencies: + oniguruma-parser "^0.12.0" + regex "^6.0.1" + regex-recursion "^6.0.2" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -12411,6 +12487,25 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" +regex-recursion@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-6.0.2.tgz#a0b1977a74c87f073377b938dbedfab2ea582b33" + integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== + dependencies: + regex-utilities "^2.3.0" + +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== + +regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/regex/-/regex-6.0.1.tgz#282fa4435d0c700b09c0eb0982b602e05ab6a34f" + integrity sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA== + dependencies: + regex-utilities "^2.3.0" + regexp.prototype.flags@^1.5.3: version "1.5.4" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19"