@clevertask/scribe 0.1.13 → 0.1.15
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/README.md +52 -0
- package/dist/{BarMenu-O2IVhHXx.js → BarMenu-x4sf3ECS.js} +1 -1
- package/dist/components/Menu/BarMenu.js +1 -1
- package/dist/components/Menu/BubbleMenu.js +2 -2
- package/dist/components/Menu/CalloutBubbleMenu.js +2 -2
- package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts +13 -0
- package/dist/components/Menu/ExternalLinkDisplayOptions.d.ts.map +1 -0
- package/dist/components/Menu/ExternalLinkDisplayOptions.js +90 -0
- package/dist/components/Menu/LinkBubbleMenu.d.ts.map +1 -1
- package/dist/components/Menu/LinkBubbleMenu.js +161 -61
- package/dist/components/Menu/LinkEditor.d.ts +9 -0
- package/dist/components/Menu/LinkEditor.d.ts.map +1 -1
- package/dist/components/Menu/LinkEditor.js +117 -64
- package/dist/components/Menu/Mobile/ListOptionBar.js +1 -1
- package/dist/components/Menu/TableBubbleMenu.js +2 -2
- package/dist/components/Menu/contextualMenuOwner.d.ts +1 -1
- package/dist/components/Menu/contextualMenuOwner.d.ts.map +1 -1
- package/dist/components/Menu/contextualMenuOwner.js +9 -6
- package/dist/components/Menu/linkBubbleMenuPlugin.d.ts +24 -1
- package/dist/components/Menu/linkBubbleMenuPlugin.d.ts.map +1 -1
- package/dist/components/Menu/linkBubbleMenuPlugin.js +43 -6
- package/dist/components/Scribe/extension/callout.js +1 -1
- package/dist/components/Scribe/extension/emoji/suggest.js +1 -1
- package/dist/components/Scribe/extension/extension-link.js +1 -1
- package/dist/components/Scribe/extension/extension-markdown-paste.js +2 -2
- package/dist/components/Scribe/extension/extension-selectedText.js +1 -1
- package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts +18 -0
- package/dist/components/Scribe/extension/external-link-preview/attributes.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/attributes.js +82 -0
- package/dist/components/Scribe/extension/external-link-preview/commands.d.ts +53 -0
- package/dist/components/Scribe/extension/external-link-preview/commands.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/commands.js +134 -0
- package/dist/components/Scribe/extension/external-link-preview/index.d.ts +13 -0
- package/dist/components/Scribe/extension/external-link-preview/index.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/index.js +140 -0
- package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts +3 -0
- package/dist/components/Scribe/extension/external-link-preview/node-view.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/node-view.js +97 -0
- package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts +7 -0
- package/dist/components/Scribe/extension/external-link-preview/normalization.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/normalization.js +21 -0
- package/dist/components/Scribe/extension/external-link-preview/paste.d.ts +9 -0
- package/dist/components/Scribe/extension/external-link-preview/paste.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/paste.js +54 -0
- package/dist/components/Scribe/extension/external-link-preview/policy.d.ts +7 -0
- package/dist/components/Scribe/extension/external-link-preview/policy.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/policy.js +38 -0
- package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts +7 -0
- package/dist/components/Scribe/extension/external-link-preview/render-html.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/render-html.js +62 -0
- package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts +23 -0
- package/dist/components/Scribe/extension/external-link-preview/resolver.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/resolver.js +118 -0
- package/dist/components/Scribe/extension/external-link-preview/serialization.d.ts +10 -0
- package/dist/components/Scribe/extension/external-link-preview/serialization.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/serialization.js +69 -0
- package/dist/components/Scribe/extension/external-link-preview/types.d.ts +58 -0
- package/dist/components/Scribe/extension/external-link-preview/types.d.ts.map +1 -0
- package/dist/components/Scribe/extension/external-link-preview/types.js +4 -0
- package/dist/components/Scribe/extension/index.d.ts +1 -1
- package/dist/components/Scribe/extension/index.d.ts.map +1 -1
- package/dist/components/Scribe/extension/index.js +1 -1
- package/dist/components/Scribe/extension/resizable-table.js +1 -1
- package/dist/components/Scribe/extension/slashCommand/index.js +1 -1
- package/dist/components/Scribe/extension/slashCommand/renderItems.js +1 -1
- package/dist/components/Scribe/extension/tableOfContents.js +1 -1
- package/dist/components/Scribe/index.d.ts +14 -0
- package/dist/components/Scribe/index.d.ts.map +1 -1
- package/dist/components/Scribe/index.js +5 -5
- package/dist/{dist-BoYfa2nz.js → dist-DDjaA1Pn.js} +309 -150
- package/dist/{dist-W9E-K577.js → dist-tNcpTcFT.js} +738 -637
- package/dist/{extension-D5WIAWhc.js → extension-dRUfQQo6.js} +1940 -1938
- package/dist/{extension-link-D8Zi7OSa.js → extension-link-RYtPpHwt.js} +28 -27
- package/dist/{html-to-markdown-C920nQtn.js → html-to-markdown-nbQ6qHyO.js} +173 -162
- package/dist/main.css +148 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +12 -9
- package/dist/{markdown-to-html-CW0Nb9Ye.js → markdown-to-html-B-KKCZRs.js} +115 -111
- package/dist/{menus-B1Zz0GjH.js → menus-U2HdvQnu.js} +11 -11
- package/dist/{resizable-table-Bf-fb9iv.js → resizable-table-m0AzovsZ.js} +14 -14
- package/dist/{slashCommand-47omO4ob.js → slashCommand-CtvgnL0Z.js} +1 -1
- package/dist/utils/create-scribe-editor.d.ts +4 -1
- package/dist/utils/create-scribe-editor.d.ts.map +1 -1
- package/dist/utils/html-to-markdown.d.ts.map +1 -1
- package/dist/utils/html-to-markdown.js +1 -1
- package/dist/utils/index.js +7 -7
- package/dist/utils/markdown-to-html.d.ts.map +1 -1
- package/dist/utils/markdown-to-html.js +1 -1
- package/package.json +1 -1
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
import { t as e } from "./purify.es-BES4pJF7.js";
|
|
2
|
+
import { normalizeExternalLinkPreviewElement as t, normalizeExternalLinkPreviewsInTree as n } from "./components/Scribe/extension/external-link-preview/serialization.js";
|
|
2
3
|
//#region node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.js
|
|
3
|
-
function
|
|
4
|
+
function r(e) {
|
|
4
5
|
for (var t = 1; t < arguments.length; t++) {
|
|
5
6
|
var n = arguments[t];
|
|
6
7
|
for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);
|
|
7
8
|
}
|
|
8
9
|
return e;
|
|
9
10
|
}
|
|
10
|
-
function
|
|
11
|
+
function i(e, t) {
|
|
11
12
|
return Array(t + 1).join(e);
|
|
12
13
|
}
|
|
13
|
-
function
|
|
14
|
+
function a(e) {
|
|
14
15
|
return e.replace(/^\n*/, "");
|
|
15
16
|
}
|
|
16
|
-
function
|
|
17
|
+
function o(e) {
|
|
17
18
|
for (var t = e.length; t > 0 && e[t - 1] === "\n";) t--;
|
|
18
19
|
return e.substring(0, t);
|
|
19
20
|
}
|
|
20
|
-
function a(e) {
|
|
21
|
-
return i(r(e));
|
|
22
|
-
}
|
|
23
|
-
var o = /* @__PURE__ */ "ADDRESS.ARTICLE.ASIDE.AUDIO.BLOCKQUOTE.BODY.CANVAS.CENTER.DD.DIR.DIV.DL.DT.FIELDSET.FIGCAPTION.FIGURE.FOOTER.FORM.FRAMESET.H1.H2.H3.H4.H5.H6.HEADER.HGROUP.HR.HTML.ISINDEX.LI.MAIN.MENU.NAV.NOFRAMES.NOSCRIPT.OL.OUTPUT.P.PRE.SECTION.TABLE.TBODY.TD.TFOOT.TH.THEAD.TR.UL".split(".");
|
|
24
21
|
function s(e) {
|
|
25
|
-
return
|
|
22
|
+
return o(a(e));
|
|
26
23
|
}
|
|
27
|
-
var c =
|
|
24
|
+
var c = /* @__PURE__ */ "ADDRESS.ARTICLE.ASIDE.AUDIO.BLOCKQUOTE.BODY.CANVAS.CENTER.DD.DIR.DIV.DL.DT.FIELDSET.FIGCAPTION.FIGURE.FOOTER.FORM.FRAMESET.H1.H2.H3.H4.H5.H6.HEADER.HGROUP.HR.HTML.ISINDEX.LI.MAIN.MENU.NAV.NOFRAMES.NOSCRIPT.OL.OUTPUT.P.PRE.SECTION.TABLE.TBODY.TD.TFOOT.TH.THEAD.TR.UL".split(".");
|
|
25
|
+
function l(e) {
|
|
26
|
+
return g(e, c);
|
|
27
|
+
}
|
|
28
|
+
var u = [
|
|
28
29
|
"AREA",
|
|
29
30
|
"BASE",
|
|
30
31
|
"BR",
|
|
@@ -42,13 +43,13 @@ var c = [
|
|
|
42
43
|
"TRACK",
|
|
43
44
|
"WBR"
|
|
44
45
|
];
|
|
45
|
-
function
|
|
46
|
-
return
|
|
46
|
+
function d(e) {
|
|
47
|
+
return g(e, u);
|
|
47
48
|
}
|
|
48
|
-
function
|
|
49
|
-
return
|
|
49
|
+
function f(e) {
|
|
50
|
+
return _(e, u);
|
|
50
51
|
}
|
|
51
|
-
var
|
|
52
|
+
var p = [
|
|
52
53
|
"A",
|
|
53
54
|
"TABLE",
|
|
54
55
|
"THEAD",
|
|
@@ -61,21 +62,21 @@ var d = [
|
|
|
61
62
|
"AUDIO",
|
|
62
63
|
"VIDEO"
|
|
63
64
|
];
|
|
64
|
-
function
|
|
65
|
-
return
|
|
65
|
+
function m(e) {
|
|
66
|
+
return g(e, p);
|
|
66
67
|
}
|
|
67
|
-
function
|
|
68
|
-
return
|
|
68
|
+
function h(e) {
|
|
69
|
+
return _(e, p);
|
|
69
70
|
}
|
|
70
|
-
function
|
|
71
|
+
function g(e, t) {
|
|
71
72
|
return t.indexOf(e.nodeName) >= 0;
|
|
72
73
|
}
|
|
73
|
-
function
|
|
74
|
+
function _(e, t) {
|
|
74
75
|
return e.getElementsByTagName && t.some(function(t) {
|
|
75
76
|
return e.getElementsByTagName(t).length;
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
|
-
var
|
|
79
|
+
var v = [
|
|
79
80
|
[/\\/g, "\\\\"],
|
|
80
81
|
[/\*/g, "\\*"],
|
|
81
82
|
[/^-/g, "\\-"],
|
|
@@ -90,23 +91,23 @@ var g = [
|
|
|
90
91
|
[/_/g, "\\_"],
|
|
91
92
|
[/^(\d+)\. /g, "$1\\. "]
|
|
92
93
|
];
|
|
93
|
-
function
|
|
94
|
-
return
|
|
94
|
+
function y(e) {
|
|
95
|
+
return v.reduce(function(e, t) {
|
|
95
96
|
return e.replace(t[0], t[1]);
|
|
96
97
|
}, e);
|
|
97
98
|
}
|
|
98
|
-
var
|
|
99
|
-
|
|
99
|
+
var b = {};
|
|
100
|
+
b.paragraph = {
|
|
100
101
|
filter: "p",
|
|
101
102
|
replacement: function(e) {
|
|
102
103
|
return "\n\n" + e + "\n\n";
|
|
103
104
|
}
|
|
104
|
-
},
|
|
105
|
+
}, b.lineBreak = {
|
|
105
106
|
filter: "br",
|
|
106
107
|
replacement: function(e, t, n) {
|
|
107
108
|
return n.br + "\n";
|
|
108
109
|
}
|
|
109
|
-
},
|
|
110
|
+
}, b.heading = {
|
|
110
111
|
filter: [
|
|
111
112
|
"h1",
|
|
112
113
|
"h2",
|
|
@@ -115,72 +116,72 @@ v.paragraph = {
|
|
|
115
116
|
"h5",
|
|
116
117
|
"h6"
|
|
117
118
|
],
|
|
118
|
-
replacement: function(e, t,
|
|
119
|
-
var
|
|
120
|
-
if (
|
|
121
|
-
var a =
|
|
119
|
+
replacement: function(e, t, n) {
|
|
120
|
+
var r = Number(t.nodeName.charAt(1));
|
|
121
|
+
if (n.headingStyle === "setext" && r < 3) {
|
|
122
|
+
var a = i(r === 1 ? "=" : "-", e.length);
|
|
122
123
|
return "\n\n" + e + "\n" + a + "\n\n";
|
|
123
124
|
}
|
|
124
|
-
return "\n\n" +
|
|
125
|
+
return "\n\n" + i("#", r) + " " + e + "\n\n";
|
|
125
126
|
}
|
|
126
|
-
},
|
|
127
|
+
}, b.blockquote = {
|
|
127
128
|
filter: "blockquote",
|
|
128
129
|
replacement: function(e) {
|
|
129
|
-
return e =
|
|
130
|
+
return e = s(e).replace(/^/gm, "> "), "\n\n" + e + "\n\n";
|
|
130
131
|
}
|
|
131
|
-
},
|
|
132
|
+
}, b.list = {
|
|
132
133
|
filter: ["ul", "ol"],
|
|
133
134
|
replacement: function(e, t) {
|
|
134
135
|
var n = t.parentNode;
|
|
135
136
|
return n.nodeName === "LI" && n.lastElementChild === t ? "\n" + e : "\n\n" + e + "\n\n";
|
|
136
137
|
}
|
|
137
|
-
},
|
|
138
|
+
}, b.listItem = {
|
|
138
139
|
filter: "li",
|
|
139
140
|
replacement: function(e, t, n) {
|
|
140
141
|
var r = n.bulletListMarker + " ", i = t.parentNode;
|
|
141
142
|
if (i.nodeName === "OL") {
|
|
142
|
-
var
|
|
143
|
-
r = (
|
|
143
|
+
var a = i.getAttribute("start"), o = Array.prototype.indexOf.call(i.children, t);
|
|
144
|
+
r = (a ? Number(a) + o : o + 1) + ". ";
|
|
144
145
|
}
|
|
145
146
|
var c = /\n$/.test(e);
|
|
146
|
-
return e =
|
|
147
|
+
return e = s(e) + (c ? "\n" : ""), e = e.replace(/\n/gm, "\n" + " ".repeat(r.length)), r + e + (t.nextSibling ? "\n" : "");
|
|
147
148
|
}
|
|
148
|
-
},
|
|
149
|
+
}, b.indentedCodeBlock = {
|
|
149
150
|
filter: function(e, t) {
|
|
150
151
|
return t.codeBlockStyle === "indented" && e.nodeName === "PRE" && e.firstChild && e.firstChild.nodeName === "CODE";
|
|
151
152
|
},
|
|
152
153
|
replacement: function(e, t, n) {
|
|
153
154
|
return "\n\n " + t.firstChild.textContent.replace(/\n/g, "\n ") + "\n\n";
|
|
154
155
|
}
|
|
155
|
-
},
|
|
156
|
+
}, b.fencedCodeBlock = {
|
|
156
157
|
filter: function(e, t) {
|
|
157
158
|
return t.codeBlockStyle === "fenced" && e.nodeName === "PRE" && e.firstChild && e.firstChild.nodeName === "CODE";
|
|
158
159
|
},
|
|
159
|
-
replacement: function(e, t,
|
|
160
|
-
for (var
|
|
161
|
-
var u =
|
|
162
|
-
return "\n\n" + u +
|
|
160
|
+
replacement: function(e, t, n) {
|
|
161
|
+
for (var r = ((t.firstChild.getAttribute("class") || "").match(/language-(\S+)/) || [null, ""])[1], a = t.firstChild.textContent, o = n.fence.charAt(0), s = 3, c = RegExp("^" + o + "{3,}", "gm"), l; l = c.exec(a);) l[0].length >= s && (s = l[0].length + 1);
|
|
162
|
+
var u = i(o, s);
|
|
163
|
+
return "\n\n" + u + r + "\n" + a.replace(/\n$/, "") + "\n" + u + "\n\n";
|
|
163
164
|
}
|
|
164
|
-
},
|
|
165
|
+
}, b.horizontalRule = {
|
|
165
166
|
filter: "hr",
|
|
166
167
|
replacement: function(e, t, n) {
|
|
167
168
|
return "\n\n" + n.hr + "\n\n";
|
|
168
169
|
}
|
|
169
|
-
},
|
|
170
|
+
}, b.inlineLink = {
|
|
170
171
|
filter: function(e, t) {
|
|
171
172
|
return t.linkStyle === "inlined" && e.nodeName === "A" && e.getAttribute("href");
|
|
172
173
|
},
|
|
173
174
|
replacement: function(e, t) {
|
|
174
|
-
var n =
|
|
175
|
+
var n = S(t.getAttribute("href")), r = C(x(t.getAttribute("title"))), i = r ? " \"" + r + "\"" : "";
|
|
175
176
|
return "[" + e + "](" + n + i + ")";
|
|
176
177
|
}
|
|
177
|
-
},
|
|
178
|
+
}, b.referenceLink = {
|
|
178
179
|
filter: function(e, t) {
|
|
179
180
|
return t.linkStyle === "referenced" && e.nodeName === "A" && e.getAttribute("href");
|
|
180
181
|
},
|
|
181
182
|
replacement: function(e, t, n) {
|
|
182
|
-
var r =
|
|
183
|
-
i &&= " \"" +
|
|
183
|
+
var r = S(t.getAttribute("href")), i = x(t.getAttribute("title"));
|
|
184
|
+
i &&= " \"" + C(i) + "\"";
|
|
184
185
|
var a, o;
|
|
185
186
|
switch (n.linkReferenceStyle) {
|
|
186
187
|
case "collapsed":
|
|
@@ -200,17 +201,17 @@ v.paragraph = {
|
|
|
200
201
|
var t = "";
|
|
201
202
|
return this.references.length && (t = "\n\n" + this.references.join("\n") + "\n\n", this.references = []), t;
|
|
202
203
|
}
|
|
203
|
-
},
|
|
204
|
+
}, b.emphasis = {
|
|
204
205
|
filter: ["em", "i"],
|
|
205
206
|
replacement: function(e, t, n) {
|
|
206
207
|
return e.trim() ? n.emDelimiter + e + n.emDelimiter : "";
|
|
207
208
|
}
|
|
208
|
-
},
|
|
209
|
+
}, b.strong = {
|
|
209
210
|
filter: ["strong", "b"],
|
|
210
211
|
replacement: function(e, t, n) {
|
|
211
212
|
return e.trim() ? n.strongDelimiter + e + n.strongDelimiter : "";
|
|
212
213
|
}
|
|
213
|
-
},
|
|
214
|
+
}, b.code = {
|
|
214
215
|
filter: function(e) {
|
|
215
216
|
var t = e.previousSibling || e.nextSibling, n = e.parentNode.nodeName === "PRE" && !t;
|
|
216
217
|
return e.nodeName === "CODE" && !n;
|
|
@@ -221,27 +222,27 @@ v.paragraph = {
|
|
|
221
222
|
for (var t = /^`|^ .*?[^ ].* $|`$/.test(e) ? " " : "", n = "`", r = e.match(/`+/gm) || []; r.indexOf(n) !== -1;) n += "`";
|
|
222
223
|
return n + t + e + t + n;
|
|
223
224
|
}
|
|
224
|
-
},
|
|
225
|
+
}, b.image = {
|
|
225
226
|
filter: "img",
|
|
226
227
|
replacement: function(e, t) {
|
|
227
|
-
var n =
|
|
228
|
+
var n = y(x(t.getAttribute("alt"))), r = S(t.getAttribute("src") || ""), i = x(t.getAttribute("title")), a = i ? " \"" + C(i) + "\"" : "";
|
|
228
229
|
return r ? "" : "";
|
|
229
230
|
}
|
|
230
231
|
};
|
|
231
|
-
function
|
|
232
|
+
function x(e) {
|
|
232
233
|
return e ? e.replace(/(\n+\s*)+/g, "\n") : "";
|
|
233
234
|
}
|
|
234
|
-
function
|
|
235
|
+
function S(e) {
|
|
235
236
|
var t = e.replace(/([<>()])/g, "\\$1");
|
|
236
237
|
return t.indexOf(" ") >= 0 ? "<" + t + ">" : t;
|
|
237
238
|
}
|
|
238
|
-
function
|
|
239
|
+
function C(e) {
|
|
239
240
|
return e.replace(/"/g, "\\\"");
|
|
240
241
|
}
|
|
241
|
-
function
|
|
242
|
+
function w(e) {
|
|
242
243
|
for (var t in this.options = e, this._keep = [], this._remove = [], this.blankRule = { replacement: e.blankReplacement }, this.keepReplacement = e.keepReplacement, this.defaultRule = { replacement: e.defaultReplacement }, this.array = [], e.rules) this.array.push(e.rules[t]);
|
|
243
244
|
}
|
|
244
|
-
|
|
245
|
+
w.prototype = {
|
|
245
246
|
add: function(e, t) {
|
|
246
247
|
this.array.unshift(t);
|
|
247
248
|
},
|
|
@@ -262,13 +263,13 @@ S.prototype = {
|
|
|
262
263
|
forNode: function(e) {
|
|
263
264
|
if (e.isBlank) return this.blankRule;
|
|
264
265
|
var t;
|
|
265
|
-
return (t =
|
|
266
|
+
return (t = T(this.array, e, this.options)) || (t = T(this._keep, e, this.options)) || (t = T(this._remove, e, this.options)) ? t : this.defaultRule;
|
|
266
267
|
},
|
|
267
268
|
forEach: function(e) {
|
|
268
269
|
for (var t = 0; t < this.array.length; t++) e(this.array[t], t);
|
|
269
270
|
}
|
|
270
271
|
};
|
|
271
|
-
function
|
|
272
|
+
function T(e, t, n) {
|
|
272
273
|
for (var r = 0; r < e.length; r++) {
|
|
273
274
|
var i = e[r];
|
|
274
275
|
if (ee(i, t, n)) return i;
|
|
@@ -284,48 +285,48 @@ function ee(e, t, n) {
|
|
|
284
285
|
if (r.call(e, t, n)) return !0;
|
|
285
286
|
} else throw TypeError("`filter` needs to be a string, array, or function");
|
|
286
287
|
}
|
|
287
|
-
function
|
|
288
|
+
function E(e) {
|
|
288
289
|
var t = e.element, n = e.isBlock, r = e.isVoid, i = e.isPre || function(e) {
|
|
289
290
|
return e.nodeName === "PRE";
|
|
290
291
|
};
|
|
291
292
|
if (!(!t.firstChild || i(t))) {
|
|
292
|
-
for (var a = null, o = !1, s = null, c =
|
|
293
|
+
for (var a = null, o = !1, s = null, c = O(s, t, i); c !== t;) {
|
|
293
294
|
if (c.nodeType === 3 || c.nodeType === 4) {
|
|
294
295
|
var l = c.data.replace(/[ \r\n\t]+/g, " ");
|
|
295
296
|
if ((!a || / $/.test(a.data)) && !o && l[0] === " " && (l = l.substr(1)), !l) {
|
|
296
|
-
c =
|
|
297
|
+
c = D(c);
|
|
297
298
|
continue;
|
|
298
299
|
}
|
|
299
300
|
c.data = l, a = c;
|
|
300
301
|
} else if (c.nodeType === 1) n(c) || c.nodeName === "BR" ? (a && (a.data = a.data.replace(/ $/, "")), a = null, o = !1) : r(c) || i(c) ? (a = null, o = !0) : a && (o = !1);
|
|
301
302
|
else {
|
|
302
|
-
c =
|
|
303
|
+
c = D(c);
|
|
303
304
|
continue;
|
|
304
305
|
}
|
|
305
|
-
var u =
|
|
306
|
+
var u = O(s, c, i);
|
|
306
307
|
s = c, c = u;
|
|
307
308
|
}
|
|
308
|
-
a && (a.data = a.data.replace(/ $/, ""), a.data ||
|
|
309
|
+
a && (a.data = a.data.replace(/ $/, ""), a.data || D(a));
|
|
309
310
|
}
|
|
310
311
|
}
|
|
311
|
-
function
|
|
312
|
+
function D(e) {
|
|
312
313
|
var t = e.nextSibling || e.parentNode;
|
|
313
314
|
return e.parentNode.removeChild(e), t;
|
|
314
315
|
}
|
|
315
|
-
function
|
|
316
|
+
function O(e, t, n) {
|
|
316
317
|
return e && e.parentNode === t || n(t) ? t.nextSibling || t.parentNode : t.firstChild || t.nextSibling || t.parentNode;
|
|
317
318
|
}
|
|
318
|
-
var
|
|
319
|
-
function
|
|
320
|
-
var e =
|
|
319
|
+
var k = typeof window < "u" ? window : {};
|
|
320
|
+
function A() {
|
|
321
|
+
var e = k.DOMParser, t = !1;
|
|
321
322
|
try {
|
|
322
323
|
new e().parseFromString("", "text/html") && (t = !0);
|
|
323
324
|
} catch {}
|
|
324
325
|
return t;
|
|
325
326
|
}
|
|
326
|
-
function
|
|
327
|
+
function te() {
|
|
327
328
|
var e = function() {};
|
|
328
|
-
return
|
|
329
|
+
return ne() ? e.prototype.parseFromString = function(e) {
|
|
329
330
|
var t = new window.ActiveXObject("htmlfile");
|
|
330
331
|
return t.designMode = "on", t.open(), t.write(e), t.close(), t;
|
|
331
332
|
} : e.prototype.parseFromString = function(e) {
|
|
@@ -333,50 +334,50 @@ function k() {
|
|
|
333
334
|
return t.open(), t.write(e), t.close(), t;
|
|
334
335
|
}, e;
|
|
335
336
|
}
|
|
336
|
-
function
|
|
337
|
+
function ne() {
|
|
337
338
|
var e = !1;
|
|
338
339
|
try {
|
|
339
340
|
document.implementation.createHTMLDocument("").open();
|
|
340
341
|
} catch {
|
|
341
|
-
|
|
342
|
+
k.ActiveXObject && (e = !0);
|
|
342
343
|
}
|
|
343
344
|
return e;
|
|
344
345
|
}
|
|
345
|
-
var
|
|
346
|
-
function
|
|
347
|
-
var n = typeof e == "string" ?
|
|
348
|
-
return
|
|
346
|
+
var re = A() ? k.DOMParser : te();
|
|
347
|
+
function ie(e, t) {
|
|
348
|
+
var n = typeof e == "string" ? ae().parseFromString("<x-turndown id=\"turndown-root\">" + e + "</x-turndown>", "text/html").getElementById("turndown-root") : e.cloneNode(!0);
|
|
349
|
+
return E({
|
|
349
350
|
element: n,
|
|
350
|
-
isBlock:
|
|
351
|
-
isVoid:
|
|
352
|
-
isPre: t.preformattedCode ?
|
|
351
|
+
isBlock: l,
|
|
352
|
+
isVoid: d,
|
|
353
|
+
isPre: t.preformattedCode ? M : null
|
|
353
354
|
}), n;
|
|
354
355
|
}
|
|
355
356
|
var j;
|
|
356
|
-
function
|
|
357
|
-
return j ||= new
|
|
357
|
+
function ae() {
|
|
358
|
+
return j ||= new re(), j;
|
|
358
359
|
}
|
|
359
|
-
function
|
|
360
|
+
function M(e) {
|
|
360
361
|
return e.nodeName === "PRE" || e.nodeName === "CODE";
|
|
361
362
|
}
|
|
362
|
-
function
|
|
363
|
-
return e.isBlock =
|
|
363
|
+
function N(e, t) {
|
|
364
|
+
return e.isBlock = l(e), e.isCode = e.nodeName === "CODE" || e.parentNode.isCode, e.isBlank = P(e), e.flankingWhitespace = F(e, t), e;
|
|
364
365
|
}
|
|
365
|
-
function
|
|
366
|
-
return !
|
|
366
|
+
function P(e) {
|
|
367
|
+
return !d(e) && !m(e) && /^\s*$/i.test(e.textContent) && !f(e) && !h(e);
|
|
367
368
|
}
|
|
368
|
-
function
|
|
369
|
+
function F(e, t) {
|
|
369
370
|
if (e.isBlock || t.preformattedCode && e.isCode) return {
|
|
370
371
|
leading: "",
|
|
371
372
|
trailing: ""
|
|
372
373
|
};
|
|
373
|
-
var n =
|
|
374
|
-
return n.leadingAscii &&
|
|
374
|
+
var n = I(e.textContent);
|
|
375
|
+
return n.leadingAscii && L("left", e, t) && (n.leading = n.leadingNonAscii), n.trailingAscii && L("right", e, t) && (n.trailing = n.trailingNonAscii), {
|
|
375
376
|
leading: n.leading,
|
|
376
377
|
trailing: n.trailing
|
|
377
378
|
};
|
|
378
379
|
}
|
|
379
|
-
function
|
|
380
|
+
function I(e) {
|
|
380
381
|
var t = e.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/);
|
|
381
382
|
return {
|
|
382
383
|
leading: t[1],
|
|
@@ -387,15 +388,15 @@ function F(e) {
|
|
|
387
388
|
trailingAscii: t[6]
|
|
388
389
|
};
|
|
389
390
|
}
|
|
390
|
-
function
|
|
391
|
+
function L(e, t, n) {
|
|
391
392
|
var r, i, a;
|
|
392
|
-
return e === "left" ? (r = t.previousSibling, i = / $/) : (r = t.nextSibling, i = /^ /), r && (r.nodeType === 3 ? a = i.test(r.nodeValue) : n.preformattedCode && r.nodeName === "CODE" ? a = !1 : r.nodeType === 1 && !
|
|
393
|
+
return e === "left" ? (r = t.previousSibling, i = / $/) : (r = t.nextSibling, i = /^ /), r && (r.nodeType === 3 ? a = i.test(r.nodeValue) : n.preformattedCode && r.nodeName === "CODE" ? a = !1 : r.nodeType === 1 && !l(r) && (a = i.test(r.textContent))), a;
|
|
393
394
|
}
|
|
394
|
-
var
|
|
395
|
-
function
|
|
396
|
-
if (!(this instanceof
|
|
397
|
-
var
|
|
398
|
-
rules:
|
|
395
|
+
var R = Array.prototype.reduce;
|
|
396
|
+
function z(e) {
|
|
397
|
+
if (!(this instanceof z)) return new z(e);
|
|
398
|
+
var t = {
|
|
399
|
+
rules: b,
|
|
399
400
|
headingStyle: "setext",
|
|
400
401
|
hr: "* * *",
|
|
401
402
|
bulletListMarker: "*",
|
|
@@ -417,14 +418,14 @@ function R(e) {
|
|
|
417
418
|
return t.isBlock ? "\n\n" + e + "\n\n" : e;
|
|
418
419
|
}
|
|
419
420
|
};
|
|
420
|
-
this.options =
|
|
421
|
+
this.options = r({}, t, e), this.rules = new w(this.options);
|
|
421
422
|
}
|
|
422
|
-
|
|
423
|
+
z.prototype = {
|
|
423
424
|
turndown: function(e) {
|
|
424
|
-
if (!
|
|
425
|
+
if (!W(e)) throw TypeError(e + " is not a string, or an element/document/fragment node.");
|
|
425
426
|
if (e === "") return "";
|
|
426
|
-
var t =
|
|
427
|
-
return
|
|
427
|
+
var t = B.call(this, new ie(e, this.options));
|
|
428
|
+
return V.call(this, t);
|
|
428
429
|
},
|
|
429
430
|
use: function(e) {
|
|
430
431
|
if (Array.isArray(e)) for (var t = 0; t < e.length; t++) this.use(e[t]);
|
|
@@ -442,47 +443,47 @@ R.prototype = {
|
|
|
442
443
|
return this.rules.remove(e), this;
|
|
443
444
|
},
|
|
444
445
|
escape: function(e) {
|
|
445
|
-
return
|
|
446
|
+
return y(e);
|
|
446
447
|
}
|
|
447
448
|
};
|
|
448
|
-
function
|
|
449
|
+
function B(e) {
|
|
449
450
|
var t = this;
|
|
450
|
-
return
|
|
451
|
-
n = new
|
|
451
|
+
return R.call(e.childNodes, function(e, n) {
|
|
452
|
+
n = new N(n, t.options);
|
|
452
453
|
var r = "";
|
|
453
|
-
return n.nodeType === 3 ? r = n.isCode ? n.nodeValue : t.escape(n.nodeValue) : n.nodeType === 1 && (r =
|
|
454
|
+
return n.nodeType === 3 ? r = n.isCode ? n.nodeValue : t.escape(n.nodeValue) : n.nodeType === 1 && (r = H.call(t, n)), U(e, r);
|
|
454
455
|
}, "");
|
|
455
456
|
}
|
|
456
|
-
function
|
|
457
|
+
function V(e) {
|
|
457
458
|
var t = this;
|
|
458
459
|
return this.rules.forEach(function(n) {
|
|
459
|
-
typeof n.append == "function" && (e =
|
|
460
|
+
typeof n.append == "function" && (e = U(e, n.append(t.options)));
|
|
460
461
|
}), e.replace(/^[\t\r\n]+/, "").replace(/[\t\r\n\s]+$/, "");
|
|
461
462
|
}
|
|
462
|
-
function
|
|
463
|
-
var t = this.rules.forNode(e), n =
|
|
463
|
+
function H(e) {
|
|
464
|
+
var t = this.rules.forNode(e), n = B.call(this, e), r = e.flankingWhitespace;
|
|
464
465
|
return (r.leading || r.trailing) && (n = n.trim()), r.leading + t.replacement(n, e, this.options) + r.trailing;
|
|
465
466
|
}
|
|
466
|
-
function
|
|
467
|
-
var n =
|
|
468
|
-
return n + "\n\n".substring(0,
|
|
467
|
+
function U(e, t) {
|
|
468
|
+
var n = o(e), r = a(t), i = Math.max(e.length - n.length, t.length - r.length);
|
|
469
|
+
return n + "\n\n".substring(0, i) + r;
|
|
469
470
|
}
|
|
470
|
-
function
|
|
471
|
+
function W(e) {
|
|
471
472
|
return e != null && (typeof e == "string" || e.nodeType && (e.nodeType === 1 || e.nodeType === 9 || e.nodeType === 11));
|
|
472
473
|
}
|
|
473
474
|
//#endregion
|
|
474
475
|
//#region lib/utils/html-to-markdown.ts
|
|
475
|
-
var
|
|
476
|
+
var G = "scribe-table-break", K = /* @__PURE__ */ new Set([
|
|
476
477
|
"info",
|
|
477
478
|
"tip",
|
|
478
479
|
"warning",
|
|
479
480
|
"caution"
|
|
480
|
-
]),
|
|
481
|
+
]), q = [
|
|
481
482
|
"width",
|
|
482
483
|
"min-width",
|
|
483
484
|
"max-width",
|
|
484
485
|
"text-align"
|
|
485
|
-
],
|
|
486
|
+
], J = (/* @__PURE__ */ "address.article.aside.blockquote.details.dialog.dd.div.dl.dt.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hr.li.main.menu.nav.ol.p.pre.section.summary.table.ul".split(".")).join(","), oe = /* @__PURE__ */ new Set([
|
|
486
487
|
"A",
|
|
487
488
|
"B",
|
|
488
489
|
"BR",
|
|
@@ -493,92 +494,100 @@ var W = "scribe-table-break", G = /* @__PURE__ */ new Set([
|
|
|
493
494
|
"IMG",
|
|
494
495
|
"S",
|
|
495
496
|
"STRONG"
|
|
496
|
-
]),
|
|
497
|
-
let t = Array.from(e.childNodes).filter(
|
|
498
|
-
return t.length === 0 ? !0 : t.length === 1 && t[0] instanceof HTMLParagraphElement ? !t[0].querySelector(
|
|
499
|
-
},
|
|
497
|
+
]), Y = (e) => oe.has(e.tagName) || e.tagName === "SPAN" && e.getAttribute("data-type") === "latex", X = (e) => Y(e) && Array.from(e.querySelectorAll("*")).every(Y), Z = (e) => e.nodeType !== Node.TEXT_NODE || !!e.textContent?.trim(), se = (e) => {
|
|
498
|
+
let t = Array.from(e.childNodes).filter(Z);
|
|
499
|
+
return t.length === 0 ? !0 : t.length === 1 && t[0] instanceof HTMLParagraphElement ? !t[0].querySelector(J) && Array.from(t[0].children).every(X) : t.every((e) => !(e instanceof Element) && e.nodeType === Node.TEXT_NODE || e instanceof Element && !e.matches(J) && !e.querySelector(J) && X(e));
|
|
500
|
+
}, ce = (e) => e.hasAttribute("width") || /(?:^|;)\s*width\s*:/i.test(e.getAttribute("style") ?? "") ? !0 : Array.from(e.querySelectorAll("th, td, col")).some((e) => !!(e.hasAttribute("colwidth") || e.hasAttribute("width") || /(?:^|;)\s*width\s*:/i.test(e.getAttribute("style") ?? ""))), le = (e) => {
|
|
500
501
|
let t = e.style.textAlign.trim().toLowerCase(), n = (e.getAttribute("align") ?? "").trim().toLowerCase();
|
|
501
502
|
if (t && n && t !== n) return;
|
|
502
503
|
let r = t || n;
|
|
503
504
|
if (!r) return null;
|
|
504
505
|
if (r === "left" || r === "center" || r === "right") return r;
|
|
505
|
-
},
|
|
506
|
-
if (e.caption || e.tFoot ||
|
|
506
|
+
}, ue = (e) => {
|
|
507
|
+
if (e.caption || e.tFoot || ce(e)) return null;
|
|
507
508
|
let t = Array.from(e.rows), n = t[0]?.cells.length ?? 0;
|
|
508
509
|
if (t.length === 0 || n === 0) return null;
|
|
509
510
|
let r = t.map((e) => Array.from(e.cells));
|
|
510
|
-
if (r.some((t, r) => t.length !== n || t.some((t) => t.closest("table") !== e || t.colSpan !== 1 || t.rowSpan !== 1 || !
|
|
511
|
+
if (r.some((t, r) => t.length !== n || t.some((t) => t.closest("table") !== e || t.colSpan !== 1 || t.rowSpan !== 1 || !se(t) || (r === 0 ? t.tagName !== "TH" : t.tagName !== "TD")))) return null;
|
|
511
512
|
let i = r[0].map((e, t) => {
|
|
512
|
-
let n = r.map((e) =>
|
|
513
|
+
let n = r.map((e) => le(e[t])), i = n[0];
|
|
513
514
|
if (!(i === void 0 || n.some((e) => e !== i))) return i;
|
|
514
515
|
});
|
|
515
516
|
return i.some((e) => e === void 0) ? null : {
|
|
516
517
|
rows: r,
|
|
517
518
|
alignments: i
|
|
518
519
|
};
|
|
519
|
-
},
|
|
520
|
-
let n = Array.from(t.childNodes).filter(
|
|
520
|
+
}, de = (e, t) => {
|
|
521
|
+
let n = Array.from(t.childNodes).filter(Z), r = (n.length === 1 && n[0] instanceof HTMLParagraphElement ? n[0] : t).cloneNode(!0);
|
|
521
522
|
r.querySelectorAll("br").forEach((e) => {
|
|
522
|
-
e.replaceWith(e.ownerDocument.createTextNode(
|
|
523
|
+
e.replaceWith(e.ownerDocument.createTextNode(G));
|
|
523
524
|
});
|
|
524
|
-
let i = e.turndown(r.innerHTML).split(
|
|
525
|
+
let i = e.turndown(r.innerHTML).split(G).join("<br>").split("|").join("\\|").trim();
|
|
525
526
|
return /[\r\n]/.test(i) ? null : i;
|
|
526
|
-
},
|
|
527
|
+
}, Q = (e) => {
|
|
527
528
|
let t = e.cloneNode(!0);
|
|
528
529
|
return t.querySelectorAll("span[data-type=\"latex\"]").forEach((e) => {
|
|
529
530
|
e.textContent === "•" && (e.textContent = "");
|
|
530
|
-
}), $(t), t.outerHTML;
|
|
531
|
-
},
|
|
531
|
+
}), $(t), n(t), t.outerHTML;
|
|
532
|
+
}, fe = (e) => {
|
|
532
533
|
let t = e?.trim().toLowerCase();
|
|
533
|
-
return t &&
|
|
534
|
-
},
|
|
535
|
-
let t =
|
|
534
|
+
return t && K.has(t) ? t : "info";
|
|
535
|
+
}, pe = (e) => {
|
|
536
|
+
let t = fe(e.getAttribute("data-variant"));
|
|
536
537
|
Array.from(e.attributes).forEach((t) => {
|
|
537
538
|
t.name !== "data-type" && t.name !== "data-variant" && t.name !== "role" && e.removeAttribute(t.name);
|
|
538
539
|
}), e.setAttribute("data-type", "callout"), e.setAttribute("data-variant", t), e.setAttribute("role", "note");
|
|
539
|
-
},
|
|
540
|
-
let t = e.matches("table, col, th, td") ?
|
|
540
|
+
}, me = (e) => {
|
|
541
|
+
let t = e.matches("table, col, th, td") ? q.map((t) => [t, e.style.getPropertyValue(t)]).filter(([, e]) => !!e) : [];
|
|
541
542
|
e.removeAttribute("style"), t.forEach(([t, n]) => {
|
|
542
543
|
e.style.setProperty(t, n);
|
|
543
544
|
});
|
|
544
545
|
}, $ = (e) => {
|
|
545
546
|
[...e.matches("aside[data-type=\"callout\"]") ? [e] : [], ...Array.from(e.querySelectorAll("aside[data-type=\"callout\"]"))].forEach((e) => {
|
|
546
547
|
[e, ...Array.from(e.querySelectorAll("*"))].forEach((e) => {
|
|
547
|
-
|
|
548
|
+
me(e), Array.from(e.attributes).forEach((t) => {
|
|
548
549
|
t.name.toLowerCase().startsWith("on") && e.removeAttribute(t.name);
|
|
549
550
|
});
|
|
550
|
-
}),
|
|
551
|
+
}), pe(e);
|
|
551
552
|
});
|
|
552
|
-
},
|
|
553
|
+
}, he = (e) => {
|
|
553
554
|
let t = e.cloneNode(!0);
|
|
554
555
|
return t.querySelectorAll("span[data-type=\"latex\"]").forEach((e) => {
|
|
555
556
|
e.textContent === "•" && (e.textContent = "");
|
|
556
|
-
}), $(t), t.outerHTML;
|
|
557
|
-
},
|
|
557
|
+
}), $(t), n(t), t.outerHTML;
|
|
558
|
+
}, ge = (e) => {
|
|
559
|
+
let n = e.cloneNode(!0);
|
|
560
|
+
return t(n) ? n.outerHTML : n.textContent ?? "";
|
|
561
|
+
}, _e = (e) => {
|
|
562
|
+
e.addRule("scribeExternalLinkPreview", {
|
|
563
|
+
filter: (e) => e.nodeName === "SPAN" && e.getAttribute("data-type") === "external-link-preview",
|
|
564
|
+
replacement: (e, t) => ge(t)
|
|
565
|
+
});
|
|
566
|
+
}, ve = (e) => {
|
|
558
567
|
e.addRule("scribeCallout", {
|
|
559
568
|
filter: (e) => e.nodeName === "ASIDE" && e.getAttribute("data-type") === "callout",
|
|
560
|
-
replacement: (e, t) => `\n\n${
|
|
569
|
+
replacement: (e, t) => `\n\n${he(t)}\n\n`
|
|
561
570
|
});
|
|
562
|
-
},
|
|
571
|
+
}, ye = (e) => {
|
|
563
572
|
e.addRule("scribeTable", {
|
|
564
573
|
filter: "table",
|
|
565
574
|
replacement: (t, n) => {
|
|
566
|
-
let r = n, i =
|
|
567
|
-
if (!i) return `\n\n${
|
|
568
|
-
let { rows: a, alignments: o } = i, s = a.map((t) => t.map((t) =>
|
|
569
|
-
if (s.some((e) => e.some((e) => e === null))) return `\n\n${
|
|
575
|
+
let r = n, i = ue(r);
|
|
576
|
+
if (!i) return `\n\n${Q(r)}\n\n`;
|
|
577
|
+
let { rows: a, alignments: o } = i, s = a.map((t) => t.map((t) => de(e, t)));
|
|
578
|
+
if (s.some((e) => e.some((e) => e === null))) return `\n\n${Q(r)}\n\n`;
|
|
570
579
|
let c = s.map((e) => `| ${e.join(" | ")} |`), l = `| ${o.map((e) => e === "left" ? ":---" : e === "center" ? ":---:" : e === "right" ? "---:" : "---").join(" | ")} |`;
|
|
571
580
|
return c.splice(1, 0, l), `\n\n${c.join("\n")}\n\n`;
|
|
572
581
|
}
|
|
573
582
|
});
|
|
574
|
-
},
|
|
575
|
-
let
|
|
583
|
+
}, be = (t) => {
|
|
584
|
+
let r = new z({
|
|
576
585
|
headingStyle: "atx",
|
|
577
586
|
hr: "---",
|
|
578
587
|
bulletListMarker: "-",
|
|
579
588
|
codeBlockStyle: "fenced"
|
|
580
589
|
});
|
|
581
|
-
|
|
590
|
+
r.addRule("latex", {
|
|
582
591
|
filter: function(e) {
|
|
583
592
|
return e.nodeName === "SPAN" && e.getAttribute("data-type") === "latex";
|
|
584
593
|
},
|
|
@@ -586,12 +595,14 @@ var W = "scribe-table-break", G = /* @__PURE__ */ new Set([
|
|
|
586
595
|
let n = t, r = n.getAttribute("data-content") || "";
|
|
587
596
|
return n.getAttribute("data-display-mode") === "true" ? `\n\n$$\n${r}\n$$\n\n` : `$${r}$`;
|
|
588
597
|
}
|
|
589
|
-
}),
|
|
598
|
+
}), r.addRule("strikethrough", {
|
|
590
599
|
filter: ["del", "s"],
|
|
591
600
|
replacement: function(e) {
|
|
592
601
|
return "~~" + e + "~~";
|
|
593
602
|
}
|
|
594
|
-
}),
|
|
603
|
+
}), ve(r), ye(r), _e(r);
|
|
604
|
+
let i = e.sanitize(((e) => e.replace(/<span([^>]+data-type="latex"[^>]*)><\/span>/g, "<span$1>•</span>"))(t), { ADD_ATTR: ["colwidth"] }), a = document.createElement("div");
|
|
605
|
+
return a.innerHTML = i, n(a), r.turndown(a.innerHTML);
|
|
595
606
|
};
|
|
596
607
|
//#endregion
|
|
597
|
-
export {
|
|
608
|
+
export { be as t };
|