Skip to content

Commit c5fc530

Browse files
committed
Merge branch 'refactor/tables-customelements-copypaste' of github.com:TypeCellOS/BlockNote into refactor/tables-customelements-copypaste
2 parents 0650d02 + d59879d commit c5fc530

File tree

165 files changed

+677
-579
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+677
-579
lines changed

.eslintrc.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
const typeScriptExtensions = [".ts", ".cts", ".mts", ".tsx"];
2+
3+
const allExtensions = [...typeScriptExtensions, ".js", ".jsx"];
4+
15
module.exports = {
26
root: true,
37
extends: [
@@ -8,6 +12,18 @@ module.exports = {
812
],
913
parser: "@typescript-eslint/parser",
1014
plugins: ["import", "@typescript-eslint"],
15+
settings: {
16+
"import/extensions": allExtensions,
17+
"import/external-module-folders": ["node_modules", "node_modules/@types"],
18+
"import/parsers": {
19+
"@typescript-eslint/parser": typeScriptExtensions,
20+
},
21+
"import/resolver": {
22+
node: {
23+
extensions: allExtensions,
24+
},
25+
},
26+
},
1127
rules: {
1228
curly: 1,
1329
"import/no-extraneous-dependencies": [
@@ -23,5 +39,19 @@ module.exports = {
2339
"@typescript-eslint/no-non-null-assertion": "off",
2440
"@typescript-eslint/no-explicit-any": "off",
2541
"@typescript-eslint/ban-ts-comment": "off",
42+
"import/no-cycle": "error",
43+
// doesn't work:
44+
// "import/no-restricted-paths": [
45+
// "error",
46+
// {
47+
// zones: [
48+
// {
49+
// target: "./src/**/*",
50+
// from: "./types/**/*",
51+
// message: "Import from this module to types is not allowed.",
52+
// },
53+
// ],
54+
// },
55+
// ],
2656
},
2757
};

package-lock.json

Lines changed: 53 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
"@tiptap/extension-underline": "^2.0.3",
7474
"@tiptap/pm": "^2.0.3",
7575
"hast-util-from-dom": "^4.2.0",
76-
"lodash": "^4.17.21",
7776
"prosemirror-model": "^1.18.3",
7877
"prosemirror-state": "^1.4.3",
7978
"prosemirror-transform": "^1.7.2",
@@ -82,7 +81,7 @@
8281
"rehype-parse": "^8.0.4",
8382
"rehype-remark": "^9.1.2",
8483
"rehype-stringify": "^9.0.3",
85-
"rehype-format":"^5.0.0",
84+
"rehype-format": "^5.0.0",
8685
"remark-gfm": "^3.0.1",
8786
"remark-parse": "^10.0.1",
8887
"remark-rehype": "^10.1.0",
@@ -95,7 +94,6 @@
9594
},
9695
"devDependencies": {
9796
"@types/hast": "^2.3.4",
98-
"@types/lodash": "^4.14.179",
9997
"@types/uuid": "^8.3.4",
10098
"eslint": "^8.10.0",
10199
"jsdom": "^21.1.0",

packages/core/src/api/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
### @blocknote/core/src/api
2+
3+
Implements the BlockNote API surface
4+
5+
- `blockManipulation`: API to insert / update / remove blocks
6+
- `exporters`: exporting to HTML / markdown / other formats
7+
- `nodeConversions`: internal API for converting between BlockNote Schema (Blocks) and Prosemirror (Nodes)
8+
- `parsers`: importing from HTML / markdown / other formats

packages/core/src/api/blockManipulation/blockManipulation.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { afterEach, beforeEach, describe, expect, it } from "vitest";
2-
import { BlockNoteEditor } from "../../BlockNoteEditor";
3-
import { Block, PartialBlock } from "../../extensions/Blocks/api/blocks/types";
42
import {
53
DefaultBlockSchema,
64
DefaultInlineContentSchema,
75
DefaultStyleSchema,
8-
} from "../../extensions/Blocks/api/defaultBlocks";
6+
} from "../../blocks/defaultBlocks";
7+
import { BlockNoteEditor } from "../../editor/BlockNoteEditor";
8+
import { Block, PartialBlock } from "../../schema/blocks/types";
99

1010
let editor: BlockNoteEditor;
1111

packages/core/src/api/blockManipulation/blockManipulation.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import { Editor } from "@tiptap/core";
22
import { Node } from "prosemirror-model";
33

4-
import { BlockNoteEditor } from "../../BlockNoteEditor";
4+
import type { BlockNoteEditor } from "../../editor/BlockNoteEditor";
55
import {
66
BlockIdentifier,
77
BlockSchema,
8+
InlineContentSchema,
89
PartialBlock,
9-
} from "../../extensions/Blocks/api/blocks/types";
10-
import { InlineContentSchema } from "../../extensions/Blocks/api/inlineContent/types";
11-
import { StyleSchema } from "../../extensions/Blocks/api/styles/types";
10+
StyleSchema,
11+
} from "../../schema";
1212
import { blockToNode } from "../nodeConversions/nodeConversions";
13-
import { getNodeById } from "../util/nodeUtil";
13+
import { getNodeById } from "../nodeUtil";
1414

1515
export function insertBlocks<
1616
BSchema extends BlockSchema,

packages/core/src/api/exporters/copyExtension.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { Extension } from "@tiptap/core";
22
import { Plugin } from "prosemirror-state";
33

4-
import { BlockNoteEditor } from "../../BlockNoteEditor";
5-
import { BlockSchema } from "../../extensions/Blocks/api/blocks/types";
6-
import { InlineContentSchema } from "../../extensions/Blocks/api/inlineContent/types";
7-
import { StyleSchema } from "../../extensions/Blocks/api/styles/types";
4+
import type { BlockNoteEditor } from "../../editor/BlockNoteEditor";
5+
import { BlockSchema, InlineContentSchema, StyleSchema } from "../../schema";
86
import { createExternalHTMLExporter } from "./html/externalHTMLExporter";
97
import { createInternalHTMLSerializer } from "./html/internalHTMLSerializer";
108
import { cleanHTMLToMarkdown } from "./markdown/markdownExporter";

packages/core/src/api/exporters/html/externalHTMLExporter.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import rehypeParse from "rehype-parse";
33
import rehypeStringify from "rehype-stringify";
44
import { unified } from "unified";
55

6-
import { BlockNoteEditor } from "../../../BlockNoteEditor";
6+
import type { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
77
import {
88
BlockSchema,
9+
InlineContentSchema,
910
PartialBlock,
10-
} from "../../../extensions/Blocks/api/blocks/types";
11-
import { InlineContentSchema } from "../../../extensions/Blocks/api/inlineContent/types";
12-
import { StyleSchema } from "../../../extensions/Blocks/api/styles/types";
11+
StyleSchema,
12+
} from "../../../schema";
1313
import { blockToNode } from "../../nodeConversions/nodeConversions";
1414
import {
1515
serializeNodeInner,

packages/core/src/api/exporters/html/htmlConversion.test.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
import { afterEach, beforeEach, describe, expect, it } from "vitest";
2-
import { BlockNoteEditor } from "../../../BlockNoteEditor";
2+
import { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
33

44
import { addIdsToBlocks, partialBlocksToBlocksForTesting } from "../../..";
5-
import {
6-
BlockSchema,
7-
PartialBlock,
8-
} from "../../../extensions/Blocks/api/blocks/types";
9-
import { InlineContentSchema } from "../../../extensions/Blocks/api/inlineContent/types";
10-
import { StyleSchema } from "../../../extensions/Blocks/api/styles/types";
11-
import { customBlocksTestCases } from "../../testCases/cases/customBlocks";
12-
import { customInlineContentTestCases } from "../../testCases/cases/customInlineContent";
13-
import { customStylesTestCases } from "../../testCases/cases/customStyles";
14-
import { defaultSchemaTestCases } from "../../testCases/cases/defaultSchema";
5+
import { BlockSchema, PartialBlock } from "../../../schema/blocks/types";
6+
import { InlineContentSchema } from "../../../schema/inlineContent/types";
7+
import { StyleSchema } from "../../../schema/styles/types";
8+
import { customBlocksTestCases } from "../../testUtil/cases/customBlocks";
9+
import { customInlineContentTestCases } from "../../testUtil/cases/customInlineContent";
10+
import { customStylesTestCases } from "../../testUtil/cases/customStyles";
11+
import { defaultSchemaTestCases } from "../../testUtil/cases/defaultSchema";
1512
import { createExternalHTMLExporter } from "./externalHTMLExporter";
1613
import { createInternalHTMLSerializer } from "./internalHTMLSerializer";
1714

packages/core/src/api/exporters/html/internalHTMLSerializer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { DOMSerializer, Fragment, Node, Schema } from "prosemirror-model";
2-
import { BlockNoteEditor } from "../../../BlockNoteEditor";
2+
import type { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
33
import {
44
BlockSchema,
5+
InlineContentSchema,
56
PartialBlock,
6-
} from "../../../extensions/Blocks/api/blocks/types";
7-
import { InlineContentSchema } from "../../../extensions/Blocks/api/inlineContent/types";
8-
import { StyleSchema } from "../../../extensions/Blocks/api/styles/types";
7+
StyleSchema,
8+
} from "../../../schema";
99
import { blockToNode } from "../../nodeConversions/nodeConversions";
1010
import {
1111
serializeNodeInner,

packages/core/src/api/exporters/html/util/sharedHTMLConversion.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import { DOMSerializer, Fragment, Node } from "prosemirror-model";
22

3-
import { BlockNoteEditor } from "../../../../BlockNoteEditor";
4-
import { BlockSchema } from "../../../../extensions/Blocks/api/blocks/types";
5-
import { InlineContentSchema } from "../../../../extensions/Blocks/api/inlineContent/types";
6-
import { StyleSchema } from "../../../../extensions/Blocks/api/styles/types";
3+
import type { BlockNoteEditor } from "../../../../editor/BlockNoteEditor";
4+
import {
5+
BlockSchema,
6+
InlineContentSchema,
7+
StyleSchema,
8+
} from "../../../../schema";
79
import { nodeToBlock } from "../../../nodeConversions/nodeConversions";
810

911
function doc(options: { document?: Document }) {

packages/core/src/api/exporters/markdown/markdownExporter.test.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
import fs from "node:fs";
22
import path from "node:path";
33
import { afterEach, beforeEach, describe, expect, it } from "vitest";
4-
import { BlockNoteEditor } from "../../../BlockNoteEditor";
5-
import {
6-
BlockSchema,
7-
PartialBlock,
8-
} from "../../../extensions/Blocks/api/blocks/types";
9-
import { InlineContentSchema } from "../../../extensions/Blocks/api/inlineContent/types";
10-
import { StyleSchema } from "../../../extensions/Blocks/api/styles/types";
11-
import { partialBlocksToBlocksForTesting } from "../../nodeConversions/testUtil";
12-
import { customBlocksTestCases } from "../../testCases/cases/customBlocks";
13-
import { customInlineContentTestCases } from "../../testCases/cases/customInlineContent";
14-
import { customStylesTestCases } from "../../testCases/cases/customStyles";
15-
import { defaultSchemaTestCases } from "../../testCases/cases/defaultSchema";
4+
import { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
5+
import { BlockSchema, PartialBlock } from "../../../schema/blocks/types";
6+
import { InlineContentSchema } from "../../../schema/inlineContent/types";
7+
import { StyleSchema } from "../../../schema/styles/types";
8+
import { partialBlocksToBlocksForTesting } from "../../testUtil/partialBlockTestUtil";
9+
import { customBlocksTestCases } from "../../testUtil/cases/customBlocks";
10+
import { customInlineContentTestCases } from "../../testUtil/cases/customInlineContent";
11+
import { customStylesTestCases } from "../../testUtil/cases/customStyles";
12+
import { defaultSchemaTestCases } from "../../testUtil/cases/defaultSchema";
1613

1714
async function convertToMarkdownAndCompareSnapshots<
1815
B extends BlockSchema,

packages/core/src/api/exporters/markdown/markdownExporter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import rehypeRemark from "rehype-remark";
44
import remarkGfm from "remark-gfm";
55
import remarkStringify from "remark-stringify";
66
import { unified } from "unified";
7+
import type { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
78
import {
89
Block,
9-
BlockNoteEditor,
1010
BlockSchema,
1111
InlineContentSchema,
1212
StyleSchema,
13-
createExternalHTMLExporter,
14-
} from "../../..";
13+
} from "../../../schema";
14+
import { createExternalHTMLExporter } from "../html/externalHTMLExporter";
1515
import { removeUnderlines } from "./removeUnderlinesRehypePlugin";
1616

1717
export function cleanHTMLToMarkdown(cleanHTMLString: string) {

packages/core/src/api/nodeConversions/nodeConversions.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { afterEach, beforeEach, describe, expect, it } from "vitest";
22

3-
import { BlockNoteEditor } from "../../BlockNoteEditor";
4-
import { PartialBlock } from "../../extensions/Blocks/api/blocks/types";
5-
import { customInlineContentTestCases } from "../testCases/cases/customInlineContent";
6-
import { customStylesTestCases } from "../testCases/cases/customStyles";
7-
import { defaultSchemaTestCases } from "../testCases/cases/defaultSchema";
3+
import { BlockNoteEditor } from "../../editor/BlockNoteEditor";
4+
import { PartialBlock } from "../../schema/blocks/types";
5+
import { customInlineContentTestCases } from "../testUtil/cases/customInlineContent";
6+
import { customStylesTestCases } from "../testUtil/cases/customStyles";
7+
import { defaultSchemaTestCases } from "../testUtil/cases/defaultSchema";
88
import { blockToNode, nodeToBlock } from "./nodeConversions";
9-
import { addIdsToBlock, partialBlockToBlockForTesting } from "./testUtil";
9+
import { addIdsToBlock, partialBlockToBlockForTesting } from "../testUtil/partialBlockTestUtil";
1010

1111
function validateConversion(
1212
block: PartialBlock<any, any, any>,

0 commit comments

Comments
 (0)