@blocknote/core 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular-html-HQGguTAE.js +33 -0
- package/dist/angular-html-HQGguTAE.js.map +1 -0
- package/dist/angular-ts-q9PqJiJb.js +22 -0
- package/dist/angular-ts-q9PqJiJb.js.map +1 -0
- package/dist/astro-0iWgpDaK.js +17 -0
- package/dist/astro-0iWgpDaK.js.map +1 -0
- package/dist/blade-C3Z8AhvY.js +19 -0
- package/dist/blade-C3Z8AhvY.js.map +1 -0
- package/dist/blocknote.js +2338 -1491
- package/dist/blocknote.js.map +1 -1
- package/dist/blocknote.umd.cjs +10 -7
- package/dist/blocknote.umd.cjs.map +1 -1
- package/dist/c-TKJGJdXV.js +7 -0
- package/dist/c-TKJGJdXV.js.map +1 -0
- package/dist/coffee-CN_y6cG3.js +9 -0
- package/dist/coffee-CN_y6cG3.js.map +1 -0
- package/dist/cpp-Be_e67JE.js +19 -0
- package/dist/cpp-Be_e67JE.js.map +1 -0
- package/dist/css-DHLSoXzW.js +7 -0
- package/dist/css-DHLSoXzW.js.map +1 -0
- package/dist/glsl-8qSUIm5B.js +9 -0
- package/dist/glsl-8qSUIm5B.js.map +1 -0
- package/dist/graphql-D7_Dk2ma.js +15 -0
- package/dist/graphql-D7_Dk2ma.js.map +1 -0
- package/dist/haml-S3dmcfEW.js +11 -0
- package/dist/haml-S3dmcfEW.js.map +1 -0
- package/dist/handlebars-DaIrqVg3.js +15 -0
- package/dist/handlebars-DaIrqVg3.js.map +1 -0
- package/dist/html-Bx3A18fV.js +11 -0
- package/dist/html-Bx3A18fV.js.map +1 -0
- package/dist/html-derivative-Cf3KTZBS.js +9 -0
- package/dist/html-derivative-Cf3KTZBS.js.map +1 -0
- package/dist/http-BphR83YX.js +15 -0
- package/dist/http-BphR83YX.js.map +1 -0
- package/dist/imba-CmP25v0O.js +9 -0
- package/dist/imba-CmP25v0O.js.map +1 -0
- package/dist/java-Dg4kxH6C.js +7 -0
- package/dist/java-Dg4kxH6C.js.map +1 -0
- package/dist/javascript-CipAzIn1.js +7 -0
- package/dist/javascript-CipAzIn1.js.map +1 -0
- package/dist/jinja-tioldiz6.js +12 -0
- package/dist/jinja-tioldiz6.js.map +1 -0
- package/dist/jison-DWJFEE_I.js +9 -0
- package/dist/jison-DWJFEE_I.js.map +1 -0
- package/dist/json-_04EL6MS.js +7 -0
- package/dist/json-_04EL6MS.js.map +1 -0
- package/dist/json5-Dwmp5XFI.js +7 -0
- package/dist/json5-Dwmp5XFI.js.map +1 -0
- package/dist/jsonc-LqD5auy0.js +7 -0
- package/dist/jsonc-LqD5auy0.js.map +1 -0
- package/dist/jsonl-B4yVuYQH.js +7 -0
- package/dist/jsonl-B4yVuYQH.js.map +1 -0
- package/dist/jsx-Mg4WaD5k.js +7 -0
- package/dist/jsx-Mg4WaD5k.js.map +1 -0
- package/dist/julia-CWi-ZdpN.js +17 -0
- package/dist/julia-CWi-ZdpN.js.map +1 -0
- package/dist/less-BBvTHIGe.js +7 -0
- package/dist/less-BBvTHIGe.js.map +1 -0
- package/dist/markdown-DAXqtk9a.js +7 -0
- package/dist/markdown-DAXqtk9a.js.map +1 -0
- package/dist/marko-0aaNgUGV.js +15 -0
- package/dist/marko-0aaNgUGV.js.map +1 -0
- package/dist/mdc-hXJ2B4O0.js +13 -0
- package/dist/mdc-hXJ2B4O0.js.map +1 -0
- package/dist/mdx-CSCKbb_f.js +7 -0
- package/dist/mdx-CSCKbb_f.js.map +1 -0
- package/dist/php-B_-4RJ09.js +19 -0
- package/dist/php-B_-4RJ09.js.map +1 -0
- package/dist/postcss-SJfTvo_B.js +7 -0
- package/dist/postcss-SJfTvo_B.js.map +1 -0
- package/dist/pug-3q2tx0nf.js +13 -0
- package/dist/pug-3q2tx0nf.js.map +1 -0
- package/dist/python-Dpup1-fE.js +7 -0
- package/dist/python-Dpup1-fE.js.map +1 -0
- package/dist/r-Chyv38Fv.js +7 -0
- package/dist/r-Chyv38Fv.js.map +1 -0
- package/dist/regexp-BF0hfxNW.js +7 -0
- package/dist/regexp-BF0hfxNW.js.map +1 -0
- package/dist/sass-p2RMoqDT.js +7 -0
- package/dist/sass-p2RMoqDT.js.map +1 -0
- package/dist/scss-DmlHSoOY.js +9 -0
- package/dist/scss-DmlHSoOY.js.map +1 -0
- package/dist/shellscript-CZpPN8_x.js +7 -0
- package/dist/shellscript-CZpPN8_x.js.map +1 -0
- package/dist/sql-DtlkUz2m.js +7 -0
- package/dist/sql-DtlkUz2m.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/stylus-DEr8eSLm.js +7 -0
- package/dist/stylus-DEr8eSLm.js.map +1 -0
- package/dist/svelte-BRIJF62h.js +15 -0
- package/dist/svelte-BRIJF62h.js.map +1 -0
- package/dist/ts-tags-qkUtuI0N.js +42 -0
- package/dist/ts-tags-qkUtuI0N.js.map +1 -0
- package/dist/tsx-DTfbgJxi.js +7 -0
- package/dist/tsx-DTfbgJxi.js.map +1 -0
- package/dist/typescript-CCd4aQHh.js +7 -0
- package/dist/typescript-CCd4aQHh.js.map +1 -0
- package/dist/vue-B3TdbERm.js +32 -0
- package/dist/vue-B3TdbERm.js.map +1 -0
- package/dist/vue-html-BGmTBZk0.js +11 -0
- package/dist/vue-html-BGmTBZk0.js.map +1 -0
- package/dist/wasm-VDIDph3E.js +7 -0
- package/dist/wasm-VDIDph3E.js.map +1 -0
- package/dist/webpack-stats.json +1 -1
- package/dist/wgsl-2np_U3Z8.js +7 -0
- package/dist/wgsl-2np_U3Z8.js.map +1 -0
- package/dist/xml-CNyphW9R.js +9 -0
- package/dist/xml-CNyphW9R.js.map +1 -0
- package/dist/yaml-DxFiVFcM.js +7 -0
- package/dist/yaml-DxFiVFcM.js.map +1 -0
- package/package.json +6 -4
- package/src/api/blockManipulation/commands/insertBlocks/__snapshots__/insertBlocks.test.ts.snap +30 -0
- package/src/api/blockManipulation/commands/mergeBlocks/__snapshots__/mergeBlocks.test.ts.snap +25 -0
- package/src/api/blockManipulation/commands/moveBlock/__snapshots__/moveBlock.test.ts.snap +40 -0
- package/src/api/blockManipulation/commands/removeBlocks/__snapshots__/removeBlocks.test.ts.snap +10 -0
- package/src/api/blockManipulation/commands/replaceBlocks/__snapshots__/replaceBlocks.test.ts.snap +40 -0
- package/src/api/blockManipulation/commands/splitBlock/__snapshots__/splitBlock.test.ts.snap +30 -0
- package/src/api/blockManipulation/commands/updateBlock/__snapshots__/updateBlock.test.ts.snap +87 -0
- package/src/api/clipboard/clipboard.test.ts +1 -1
- package/src/api/clipboard/fromClipboard/acceptedMIMETypes.ts +1 -0
- package/src/api/clipboard/fromClipboard/handleVSCodePaste.ts +49 -0
- package/src/api/clipboard/fromClipboard/pasteExtension.ts +6 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/defaultLanguage/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/defaultLanguage/internal.html +1 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/empty/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/empty/internal.html +1 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/python/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/codeBlock/python/internal.html +1 -0
- package/src/api/exporters/html/__snapshots__/image/basic/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/image/nested/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/image/noName/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/image/noPreview/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/lists/basic/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/lists/nested/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/basic/external.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/basic/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/nested/external.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/nested/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/noCaption/external.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/noName/external.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/noName/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/noPreview/external.html +1 -1
- package/src/api/exporters/html/__snapshots__/simpleImage/noPreview/internal.html +1 -1
- package/src/api/exporters/html/__snapshots__/table/allColWidths/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/table/allColWidths/internal.html +1 -0
- package/src/api/exporters/html/__snapshots__/table/basic/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/table/basic/internal.html +1 -0
- package/src/api/exporters/html/__snapshots__/table/mixedColWidths/external.html +1 -0
- package/src/api/exporters/html/__snapshots__/table/mixedColWidths/internal.html +1 -0
- package/src/api/exporters/html/internalHTMLSerializer.ts +2 -7
- package/src/api/exporters/html/util/serializeBlocksInternalHTML.ts +20 -15
- package/src/api/exporters/markdown/__snapshots__/codeBlock/defaultLanguage/markdown.md +3 -0
- package/src/api/exporters/markdown/__snapshots__/codeBlock/empty/markdown.md +2 -0
- package/src/api/exporters/markdown/__snapshots__/codeBlock/python/markdown.md +3 -0
- package/src/api/exporters/markdown/__snapshots__/table/allColWidths/markdown.md +5 -0
- package/src/api/exporters/markdown/__snapshots__/table/basic/markdown.md +5 -0
- package/src/api/exporters/markdown/__snapshots__/table/mixedColWidths/markdown.md +5 -0
- package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +711 -0
- package/src/api/nodeConversions/blockToNode.ts +13 -2
- package/src/api/nodeConversions/nodeToBlock.ts +11 -1
- package/src/api/parsers/html/__snapshots__/parse-notion-html.json +5 -0
- package/src/api/parsers/markdown/parseMarkdown.ts +1 -1
- package/src/api/testUtil/cases/defaultSchema.ts +95 -0
- package/src/api/testUtil/partialBlockTestUtil.ts +26 -1
- package/src/blocks/CodeBlockContent/CodeBlockContent.ts +369 -0
- package/src/blocks/CodeBlockContent/defaultSupportedLanguages.ts +96 -0
- package/src/blocks/FileBlockContent/fileBlockHelpers.ts +7 -0
- package/src/blocks/TableBlockContent/TableBlockContent.ts +83 -8
- package/src/blocks/TableBlockContent/TableExtension.ts +10 -1
- package/src/blocks/defaultBlocks.ts +4 -0
- package/src/editor/Block.css +49 -2
- package/src/editor/editor.css +33 -5
- package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +8 -0
- package/src/extensions/Placeholder/PlaceholderPlugin.ts +5 -0
- package/src/extensions/SuggestionMenu/SuggestionPlugin.ts +5 -0
- package/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts +2 -1
- package/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.ts +18 -0
- package/src/extensions/TableHandles/TableHandlesPlugin.ts +224 -119
- package/src/i18n/locales/ar.ts +6 -0
- package/src/i18n/locales/de.ts +299 -294
- package/src/i18n/locales/en.ts +6 -0
- package/src/i18n/locales/es.ts +310 -274
- package/src/i18n/locales/fr.ts +6 -0
- package/src/i18n/locales/is.ts +6 -0
- package/src/i18n/locales/ja.ts +6 -0
- package/src/i18n/locales/ko.ts +6 -0
- package/src/i18n/locales/nl.ts +6 -0
- package/src/i18n/locales/pl.ts +6 -0
- package/src/i18n/locales/pt.ts +6 -0
- package/src/i18n/locales/ru.ts +6 -0
- package/src/i18n/locales/vi.ts +6 -0
- package/src/i18n/locales/zh.ts +6 -0
- package/src/index.ts +10 -5
- package/src/schema/blocks/types.ts +2 -0
- package/types/src/api/blockManipulation/setupTestEnv.d.ts +22 -8
- package/types/src/api/clipboard/fromClipboard/acceptedMIMETypes.d.ts +1 -1
- package/types/src/api/clipboard/fromClipboard/handleVSCodePaste.d.ts +3 -0
- package/types/src/api/exporters/html/util/serializeBlocksInternalHTML.d.ts +2 -3
- package/types/src/api/testUtil/cases/customBlocks.d.ts +22 -8
- package/types/src/api/testUtil/cases/customInlineContent.d.ts +22 -8
- package/types/src/api/testUtil/cases/customStyles.d.ts +22 -8
- package/types/src/blocks/CodeBlockContent/CodeBlockContent.d.ts +57 -0
- package/types/src/blocks/CodeBlockContent/defaultSupportedLanguages.d.ts +6 -0
- package/types/src/blocks/TableBlockContent/TableBlockContent.d.ts +0 -12
- package/types/src/blocks/TableBlockContent/TableExtension.d.ts +3 -0
- package/types/src/blocks/defaultBlocks.d.ts +45 -16
- package/types/src/extensions/TableHandles/TableHandlesPlugin.d.ts +9 -5
- package/types/src/i18n/locales/de.d.ts +6 -0
- package/types/src/i18n/locales/en.d.ts +6 -0
- package/types/src/i18n/locales/es.d.ts +6 -0
- package/types/src/index.d.ts +7 -5
- package/types/src/schema/blocks/types.d.ts +2 -0
package/src/api/blockManipulation/commands/updateBlock/__snapshots__/updateBlock.test.ts.snap
CHANGED
|
@@ -258,6 +258,11 @@ exports[`Test updateBlock > Revert all props 1`] = `
|
|
|
258
258
|
{
|
|
259
259
|
"children": [],
|
|
260
260
|
"content": {
|
|
261
|
+
"columnWidths": [
|
|
262
|
+
undefined,
|
|
263
|
+
undefined,
|
|
264
|
+
undefined,
|
|
265
|
+
],
|
|
261
266
|
"rows": [
|
|
262
267
|
{
|
|
263
268
|
"cells": [
|
|
@@ -729,6 +734,11 @@ exports[`Test updateBlock > Revert single prop 1`] = `
|
|
|
729
734
|
{
|
|
730
735
|
"children": [],
|
|
731
736
|
"content": {
|
|
737
|
+
"columnWidths": [
|
|
738
|
+
undefined,
|
|
739
|
+
undefined,
|
|
740
|
+
undefined,
|
|
741
|
+
],
|
|
732
742
|
"rows": [
|
|
733
743
|
{
|
|
734
744
|
"cells": [
|
|
@@ -1200,6 +1210,11 @@ exports[`Test updateBlock > Update all props 1`] = `
|
|
|
1200
1210
|
{
|
|
1201
1211
|
"children": [],
|
|
1202
1212
|
"content": {
|
|
1213
|
+
"columnWidths": [
|
|
1214
|
+
undefined,
|
|
1215
|
+
undefined,
|
|
1216
|
+
undefined,
|
|
1217
|
+
],
|
|
1203
1218
|
"rows": [
|
|
1204
1219
|
{
|
|
1205
1220
|
"cells": [
|
|
@@ -1671,6 +1686,11 @@ exports[`Test updateBlock > Update children 1`] = `
|
|
|
1671
1686
|
{
|
|
1672
1687
|
"children": [],
|
|
1673
1688
|
"content": {
|
|
1689
|
+
"columnWidths": [
|
|
1690
|
+
undefined,
|
|
1691
|
+
undefined,
|
|
1692
|
+
undefined,
|
|
1693
|
+
],
|
|
1674
1694
|
"rows": [
|
|
1675
1695
|
{
|
|
1676
1696
|
"cells": [
|
|
@@ -1889,6 +1909,7 @@ exports[`Test updateBlock > Update inline content to empty table content 1`] = `
|
|
|
1889
1909
|
{
|
|
1890
1910
|
"children": [],
|
|
1891
1911
|
"content": {
|
|
1912
|
+
"columnWidths": [],
|
|
1892
1913
|
"rows": [],
|
|
1893
1914
|
"type": "tableContent",
|
|
1894
1915
|
},
|
|
@@ -2138,6 +2159,11 @@ exports[`Test updateBlock > Update inline content to empty table content 1`] = `
|
|
|
2138
2159
|
{
|
|
2139
2160
|
"children": [],
|
|
2140
2161
|
"content": {
|
|
2162
|
+
"columnWidths": [
|
|
2163
|
+
undefined,
|
|
2164
|
+
undefined,
|
|
2165
|
+
undefined,
|
|
2166
|
+
],
|
|
2141
2167
|
"rows": [
|
|
2142
2168
|
{
|
|
2143
2169
|
"cells": [
|
|
@@ -2607,6 +2633,11 @@ exports[`Test updateBlock > Update inline content to no content 1`] = `
|
|
|
2607
2633
|
{
|
|
2608
2634
|
"children": [],
|
|
2609
2635
|
"content": {
|
|
2636
|
+
"columnWidths": [
|
|
2637
|
+
undefined,
|
|
2638
|
+
undefined,
|
|
2639
|
+
undefined,
|
|
2640
|
+
],
|
|
2610
2641
|
"rows": [
|
|
2611
2642
|
{
|
|
2612
2643
|
"cells": [
|
|
@@ -2825,6 +2856,11 @@ exports[`Test updateBlock > Update inline content to table content 1`] = `
|
|
|
2825
2856
|
{
|
|
2826
2857
|
"children": [],
|
|
2827
2858
|
"content": {
|
|
2859
|
+
"columnWidths": [
|
|
2860
|
+
undefined,
|
|
2861
|
+
undefined,
|
|
2862
|
+
undefined,
|
|
2863
|
+
],
|
|
2828
2864
|
"rows": [
|
|
2829
2865
|
{
|
|
2830
2866
|
"cells": [
|
|
@@ -3150,6 +3186,11 @@ exports[`Test updateBlock > Update inline content to table content 1`] = `
|
|
|
3150
3186
|
{
|
|
3151
3187
|
"children": [],
|
|
3152
3188
|
"content": {
|
|
3189
|
+
"columnWidths": [
|
|
3190
|
+
undefined,
|
|
3191
|
+
undefined,
|
|
3192
|
+
undefined,
|
|
3193
|
+
],
|
|
3153
3194
|
"rows": [
|
|
3154
3195
|
{
|
|
3155
3196
|
"cells": [
|
|
@@ -3617,6 +3658,11 @@ exports[`Test updateBlock > Update no content to empty inline content 1`] = `
|
|
|
3617
3658
|
{
|
|
3618
3659
|
"children": [],
|
|
3619
3660
|
"content": {
|
|
3661
|
+
"columnWidths": [
|
|
3662
|
+
undefined,
|
|
3663
|
+
undefined,
|
|
3664
|
+
undefined,
|
|
3665
|
+
],
|
|
3620
3666
|
"rows": [
|
|
3621
3667
|
{
|
|
3622
3668
|
"cells": [
|
|
@@ -4056,6 +4102,7 @@ exports[`Test updateBlock > Update no content to empty table content 1`] = `
|
|
|
4056
4102
|
{
|
|
4057
4103
|
"children": [],
|
|
4058
4104
|
"content": {
|
|
4105
|
+
"columnWidths": [],
|
|
4059
4106
|
"rows": [],
|
|
4060
4107
|
"type": "tableContent",
|
|
4061
4108
|
},
|
|
@@ -4086,6 +4133,11 @@ exports[`Test updateBlock > Update no content to empty table content 1`] = `
|
|
|
4086
4133
|
{
|
|
4087
4134
|
"children": [],
|
|
4088
4135
|
"content": {
|
|
4136
|
+
"columnWidths": [
|
|
4137
|
+
undefined,
|
|
4138
|
+
undefined,
|
|
4139
|
+
undefined,
|
|
4140
|
+
],
|
|
4089
4141
|
"rows": [
|
|
4090
4142
|
{
|
|
4091
4143
|
"cells": [
|
|
@@ -4559,6 +4611,11 @@ exports[`Test updateBlock > Update no content to inline content 1`] = `
|
|
|
4559
4611
|
{
|
|
4560
4612
|
"children": [],
|
|
4561
4613
|
"content": {
|
|
4614
|
+
"columnWidths": [
|
|
4615
|
+
undefined,
|
|
4616
|
+
undefined,
|
|
4617
|
+
undefined,
|
|
4618
|
+
],
|
|
4562
4619
|
"rows": [
|
|
4563
4620
|
{
|
|
4564
4621
|
"cells": [
|
|
@@ -4998,6 +5055,11 @@ exports[`Test updateBlock > Update no content to table content 1`] = `
|
|
|
4998
5055
|
{
|
|
4999
5056
|
"children": [],
|
|
5000
5057
|
"content": {
|
|
5058
|
+
"columnWidths": [
|
|
5059
|
+
undefined,
|
|
5060
|
+
undefined,
|
|
5061
|
+
undefined,
|
|
5062
|
+
],
|
|
5001
5063
|
"rows": [
|
|
5002
5064
|
{
|
|
5003
5065
|
"cells": [
|
|
@@ -5104,6 +5166,11 @@ exports[`Test updateBlock > Update no content to table content 1`] = `
|
|
|
5104
5166
|
{
|
|
5105
5167
|
"children": [],
|
|
5106
5168
|
"content": {
|
|
5169
|
+
"columnWidths": [
|
|
5170
|
+
undefined,
|
|
5171
|
+
undefined,
|
|
5172
|
+
undefined,
|
|
5173
|
+
],
|
|
5107
5174
|
"rows": [
|
|
5108
5175
|
{
|
|
5109
5176
|
"cells": [
|
|
@@ -5575,6 +5642,11 @@ exports[`Test updateBlock > Update single prop 1`] = `
|
|
|
5575
5642
|
{
|
|
5576
5643
|
"children": [],
|
|
5577
5644
|
"content": {
|
|
5645
|
+
"columnWidths": [
|
|
5646
|
+
undefined,
|
|
5647
|
+
undefined,
|
|
5648
|
+
undefined,
|
|
5649
|
+
],
|
|
5578
5650
|
"rows": [
|
|
5579
5651
|
{
|
|
5580
5652
|
"cells": [
|
|
@@ -7235,6 +7307,11 @@ exports[`Test updateBlock > Update type 1`] = `
|
|
|
7235
7307
|
{
|
|
7236
7308
|
"children": [],
|
|
7237
7309
|
"content": {
|
|
7310
|
+
"columnWidths": [
|
|
7311
|
+
undefined,
|
|
7312
|
+
undefined,
|
|
7313
|
+
undefined,
|
|
7314
|
+
],
|
|
7238
7315
|
"rows": [
|
|
7239
7316
|
{
|
|
7240
7317
|
"cells": [
|
|
@@ -7705,6 +7782,11 @@ exports[`Test updateBlock > Update with plain content 1`] = `
|
|
|
7705
7782
|
{
|
|
7706
7783
|
"children": [],
|
|
7707
7784
|
"content": {
|
|
7785
|
+
"columnWidths": [
|
|
7786
|
+
undefined,
|
|
7787
|
+
undefined,
|
|
7788
|
+
undefined,
|
|
7789
|
+
],
|
|
7708
7790
|
"rows": [
|
|
7709
7791
|
{
|
|
7710
7792
|
"cells": [
|
|
@@ -8162,6 +8244,11 @@ exports[`Test updateBlock > Update with styled content 1`] = `
|
|
|
8162
8244
|
{
|
|
8163
8245
|
"children": [],
|
|
8164
8246
|
"content": {
|
|
8247
|
+
"columnWidths": [
|
|
8248
|
+
undefined,
|
|
8249
|
+
undefined,
|
|
8250
|
+
undefined,
|
|
8251
|
+
],
|
|
8165
8252
|
"rows": [
|
|
8166
8253
|
{
|
|
8167
8254
|
"cells": [
|
|
@@ -173,7 +173,7 @@ describe("Test ProseMirror selection clipboard HTML", () => {
|
|
|
173
173
|
)
|
|
174
174
|
);
|
|
175
175
|
|
|
176
|
-
const { clipboardHTML, externalHTML } =
|
|
176
|
+
const { clipboardHTML, externalHTML } = selectedFragmentToHTML(
|
|
177
177
|
editor._tiptapEditor.view,
|
|
178
178
|
editor
|
|
179
179
|
);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BlockNoteEditor } from "../../../editor/BlockNoteEditor.js";
|
|
2
|
+
import {
|
|
3
|
+
BlockSchema,
|
|
4
|
+
InlineContentSchema,
|
|
5
|
+
StyleSchema,
|
|
6
|
+
} from "../../../schema/index.js";
|
|
7
|
+
|
|
8
|
+
export async function handleVSCodePaste<
|
|
9
|
+
BSchema extends BlockSchema,
|
|
10
|
+
I extends InlineContentSchema,
|
|
11
|
+
S extends StyleSchema
|
|
12
|
+
>(event: ClipboardEvent, editor: BlockNoteEditor<BSchema, I, S>) {
|
|
13
|
+
const view = editor.prosemirrorView;
|
|
14
|
+
const { schema } = view.state;
|
|
15
|
+
|
|
16
|
+
if (!event.clipboardData) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const text = event.clipboardData!.getData("text/plain");
|
|
21
|
+
const vscode = event.clipboardData!.getData("vscode-editor-data");
|
|
22
|
+
const vscodeData = vscode ? JSON.parse(vscode) : undefined;
|
|
23
|
+
const language = vscodeData?.mode;
|
|
24
|
+
|
|
25
|
+
if (!text) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (!schema.nodes.codeBlock) {
|
|
30
|
+
view.pasteText(text);
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!language) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// strip carriage return chars from text pasted as code
|
|
40
|
+
// see: https://github.com/ProseMirror/prosemirror-view/commit/a50a6bcceb4ce52ac8fcc6162488d8875613aacd
|
|
41
|
+
editor._tiptapEditor.view.pasteHTML(
|
|
42
|
+
`<pre><code class="language-${language}">${text.replace(
|
|
43
|
+
/\r\n?/g,
|
|
44
|
+
"\n"
|
|
45
|
+
)}</code></pre>`
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
import { nestedListsToBlockNoteStructure } from "../../parsers/html/util/nestedLists.js";
|
|
11
11
|
import { acceptedMIMETypes } from "./acceptedMIMETypes.js";
|
|
12
12
|
import { handleFileInsertion } from "./handleFileInsertion.js";
|
|
13
|
+
import { handleVSCodePaste } from "./handleVSCodePaste.js";
|
|
13
14
|
|
|
14
15
|
export const createPasteFromClipboardExtension = <
|
|
15
16
|
BSchema extends BlockSchema,
|
|
@@ -43,6 +44,11 @@ export const createPasteFromClipboardExtension = <
|
|
|
43
44
|
return true;
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
if (format === "vscode-editor-data") {
|
|
48
|
+
handleVSCodePaste(event, editor);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
|
|
46
52
|
if (format === "Files") {
|
|
47
53
|
handleFileInsertion(event, editor);
|
|
48
54
|
return true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<pre><code class="bn-inline-content language-javascript">console.log('Hello, world!');</code></pre>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="codeBlock"><pre><code class="bn-inline-content language-javascript">console.log('Hello, world!');</code></pre></div></div></div></div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<pre><code class="bn-inline-content language-javascript"></code></pre>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="codeBlock"><pre><code class="bn-inline-content language-javascript"></code></pre></div></div></div></div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<pre><code class="bn-inline-content language-python">print('Hello, world!')</code></pre>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="codeBlock"><pre><code class="bn-inline-content language-python">print('Hello, world!')</code></pre></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-url="exampleURL" data-caption="Caption" data-preview-width="256" data-file-block=""><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256" data-file-block=""><div class="bn-file-and-caption-wrapper"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption">Caption</p></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="image" data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256" data-file-block=""><div class="bn-file-and-caption-wrapper"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 2</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="3"><div class="bn-block" data-node-type="blockContainer" data-id="3"><div class="bn-block-content" data-content-type="numberedListItem" data-index="
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 2</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="3"><div class="bn-block" data-node-type="blockContainer" data-id="3"><div class="bn-block-content" data-content-type="numberedListItem" data-index="1"><p class="bn-inline-content">Numbered List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="4"><div class="bn-block" data-node-type="blockContainer" data-id="4"><div class="bn-block-content" data-content-type="numberedListItem" data-index="2"><p class="bn-inline-content">Numbered List Item 2</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="5"><div class="bn-block" data-node-type="blockContainer" data-id="5"><div class="bn-block-content" data-content-type="checkListItem"><input type="checkbox"><p class="bn-inline-content">Check List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="6"><div class="bn-block" data-node-type="blockContainer" data-id="6"><div class="bn-block-content" data-content-type="checkListItem" data-checked="true"><input type="checkbox" checked=""><p class="bn-inline-content">Check List Item 2</p></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 2</p></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="3"><div class="bn-block" data-node-type="blockContainer" data-id="3"><div class="bn-block-content" data-content-type="numberedListItem" data-index="
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="bulletListItem"><p class="bn-inline-content">Bullet List Item 2</p></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="3"><div class="bn-block" data-node-type="blockContainer" data-id="3"><div class="bn-block-content" data-content-type="numberedListItem" data-index="1"><p class="bn-inline-content">Numbered List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="4"><div class="bn-block" data-node-type="blockContainer" data-id="4"><div class="bn-block-content" data-content-type="numberedListItem" data-index="2"><p class="bn-inline-content">Numbered List Item 2</p></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="5"><div class="bn-block" data-node-type="blockContainer" data-id="5"><div class="bn-block-content" data-content-type="checkListItem"><input type="checkbox"><p class="bn-inline-content">Check List Item 1</p></div></div></div><div class="bn-block-outer" data-node-type="blockOuter" data-id="6"><div class="bn-block" data-node-type="blockContainer" data-id="6"><div class="bn-block-content" data-content-type="checkListItem" data-checked="true"><input type="checkbox" checked=""><p class="bn-inline-content">Check List Item 2</p></div></div></div></div></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div>
|
|
1
|
+
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div><div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div>
|
|
1
|
+
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div><div data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div><div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="2"><div class="bn-block" data-node-type="blockContainer" data-id="2"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div data-name="example" data-url="exampleURL" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption"></p></div></div>
|
|
1
|
+
<div data-name="example" data-url="exampleURL" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="example" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;"></p></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div>
|
|
1
|
+
<div data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption">Caption</p></div></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-url="exampleURL" data-caption="Caption" data-preview-width="256"><div class="bn-file-block-content-wrapper"><div class="bn-file-and-caption-wrapper"><div class="bn-visual-media-wrapper"><img class="bn-visual-media" alt="Caption" draggable="false" width="0"></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption">Caption</p></div>
|
|
1
|
+
<div data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption">Caption</p></div></div></div></div></div>
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="simpleImage" data-name="example" data-url="exampleURL" data-caption="Caption" data-show-preview="false" data-preview-width="256"><div class="bn-file-and-caption-wrapper"><div class="bn-file-default-preview"><div class="bn-file-default-preview-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 8L9.00319 2H19.9978C20.5513 2 21 2.45531 21 2.9918V21.0082C21 21.556 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5501 3 20.9932V8ZM10 4V9H5V20H19V4H10Z"></path></svg></div><p class="bn-file-default-preview-name">example</p></div><p class="bn-file-caption" style="width: 256px;">Caption</p></div></div></div></div></div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<table><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table></div></div></div></div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<table><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table></div></div></div></div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<table><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table></div></div></div></div>
|
|
@@ -31,13 +31,8 @@ export const createInternalHTMLSerializer = <
|
|
|
31
31
|
blocks: PartialBlock<BSchema, I, S>[],
|
|
32
32
|
options: { document?: Document }
|
|
33
33
|
) => {
|
|
34
|
-
return serializeBlocksInternalHTML(
|
|
35
|
-
|
|
36
|
-
blocks,
|
|
37
|
-
serializer,
|
|
38
|
-
false,
|
|
39
|
-
options
|
|
40
|
-
).outerHTML;
|
|
34
|
+
return serializeBlocksInternalHTML(editor, blocks, serializer, options)
|
|
35
|
+
.outerHTML;
|
|
41
36
|
},
|
|
42
37
|
};
|
|
43
38
|
};
|
|
@@ -21,7 +21,6 @@ export function serializeInlineContentInternalHTML<
|
|
|
21
21
|
editor: BlockNoteEditor<any, I, S>,
|
|
22
22
|
blockContent: PartialBlock<BSchema, I, S>["content"],
|
|
23
23
|
serializer: DOMSerializer,
|
|
24
|
-
_toExternalHTML: boolean, // TODO, externalHTML for IC
|
|
25
24
|
options?: { document?: Document }
|
|
26
25
|
) {
|
|
27
26
|
let nodes: any;
|
|
@@ -67,7 +66,7 @@ function serializeBlock<
|
|
|
67
66
|
editor: BlockNoteEditor<BSchema, I, S>,
|
|
68
67
|
block: PartialBlock<BSchema, I, S>,
|
|
69
68
|
serializer: DOMSerializer,
|
|
70
|
-
|
|
69
|
+
listIndex: number,
|
|
71
70
|
options?: { document?: Document }
|
|
72
71
|
) {
|
|
73
72
|
const BC_NODE = editor.pmSchema.nodes["blockContainer"];
|
|
@@ -94,16 +93,23 @@ function serializeBlock<
|
|
|
94
93
|
};
|
|
95
94
|
|
|
96
95
|
const impl = editor.blockImplementations[block.type as any].implementation;
|
|
97
|
-
const ret =
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
const ret = impl.toInternalHTML({ ...block, props } as any, editor as any);
|
|
97
|
+
|
|
98
|
+
if (block.type === "numberedListItem") {
|
|
99
|
+
// This is a workaround to make sure there's a list index set.
|
|
100
|
+
// Normally, this is set on the internal prosemirror nodes by the NumberedListIndexingPlugin,
|
|
101
|
+
// but:
|
|
102
|
+
// - (a) this information is not available on the Blocks passed to the serializer. (we only have access to BlockNote Blocks)
|
|
103
|
+
// - (b) the NumberedListIndexingPlugin might not even have run, because we can manually call blocksToFullHTML
|
|
104
|
+
// with blocks that are not part of the active document
|
|
105
|
+
ret.dom.setAttribute("data-index", listIndex.toString());
|
|
106
|
+
}
|
|
100
107
|
|
|
101
108
|
if (ret.contentDOM && block.content) {
|
|
102
109
|
const ic = serializeInlineContentInternalHTML(
|
|
103
110
|
editor,
|
|
104
111
|
block.content as any, // TODO
|
|
105
112
|
serializer,
|
|
106
|
-
toExternalHTML,
|
|
107
113
|
options
|
|
108
114
|
);
|
|
109
115
|
ret.contentDOM.appendChild(ic);
|
|
@@ -113,13 +119,7 @@ function serializeBlock<
|
|
|
113
119
|
|
|
114
120
|
if (block.children && block.children.length > 0) {
|
|
115
121
|
bc.contentDOM?.appendChild(
|
|
116
|
-
serializeBlocksInternalHTML(
|
|
117
|
-
editor,
|
|
118
|
-
block.children,
|
|
119
|
-
serializer,
|
|
120
|
-
toExternalHTML,
|
|
121
|
-
options
|
|
122
|
-
)
|
|
122
|
+
serializeBlocksInternalHTML(editor, block.children, serializer, options)
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
125
|
return bc.dom;
|
|
@@ -133,7 +133,6 @@ export const serializeBlocksInternalHTML = <
|
|
|
133
133
|
editor: BlockNoteEditor<BSchema, I, S>,
|
|
134
134
|
blocks: PartialBlock<BSchema, I, S>[],
|
|
135
135
|
serializer: DOMSerializer,
|
|
136
|
-
toExternalHTML: boolean,
|
|
137
136
|
options?: { document?: Document }
|
|
138
137
|
) => {
|
|
139
138
|
const BG_NODE = editor.pmSchema.nodes["blockGroup"];
|
|
@@ -143,12 +142,18 @@ export const serializeBlocksInternalHTML = <
|
|
|
143
142
|
contentDOM?: HTMLElement;
|
|
144
143
|
};
|
|
145
144
|
|
|
145
|
+
let listIndex = 0;
|
|
146
146
|
for (const block of blocks) {
|
|
147
|
+
if (block.type === "numberedListItem") {
|
|
148
|
+
listIndex++;
|
|
149
|
+
} else {
|
|
150
|
+
listIndex = 0;
|
|
151
|
+
}
|
|
147
152
|
const blockDOM = serializeBlock(
|
|
148
153
|
editor,
|
|
149
154
|
block,
|
|
150
155
|
serializer,
|
|
151
|
-
|
|
156
|
+
listIndex,
|
|
152
157
|
options
|
|
153
158
|
);
|
|
154
159
|
bg.contentDOM!.appendChild(blockDOM);
|