@kerebron/legacy-compat 0.8.7 → 0.8.9
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/kerebron-light.css +1 -1
- package/dist/kerebron.cjs +17 -14
- package/dist/kerebron.cjs.map +1 -1
- package/dist/kerebron.css +1 -1
- package/dist/kerebron.js +287 -122
- package/dist/kerebron.js.map +1 -1
- package/package.json +1 -1
package/dist/kerebron.js
CHANGED
|
@@ -7117,8 +7117,43 @@ function setPathValue(e, t, n) {
|
|
|
7117
7117
|
}
|
|
7118
7118
|
}
|
|
7119
7119
|
//#endregion
|
|
7120
|
-
//#region
|
|
7121
|
-
var
|
|
7120
|
+
//#region \0deno::TypeScript::@kerebron/editor/frontmatter::/home/runner/work/kerebron/kerebron/packages/editor/src/utilities/frontmatter.ts
|
|
7121
|
+
var FrontmatterMap = class extends Map {
|
|
7122
|
+
origMap;
|
|
7123
|
+
origString = "";
|
|
7124
|
+
constructor() {
|
|
7125
|
+
super();
|
|
7126
|
+
}
|
|
7127
|
+
}, FrontmatterServiceImpl = class {
|
|
7128
|
+
constructor(e) {
|
|
7129
|
+
this.yamlService = e;
|
|
7130
|
+
}
|
|
7131
|
+
parse(e) {
|
|
7132
|
+
let t = new FrontmatterMap();
|
|
7133
|
+
t.origString = e;
|
|
7134
|
+
let n = e.indexOf("\n---\n", 4);
|
|
7135
|
+
if (e.startsWith("---\n") && n > -1) {
|
|
7136
|
+
let r = this.yamlService.parse(e.substring(4, n));
|
|
7137
|
+
if (r instanceof Map) {
|
|
7138
|
+
t.origMap = r;
|
|
7139
|
+
for (let [e, n] of r) t.set(e, structuredClone(n));
|
|
7140
|
+
}
|
|
7141
|
+
}
|
|
7142
|
+
return t;
|
|
7143
|
+
}
|
|
7144
|
+
stringify(e) {
|
|
7145
|
+
return e ? e.origMap?.entries === e.entries ? e.origString : `---
|
|
7146
|
+
${this.yamlService.stringify(e)}
|
|
7147
|
+
---
|
|
7148
|
+
` : "";
|
|
7149
|
+
}
|
|
7150
|
+
}, BlankFrontmatterServiceImpl = class {
|
|
7151
|
+
constructor() {}
|
|
7152
|
+
parse(e) {}
|
|
7153
|
+
stringify(e) {
|
|
7154
|
+
return "";
|
|
7155
|
+
}
|
|
7156
|
+
}, SearchQuery = class {
|
|
7122
7157
|
search;
|
|
7123
7158
|
caseSensitive;
|
|
7124
7159
|
literal;
|
|
@@ -7581,7 +7616,7 @@ var ExtensionManager = class {
|
|
|
7581
7616
|
}
|
|
7582
7617
|
}
|
|
7583
7618
|
for (let t of a) e.ci.register(t.name, t);
|
|
7584
|
-
e.ci.register("yaml", yaml_exports), e.ci.register("workspace", new WorkspaceImpl()), this.initPlugins(e, t);
|
|
7619
|
+
e.ci.register("yaml", yaml_exports), e.ci.register("frontmatter", new FrontmatterServiceImpl(yaml_exports)), e.ci.register("workspace", new WorkspaceImpl()), this.initPlugins(e, t);
|
|
7585
7620
|
for (let e of this.extensions) e.created();
|
|
7586
7621
|
}
|
|
7587
7622
|
};
|
|
@@ -7613,7 +7648,22 @@ function createChainableState(e, t) {
|
|
|
7613
7648
|
}
|
|
7614
7649
|
//#endregion
|
|
7615
7650
|
//#region ../editor/src/commands/baseCommandFactories.ts
|
|
7616
|
-
var
|
|
7651
|
+
var liftListItemParagraph = () => (e, t) => {
|
|
7652
|
+
let { $cursor: n } = e.selection;
|
|
7653
|
+
if (!n || n.parentOffset > 0 || !n.parent.isTextblock) return !1;
|
|
7654
|
+
for (let r = n.depth; r > 0; r--) {
|
|
7655
|
+
let a = n.node(r);
|
|
7656
|
+
if (a.type.name === "list_item" || a.type.name === "bullet_list" || a.type.name === "task_item" || a.type.name === "task_list") {
|
|
7657
|
+
let o = a.type.name === "list_item" ? r : r - 1;
|
|
7658
|
+
if (a.type.name === "list_item" || n.node(r - 1), n.index(o) === 0) return !1;
|
|
7659
|
+
let s = n.blockRange();
|
|
7660
|
+
if (!s) return !1;
|
|
7661
|
+
let c = liftTarget(s);
|
|
7662
|
+
return c == null ? !1 : (t && t(e.tr.lift(s, c).scrollIntoView()), !0);
|
|
7663
|
+
}
|
|
7664
|
+
}
|
|
7665
|
+
return !1;
|
|
7666
|
+
}, wrapInList = (e, t = null) => function(n, r, a) {
|
|
7617
7667
|
let { $from: o, $to: s } = n.selection, c = o.blockRange(s);
|
|
7618
7668
|
if (!c) return !1;
|
|
7619
7669
|
let l = r ? n.tr : null;
|
|
@@ -7987,7 +8037,26 @@ function toggleMark(e, t = null, n) {
|
|
|
7987
8037
|
return !0;
|
|
7988
8038
|
};
|
|
7989
8039
|
}
|
|
7990
|
-
var
|
|
8040
|
+
var isList$1 = (e) => e.type.name === "bullet_list" || e.type.name === "ordered_list" || e.type.name === "task_list", keepRange = (e, t) => (n, r) => {
|
|
8041
|
+
let a = n.doc.resolve(e), o = n.doc.resolve(t);
|
|
8042
|
+
for (let t = a.depth; t > 0; t--) if (isList$1(a.node(t))) {
|
|
8043
|
+
e = a.before(t);
|
|
8044
|
+
break;
|
|
8045
|
+
}
|
|
8046
|
+
for (let e = o.depth; e > 0; e--) if (isList$1(o.node(e))) {
|
|
8047
|
+
t = o.after(e);
|
|
8048
|
+
break;
|
|
8049
|
+
}
|
|
8050
|
+
if (!r) return !0;
|
|
8051
|
+
let s = n.doc.slice(e, t), c = n.tr.replace(0, n.doc.content.size, s);
|
|
8052
|
+
return c = c.setSelection(TextSelection.atStart(c.doc)), r && r(c), !0;
|
|
8053
|
+
}, keepSelection = () => (e, t) => {
|
|
8054
|
+
if (!t) return !0;
|
|
8055
|
+
let n = e.selection.content(), r = e.tr.replace(0, e.doc.content.size, n);
|
|
8056
|
+
return r.setSelection(TextSelection.atStart(r.doc)), t && t(r), !0;
|
|
8057
|
+
}, undoInputRule = () => undoInputRuleCommand, command = (e) => (...t) => e.apply(void 0, t), baseCommandFactories = {
|
|
8058
|
+
keepRange,
|
|
8059
|
+
keepSelection,
|
|
7991
8060
|
wrapInList,
|
|
7992
8061
|
wrapRangeInList,
|
|
7993
8062
|
deleteSelection,
|
|
@@ -7998,6 +8067,7 @@ var undoInputRule = () => undoInputRuleCommand, command = (e) => (...t) => e.app
|
|
|
7998
8067
|
joinUp,
|
|
7999
8068
|
joinDown,
|
|
8000
8069
|
lift,
|
|
8070
|
+
liftListItemParagraph,
|
|
8001
8071
|
newlineInCode,
|
|
8002
8072
|
exitCode,
|
|
8003
8073
|
createParagraphNear,
|
|
@@ -8030,7 +8100,7 @@ function firstCommand(...e) {
|
|
|
8030
8100
|
}
|
|
8031
8101
|
//#endregion
|
|
8032
8102
|
//#region ../editor/src/commands/keyCommandFactories.ts
|
|
8033
|
-
var backspace = firstCommand(baseCommandFactories.undoInputRule(), baseCommandFactories.deleteSelection(), baseCommandFactories.joinBackward(), baseCommandFactories.selectNodeBackward()), del = firstCommand(baseCommandFactories.deleteSelection(), baseCommandFactories.joinForward(), baseCommandFactories.selectNodeForward()), enter = firstCommand(baseCommandFactories.newlineInCode(), baseCommandFactories.createParagraphNear(), baseCommandFactories.liftEmptyBlock(), baseCommandFactories.splitBlock()), keyCommandFactories = {
|
|
8103
|
+
var backspace = firstCommand(baseCommandFactories.undoInputRule(), baseCommandFactories.deleteSelection(), baseCommandFactories.liftListItemParagraph(), baseCommandFactories.joinBackward(), baseCommandFactories.selectNodeBackward()), del = firstCommand(baseCommandFactories.deleteSelection(), baseCommandFactories.joinForward(), baseCommandFactories.selectNodeForward()), enter = firstCommand(baseCommandFactories.newlineInCode(), baseCommandFactories.createParagraphNear(), baseCommandFactories.liftEmptyBlock(), baseCommandFactories.splitBlock()), keyCommandFactories = {
|
|
8034
8104
|
backspace: () => backspace,
|
|
8035
8105
|
del: () => del,
|
|
8036
8106
|
enter: () => enter
|
|
@@ -8463,10 +8533,18 @@ var CoreEditor = class e extends EventTarget {
|
|
|
8463
8533
|
return a.createView(o), a.setupPlugins(), a.dispatchEvent(new CustomEvent("ready")), a;
|
|
8464
8534
|
}
|
|
8465
8535
|
clone(t) {
|
|
8466
|
-
let n = new ExtensionManager(this.extensionManager.editorKits, (t || this.config).debug), r = new e({
|
|
8536
|
+
let n = new ExtensionManager(this.extensionManager.editorKits, (t || this.config).debug), r = new e({
|
|
8537
|
+
assetLoad: this.config.assetLoad,
|
|
8538
|
+
...t
|
|
8539
|
+
}, this.schema, n);
|
|
8467
8540
|
n.created(r, this.schema);
|
|
8468
|
-
let a = this.getJSON();
|
|
8469
|
-
|
|
8541
|
+
let a = this.getJSON(), o = this.state.selection;
|
|
8542
|
+
r.createView(a, o), r.setupPlugins();
|
|
8543
|
+
{
|
|
8544
|
+
let e = this.state, t = r.state.tr.setMeta("cloned", e);
|
|
8545
|
+
r.dispatchTransaction(t);
|
|
8546
|
+
}
|
|
8547
|
+
return r;
|
|
8470
8548
|
}
|
|
8471
8549
|
getExtension(e) {
|
|
8472
8550
|
return this.ci.resolve(e);
|
|
@@ -8508,9 +8586,12 @@ var CoreEditor = class e extends EventTarget {
|
|
|
8508
8586
|
unlink() {
|
|
8509
8587
|
this.linkListener && this.linkSource && (this.linkSource.removeEventListener("changed", this.linkListener), this.linkListener = void 0, this.linkSource = void 0);
|
|
8510
8588
|
}
|
|
8511
|
-
createView(e) {
|
|
8512
|
-
let
|
|
8513
|
-
if (this.state = EditorState.create({
|
|
8589
|
+
createView(e, t) {
|
|
8590
|
+
let n = createNodeFromObject(e, this.schema);
|
|
8591
|
+
if (this.state = EditorState.create({
|
|
8592
|
+
doc: n,
|
|
8593
|
+
selection: t
|
|
8594
|
+
}), this.config.element) {
|
|
8514
8595
|
let e = new EditorView(this.config.element, {
|
|
8515
8596
|
state: this.state,
|
|
8516
8597
|
attributes: { class: "kb-editor" },
|
|
@@ -8529,11 +8610,11 @@ var CoreEditor = class e extends EventTarget {
|
|
|
8529
8610
|
state: this.state,
|
|
8530
8611
|
dispatchTransaction: (e) => this.dispatchTransaction(e)
|
|
8531
8612
|
});
|
|
8532
|
-
let
|
|
8613
|
+
let r = new CustomEvent("doc:loaded", { detail: {
|
|
8533
8614
|
editor: this,
|
|
8534
|
-
doc:
|
|
8615
|
+
doc: n
|
|
8535
8616
|
} });
|
|
8536
|
-
this.dispatchEvent(
|
|
8617
|
+
this.dispatchEvent(r);
|
|
8537
8618
|
}
|
|
8538
8619
|
dispatchTransaction(e) {
|
|
8539
8620
|
if (this.state = this.state.apply(e), e.docChanged && this.version++, this.view) {
|
|
@@ -8588,15 +8669,19 @@ var CoreEditor = class e extends EventTarget {
|
|
|
8588
8669
|
doc: n,
|
|
8589
8670
|
plugins: this.state.plugins,
|
|
8590
8671
|
storedMarks: this.state.storedMarks
|
|
8591
|
-
})
|
|
8592
|
-
runInputRulesTexts()(r, (e) => {
|
|
8672
|
+
}), a = (e) => {
|
|
8593
8673
|
r = r.apply(e);
|
|
8594
|
-
}
|
|
8595
|
-
|
|
8674
|
+
};
|
|
8675
|
+
{
|
|
8676
|
+
let e = this.state;
|
|
8677
|
+
a(r.tr.setMeta("cloned", e));
|
|
8678
|
+
}
|
|
8679
|
+
runInputRulesTexts()(r, a), this.state = r, this.view && (this.view.updateState(this.state), this.view.dispatch(this.view.state.tr));
|
|
8680
|
+
let o = new CustomEvent("doc:loaded", { detail: {
|
|
8596
8681
|
editor: this,
|
|
8597
8682
|
doc: this.state.doc
|
|
8598
8683
|
} });
|
|
8599
|
-
this.dispatchEvent(
|
|
8684
|
+
this.dispatchEvent(o);
|
|
8600
8685
|
}
|
|
8601
8686
|
async saveDocument(e) {
|
|
8602
8687
|
let t = this.getConverter(e), n = this.state.doc.toJSON(), r = Node$3.fromJSON(this.state.schema, n);
|
|
@@ -9542,6 +9627,7 @@ function createMediaUploadPlugin(e = {}) {
|
|
|
9542
9627
|
}
|
|
9543
9628
|
},
|
|
9544
9629
|
handlePaste(t, n, r) {
|
|
9630
|
+
if ((n.clipboardData?.types || []).includes("text/html")) return;
|
|
9545
9631
|
let a = Array.from(n.clipboardData?.items || []).filter((e) => e.type.startsWith("image/"));
|
|
9546
9632
|
if (a.length > 0) {
|
|
9547
9633
|
n.preventDefault();
|
|
@@ -9657,15 +9743,32 @@ var PasteState = class {
|
|
|
9657
9743
|
key: PastePluginKey,
|
|
9658
9744
|
state: {
|
|
9659
9745
|
init() {
|
|
9660
|
-
return
|
|
9746
|
+
return new PasteState(e);
|
|
9661
9747
|
},
|
|
9662
9748
|
apply(e, t, n, r) {
|
|
9663
9749
|
if (e.isGeneric) return t;
|
|
9664
|
-
let a = e.getMeta(
|
|
9665
|
-
|
|
9750
|
+
let a = e.getMeta("cloned");
|
|
9751
|
+
if (a) {
|
|
9752
|
+
let e = PastePluginKey.getState(a);
|
|
9753
|
+
if (e) return e;
|
|
9754
|
+
}
|
|
9755
|
+
let o = e.getMeta(PastePluginKey);
|
|
9756
|
+
return t.handleCommands(o, e), t;
|
|
9666
9757
|
}
|
|
9667
9758
|
},
|
|
9668
9759
|
props: {
|
|
9760
|
+
handleDOMEvents: { copy(t, n) {
|
|
9761
|
+
if (!n.clipboardData) return !1;
|
|
9762
|
+
let r = e.clone();
|
|
9763
|
+
return n.preventDefault(), (async () => {
|
|
9764
|
+
r.state.selection instanceof AllSelection || r.ci.register("frontmatter", new BlankFrontmatterServiceImpl()), r.chain().keepSelection().run();
|
|
9765
|
+
let e = new TextDecoder().decode(await r.saveDocument("text/x-markdown")), t = new TextDecoder().decode(await r.saveDocument("text/html"));
|
|
9766
|
+
await navigator.clipboard.write([new ClipboardItem({
|
|
9767
|
+
"text/plain": new Blob([e], { type: "text/plain" }),
|
|
9768
|
+
"text/html": new Blob([t], { type: "text/html" })
|
|
9769
|
+
})]);
|
|
9770
|
+
})(), !1;
|
|
9771
|
+
} },
|
|
9669
9772
|
handlePaste(t, n, r) {
|
|
9670
9773
|
let { clipboardData: a } = n;
|
|
9671
9774
|
if (!a) return !1;
|
|
@@ -12377,6 +12480,9 @@ function getInlineTokensHandlers() {
|
|
|
12377
12480
|
if (e.meta === "noEscText") t.current.log(e.content);
|
|
12378
12481
|
else for (let n of escapeMarkdown(e)) t.current.log(n[0], n[1]);
|
|
12379
12482
|
}],
|
|
12483
|
+
entity: [(e, t) => {
|
|
12484
|
+
t.current.log(e.content);
|
|
12485
|
+
}],
|
|
12380
12486
|
strong_open: [(e, t) => {
|
|
12381
12487
|
t.current.log(e.markup || "**", e);
|
|
12382
12488
|
}],
|
|
@@ -12493,6 +12599,9 @@ function getHtmlInlineTokensHandlers() {
|
|
|
12493
12599
|
text: [(e, t) => {
|
|
12494
12600
|
t.current.log(escapeHtml$1(e.content), e);
|
|
12495
12601
|
}],
|
|
12602
|
+
entity: [(e, t) => {
|
|
12603
|
+
t.current.log(e.content, e);
|
|
12604
|
+
}],
|
|
12496
12605
|
...getHtmlInlineFormatTokensHandlers(),
|
|
12497
12606
|
link_open: [(e, t) => {
|
|
12498
12607
|
t.stash("getHtmlInlineTokensHandlers.link_open");
|
|
@@ -13430,7 +13539,7 @@ async function extPmToMdConverter(e, t, n, r) {
|
|
|
13430
13539
|
doc(e) {
|
|
13431
13540
|
return { open: async (e, n, r) => {
|
|
13432
13541
|
let a = new Token("frontmatter", "frontmatter", 0);
|
|
13433
|
-
return e.attrs.meta && (t.
|
|
13542
|
+
return e.attrs.meta && (t.frontmatter ? a.content = t.frontmatter.stringify(e.attrs.meta) : a.content = "---\n# No frontmatter service\n---\n"), a;
|
|
13434
13543
|
} };
|
|
13435
13544
|
},
|
|
13436
13545
|
paragraph(e) {
|
|
@@ -13710,6 +13819,10 @@ function elementFromString(e) {
|
|
|
13710
13819
|
let t = `<html lang="en"><body>${e}</body></html>`, n = new globalThis.DOMParser().parseFromString(t, "text/html").body;
|
|
13711
13820
|
return removeWhitespaces(n);
|
|
13712
13821
|
}
|
|
13822
|
+
function decodeEntity(e) {
|
|
13823
|
+
let t = `<html lang="en"><body>${e}</body></html>`;
|
|
13824
|
+
return new globalThis.DOMParser().parseFromString(t, "text/html").body.innerText;
|
|
13825
|
+
}
|
|
13713
13826
|
//#endregion
|
|
13714
13827
|
//#region ../extension-markdown/src/MarkdownParser.ts
|
|
13715
13828
|
function maybeMerge(e, t) {
|
|
@@ -16038,6 +16151,17 @@ function treeToTokens(e, t, n) {
|
|
|
16038
16151
|
case "text":
|
|
16039
16152
|
l(o(u) ?? "", u);
|
|
16040
16153
|
break;
|
|
16154
|
+
case "entity_reference":
|
|
16155
|
+
{
|
|
16156
|
+
let e = o(u) ?? "", t = [
|
|
16157
|
+
n.row + u.startPosition?.row,
|
|
16158
|
+
n.row + u.endPosition?.row,
|
|
16159
|
+
0,
|
|
16160
|
+
0
|
|
16161
|
+
], r = new Token("entity", "entity", 0);
|
|
16162
|
+
r.map = t, r.content = e, s(r, "entity");
|
|
16163
|
+
}
|
|
16164
|
+
break;
|
|
16041
16165
|
case "latex_block":
|
|
16042
16166
|
{
|
|
16043
16167
|
let t = u.children.find((e) => e?.type === "latex_span_delimiter"), n = u.children.filter((e) => e?.type !== "latex_span_delimiter").map((e) => o(e)).join("");
|
|
@@ -16150,7 +16274,13 @@ function treeToTokens(e, t, n) {
|
|
|
16150
16274
|
t.map = e, t.meta = "noEscText", t.content = o(u) ?? "", s(t, "backslash_escape");
|
|
16151
16275
|
}
|
|
16152
16276
|
break;
|
|
16153
|
-
default:
|
|
16277
|
+
default:
|
|
16278
|
+
{
|
|
16279
|
+
console.debug(`Unhandled inline node type: ${u.type}`, u);
|
|
16280
|
+
let t = new Token("text", "", 0);
|
|
16281
|
+
t.map = e, t.meta = "noEscText", t.content = `Error: Unhandled inline node type: ${u.type} ${JSON.stringify(u)}`, s(t, "backslash_escape");
|
|
16282
|
+
}
|
|
16283
|
+
break;
|
|
16154
16284
|
}
|
|
16155
16285
|
}
|
|
16156
16286
|
}, l = (e, n = {
|
|
@@ -16423,15 +16553,12 @@ async function mdToPmConverterText(e, t, n) {
|
|
|
16423
16553
|
let r = new MarkdownParser(n, await sitterTokenizer(t.assetLoad), {
|
|
16424
16554
|
frontmatter: { custom: (e, n) => {
|
|
16425
16555
|
let r = e.stack[0];
|
|
16426
|
-
if (r?.type.name === "doc") {
|
|
16427
|
-
let e = n.content
|
|
16428
|
-
|
|
16429
|
-
|
|
16430
|
-
|
|
16431
|
-
|
|
16432
|
-
meta: n
|
|
16433
|
-
};
|
|
16434
|
-
}
|
|
16556
|
+
if (r?.type.name === "doc" && t.frontmatter) {
|
|
16557
|
+
let e = t.frontmatter.parse(n.content) || void 0;
|
|
16558
|
+
r.attrs = {
|
|
16559
|
+
...r.attrs,
|
|
16560
|
+
meta: e
|
|
16561
|
+
};
|
|
16435
16562
|
}
|
|
16436
16563
|
} },
|
|
16437
16564
|
blockquote: { block: "blockquote" },
|
|
@@ -16481,6 +16608,9 @@ async function mdToPmConverterText(e, t, n) {
|
|
|
16481
16608
|
};
|
|
16482
16609
|
}
|
|
16483
16610
|
},
|
|
16611
|
+
entity: { custom: (e, t, n, r) => {
|
|
16612
|
+
e.addText(decodeEntity(t.content));
|
|
16613
|
+
} },
|
|
16484
16614
|
hardbreak: { node: "br" },
|
|
16485
16615
|
em: { mark: "em" },
|
|
16486
16616
|
underline: { mark: "underline" },
|
|
@@ -16511,8 +16641,61 @@ async function mdToPmConverterText(e, t, n) {
|
|
|
16511
16641
|
return o.doc;
|
|
16512
16642
|
}
|
|
16513
16643
|
//#endregion
|
|
16514
|
-
//#region ../extension-markdown/src/
|
|
16515
|
-
var
|
|
16644
|
+
//#region ../extension-markdown/src/MarkdownContentMapper.ts
|
|
16645
|
+
var MarkdownContentMapper = class e {
|
|
16646
|
+
result;
|
|
16647
|
+
rawTextArr;
|
|
16648
|
+
constructor(e, t) {
|
|
16649
|
+
this.result = t, this.rawTextArr = [];
|
|
16650
|
+
for (let e of t.rawTextMap) e.nodeIdx >= 0 && this.rawTextArr.push({
|
|
16651
|
+
nodeIdx: e.nodeIdx,
|
|
16652
|
+
maxNodeIdx: e.nodeIdx,
|
|
16653
|
+
targetPos: e.targetPos,
|
|
16654
|
+
targetRow: e.targetRow,
|
|
16655
|
+
targetCol: e.targetCol
|
|
16656
|
+
});
|
|
16657
|
+
this.rawTextArr.sort((e, t) => e.nodeIdx - t.nodeIdx);
|
|
16658
|
+
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16659
|
+
let n = t + 1;
|
|
16660
|
+
n < this.rawTextArr.length ? this.rawTextArr[t].maxNodeIdx = this.rawTextArr[n].nodeIdx - 1 : this.rawTextArr[t].maxNodeIdx = e;
|
|
16661
|
+
}
|
|
16662
|
+
}
|
|
16663
|
+
getTextContent() {
|
|
16664
|
+
return this.result.content;
|
|
16665
|
+
}
|
|
16666
|
+
toRawTextPos(e) {
|
|
16667
|
+
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16668
|
+
let n = this.rawTextArr[t];
|
|
16669
|
+
if (e >= n.nodeIdx && e <= n.maxNodeIdx) return n.targetPos + e - n.nodeIdx;
|
|
16670
|
+
}
|
|
16671
|
+
return -1;
|
|
16672
|
+
}
|
|
16673
|
+
toRawTextLineCol(e) {
|
|
16674
|
+
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16675
|
+
let n = this.rawTextArr[t];
|
|
16676
|
+
if (e >= n.nodeIdx && e <= n.maxNodeIdx) return [n.targetRow, n.targetCol + e - n.nodeIdx];
|
|
16677
|
+
}
|
|
16678
|
+
return [0, 0];
|
|
16679
|
+
}
|
|
16680
|
+
fromLineChar(e, t) {
|
|
16681
|
+
for (let n = 0; n < this.rawTextArr.length; n++) {
|
|
16682
|
+
let r = this.rawTextArr[n], a = r.maxNodeIdx - r.nodeIdx + 1;
|
|
16683
|
+
if (r.targetRow === e) {
|
|
16684
|
+
if (t >= r.targetCol && t < r.targetCol + a) {
|
|
16685
|
+
let e = t - r.targetCol;
|
|
16686
|
+
return r.nodeIdx + e;
|
|
16687
|
+
}
|
|
16688
|
+
let e = this.rawTextArr[n + 1];
|
|
16689
|
+
if ((!e || e.targetRow > r.targetRow) && t >= r.targetCol + a) return r.maxNodeIdx;
|
|
16690
|
+
}
|
|
16691
|
+
}
|
|
16692
|
+
return -1;
|
|
16693
|
+
}
|
|
16694
|
+
static async create(t, n) {
|
|
16695
|
+
let r = await extPmToMdConverter(t.doc, n, t.schema, new EventTarget());
|
|
16696
|
+
return new e(t.doc.nodeSize, r);
|
|
16697
|
+
}
|
|
16698
|
+
}, addEmptyLines = (e, t) => {
|
|
16516
16699
|
let n = e.doc, r = e.tr, a = e.schema.nodes.br, o = e.schema.nodes.softbreak;
|
|
16517
16700
|
function s(e, t, n = 0, c = 0) {
|
|
16518
16701
|
let l = 0, u = !1;
|
|
@@ -16746,65 +16929,15 @@ function getDefaultsPreProcessFilters(e) {
|
|
|
16746
16929
|
];
|
|
16747
16930
|
}
|
|
16748
16931
|
//#endregion
|
|
16749
|
-
//#region ../extension-markdown/src/
|
|
16750
|
-
var
|
|
16751
|
-
result;
|
|
16752
|
-
rawTextArr;
|
|
16753
|
-
constructor(e, t) {
|
|
16754
|
-
this.result = t, this.rawTextArr = [];
|
|
16755
|
-
for (let e of t.rawTextMap) e.nodeIdx >= 0 && this.rawTextArr.push({
|
|
16756
|
-
nodeIdx: e.nodeIdx,
|
|
16757
|
-
maxNodeIdx: e.nodeIdx,
|
|
16758
|
-
targetPos: e.targetPos,
|
|
16759
|
-
targetRow: e.targetRow,
|
|
16760
|
-
targetCol: e.targetCol
|
|
16761
|
-
});
|
|
16762
|
-
this.rawTextArr.sort((e, t) => e.nodeIdx - t.nodeIdx);
|
|
16763
|
-
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16764
|
-
let n = t + 1;
|
|
16765
|
-
n < this.rawTextArr.length ? this.rawTextArr[t].maxNodeIdx = this.rawTextArr[n].nodeIdx - 1 : this.rawTextArr[t].maxNodeIdx = e;
|
|
16766
|
-
}
|
|
16767
|
-
}
|
|
16768
|
-
getTextContent() {
|
|
16769
|
-
return this.result.content;
|
|
16770
|
-
}
|
|
16771
|
-
toRawTextPos(e) {
|
|
16772
|
-
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16773
|
-
let n = this.rawTextArr[t];
|
|
16774
|
-
if (e >= n.nodeIdx && e <= n.maxNodeIdx) return n.targetPos + e - n.nodeIdx;
|
|
16775
|
-
}
|
|
16776
|
-
return -1;
|
|
16777
|
-
}
|
|
16778
|
-
toRawTextLineCol(e) {
|
|
16779
|
-
for (let t = 0; t < this.rawTextArr.length; t++) {
|
|
16780
|
-
let n = this.rawTextArr[t];
|
|
16781
|
-
if (e >= n.nodeIdx && e <= n.maxNodeIdx) return [n.targetRow, n.targetCol + e - n.nodeIdx];
|
|
16782
|
-
}
|
|
16783
|
-
return [0, 0];
|
|
16784
|
-
}
|
|
16785
|
-
fromLineChar(e, t) {
|
|
16786
|
-
for (let n = 0; n < this.rawTextArr.length; n++) {
|
|
16787
|
-
let r = this.rawTextArr[n], a = r.maxNodeIdx - r.nodeIdx + 1;
|
|
16788
|
-
if (r.targetRow === e) {
|
|
16789
|
-
if (t >= r.targetCol && t < r.targetCol + a) {
|
|
16790
|
-
let e = t - r.targetCol;
|
|
16791
|
-
return r.nodeIdx + e;
|
|
16792
|
-
}
|
|
16793
|
-
let e = this.rawTextArr[n + 1];
|
|
16794
|
-
if ((!e || e.targetRow > r.targetRow) && t >= r.targetCol + a) return r.maxNodeIdx;
|
|
16795
|
-
}
|
|
16796
|
-
}
|
|
16797
|
-
return -1;
|
|
16798
|
-
}
|
|
16799
|
-
static async create(t, n) {
|
|
16800
|
-
let r = await extPmToMdConverter(t.doc, n, t.schema, new EventTarget());
|
|
16801
|
-
return new e(t.doc.nodeSize, r);
|
|
16802
|
-
}
|
|
16803
|
-
}, MarkdownPluginState = class {
|
|
16932
|
+
//#region ../extension-markdown/src/createMarkdownPlugin.ts
|
|
16933
|
+
var MarkdownPluginState = class {
|
|
16804
16934
|
editor;
|
|
16805
16935
|
extensionMarkdown;
|
|
16806
|
-
capturing = !
|
|
16936
|
+
capturing = !0;
|
|
16807
16937
|
workspace;
|
|
16938
|
+
hooks = {};
|
|
16939
|
+
urlFromRewriter;
|
|
16940
|
+
urlToRewriter;
|
|
16808
16941
|
constructor(e, t) {
|
|
16809
16942
|
this.editor = e, this.extensionMarkdown = t, this.workspace = e.ci.resolve("workspace"), this.performSnapshot = debounce(this.performSnapshot.bind(this), 800);
|
|
16810
16943
|
}
|
|
@@ -16815,7 +16948,10 @@ var MarkdownContentMapper = class e {
|
|
|
16815
16948
|
version: e,
|
|
16816
16949
|
state: this.editor.state,
|
|
16817
16950
|
materialized: void 0
|
|
16818
|
-
}, r = async () => (n.materialized ||= await MarkdownContentMapper.create(n.state,
|
|
16951
|
+
}, r = async () => (n.materialized ||= await MarkdownContentMapper.create(n.state, {
|
|
16952
|
+
...this.extensionMarkdown.config,
|
|
16953
|
+
sourceMap: !0
|
|
16954
|
+
}), n.materialized);
|
|
16819
16955
|
this.workspace.getFile(t) ? this.workspace.modifyFile({
|
|
16820
16956
|
uri: t,
|
|
16821
16957
|
lang: "markdown",
|
|
@@ -16828,15 +16964,38 @@ var MarkdownContentMapper = class e {
|
|
|
16828
16964
|
getContentMapper: r
|
|
16829
16965
|
});
|
|
16830
16966
|
}
|
|
16831
|
-
|
|
16967
|
+
handleCommands(e, t) {
|
|
16968
|
+
if (!e) return !1;
|
|
16969
|
+
if (e.setMarkdownHooks) {
|
|
16970
|
+
let { type: t, hooks: n } = e.setMarkdownHooks;
|
|
16971
|
+
return this.hooks[t] = n, !0;
|
|
16972
|
+
}
|
|
16973
|
+
if (e.setFromMarkdownUrlRewriter) {
|
|
16974
|
+
let { urlRewriter: t } = e.setFromMarkdownUrlRewriter;
|
|
16975
|
+
return this.urlFromRewriter = t, !0;
|
|
16976
|
+
}
|
|
16977
|
+
if (e.setToMarkdownUrlRewriter) {
|
|
16978
|
+
let { urlRewriter: t } = e.setToMarkdownUrlRewriter;
|
|
16979
|
+
return this.urlToRewriter = t, !0;
|
|
16980
|
+
}
|
|
16981
|
+
}
|
|
16982
|
+
}, MarkdownPluginKey = new PluginKey("markdown");
|
|
16832
16983
|
function createMarkdownPlugin(e, t) {
|
|
16833
16984
|
return new Plugin({
|
|
16985
|
+
key: MarkdownPluginKey,
|
|
16834
16986
|
state: {
|
|
16835
|
-
init() {
|
|
16836
|
-
|
|
16987
|
+
init(n, r) {
|
|
16988
|
+
let a = new MarkdownPluginState(t, e);
|
|
16989
|
+
return r.schema.topNodeType.name === "doc" ? a.hooks["pm2md.pre"] = getDefaultsPreProcessFilters({ getUrlRewriter: () => a.urlToRewriter }) : a.hooks["pm2md.pre"] = [], a.hooks["md2pm.post"] = [rewriteUrls(() => a.urlFromRewriter)], a;
|
|
16837
16990
|
},
|
|
16838
16991
|
apply(e, t, n, r) {
|
|
16839
|
-
|
|
16992
|
+
let a = e.getMeta("cloned");
|
|
16993
|
+
if (a) {
|
|
16994
|
+
let e = MarkdownPluginKey.getState(a);
|
|
16995
|
+
if (e) return e;
|
|
16996
|
+
}
|
|
16997
|
+
let o = e.getMeta(MarkdownPluginKey);
|
|
16998
|
+
return t.handleCommands(o, e) || e.docChanged && t.capturing && t.performSnapshot(), t;
|
|
16840
16999
|
}
|
|
16841
17000
|
},
|
|
16842
17001
|
view() {
|
|
@@ -16852,35 +17011,38 @@ function createMarkdownPlugin(e, t) {
|
|
|
16852
17011
|
var ExtensionMarkdown = class extends Extension {
|
|
16853
17012
|
config;
|
|
16854
17013
|
name = "markdown";
|
|
16855
|
-
hooks = {};
|
|
16856
|
-
urlFromRewriter;
|
|
16857
|
-
urlToRewriter;
|
|
16858
17014
|
constructor(e = {}) {
|
|
16859
17015
|
super(e), this.config = e;
|
|
16860
17016
|
}
|
|
16861
17017
|
getConverters(e, t) {
|
|
16862
17018
|
let n = { "text/x-markdown": {
|
|
16863
|
-
fromDoc: (n) =>
|
|
16864
|
-
|
|
16865
|
-
|
|
16866
|
-
|
|
16867
|
-
|
|
16868
|
-
|
|
16869
|
-
|
|
16870
|
-
|
|
16871
|
-
|
|
16872
|
-
|
|
16873
|
-
|
|
16874
|
-
|
|
16875
|
-
|
|
16876
|
-
|
|
17019
|
+
fromDoc: (n) => {
|
|
17020
|
+
let r = MarkdownPluginKey.getState(e.state);
|
|
17021
|
+
return pmToMdConverter(n, {
|
|
17022
|
+
assetLoad: this.editor.config.assetLoad,
|
|
17023
|
+
...this.config,
|
|
17024
|
+
urlRewriter: r.urlToRewriter,
|
|
17025
|
+
hooks: r.hooks["pm2md.pre"],
|
|
17026
|
+
frontmatter: e.ci.resolve("frontmatter")
|
|
17027
|
+
}, t, e);
|
|
17028
|
+
},
|
|
17029
|
+
toDoc: (n) => {
|
|
17030
|
+
let r = MarkdownPluginKey.getState(e.state);
|
|
17031
|
+
return mdToPmConverter(n, {
|
|
17032
|
+
assetLoad: this.editor.config.assetLoad,
|
|
17033
|
+
...this.config,
|
|
17034
|
+
urlRewriter: r.urlFromRewriter,
|
|
17035
|
+
hooks: r.hooks["md2pm.post"],
|
|
17036
|
+
frontmatter: e.ci.resolve("frontmatter")
|
|
17037
|
+
}, t);
|
|
17038
|
+
}
|
|
16877
17039
|
} };
|
|
16878
17040
|
return n["text/markdown"] = n["text/x-markdown"], n;
|
|
16879
17041
|
}
|
|
16880
17042
|
toMarkdown(e) {
|
|
16881
17043
|
return extPmToMdConverter(e, {
|
|
16882
17044
|
sourceMap: !0,
|
|
16883
|
-
|
|
17045
|
+
frontmatter: this.editor.ci.resolve("frontmatter")
|
|
16884
17046
|
}, this.editor.schema, this.editor);
|
|
16885
17047
|
}
|
|
16886
17048
|
async fromMarkdown(e) {
|
|
@@ -16894,15 +17056,18 @@ var ExtensionMarkdown = class extends Extension {
|
|
|
16894
17056
|
}
|
|
16895
17057
|
return new Slice(t, 0, 0);
|
|
16896
17058
|
}
|
|
16897
|
-
created() {
|
|
16898
|
-
this.editor.schema.topNodeType.name === "doc" ? this.hooks["pm2md.pre"] = getDefaultsPreProcessFilters({ getUrlRewriter: () => this.urlToRewriter }) : this.hooks["pm2md.pre"] = [], this.hooks["md2pm.post"] = [rewriteUrls(() => this.urlFromRewriter)];
|
|
16899
|
-
}
|
|
16900
17059
|
getCommandFactories() {
|
|
16901
17060
|
return {
|
|
16902
|
-
getMarkdownHooks: (e, t) => () =>
|
|
16903
|
-
|
|
16904
|
-
|
|
16905
|
-
|
|
17061
|
+
getMarkdownHooks: (e, t) => (n, r) => {
|
|
17062
|
+
let a = MarkdownPluginKey.getState(n);
|
|
17063
|
+
return t(a ? a.hooks[e] : []), !0;
|
|
17064
|
+
},
|
|
17065
|
+
setMarkdownHooks: (e, t) => (n, r) => (r && r(n.tr.setMeta(MarkdownPluginKey, { setMarkdownHooks: {
|
|
17066
|
+
type: e,
|
|
17067
|
+
hooks: t
|
|
17068
|
+
} })), !0),
|
|
17069
|
+
setFromMarkdownUrlRewriter: (e) => (t, n) => (n && n(t.tr.setMeta(MarkdownPluginKey, { setFromMarkdownUrlRewriter: { urlRewriter: e } })), !0),
|
|
17070
|
+
setToMarkdownUrlRewriter: (e) => (t, n) => (n && n(t.tr.setMeta(MarkdownPluginKey, { setToMarkdownUrlRewriter: { urlRewriter: e } })), !0)
|
|
16906
17071
|
};
|
|
16907
17072
|
}
|
|
16908
17073
|
getProseMirrorPlugins() {
|