vditor 3.11.1 → 3.11.3
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 +13 -2
- package/dist/css/content-theme/ant-design.css +10 -0
- package/dist/css/content-theme/dark.css +10 -0
- package/dist/css/content-theme/light.css +13 -0
- package/dist/css/content-theme/wechat.css +10 -0
- package/dist/index.css +133 -4
- package/dist/index.js +715 -57
- package/dist/index.min.js +1 -1
- package/dist/js/i18n/es_ES.js +86 -0
- package/dist/js/i18n/ja_JP.js +2 -2
- package/dist/js/i18n/vi_VN.js +86 -0
- package/dist/js/i18n/zh_TW.js +8 -8
- package/dist/js/icons/ant.js +1 -1
- package/dist/js/icons/material.js +1 -1
- package/dist/js/lute/lute.min.js +87 -71
- package/dist/js/mermaid/mermaid.min.js +2027 -1047
- package/dist/js/wavedrom/LICENSE.WaveDrom +21 -0
- package/dist/js/wavedrom/wavedrom.min.js +9 -0
- package/dist/method.d.ts +2 -0
- package/dist/method.js +319 -8
- package/dist/method.min.js +1 -1
- package/dist/ts/constants.d.ts +4 -0
- package/dist/ts/markdown/adapterRender.d.ts +4 -0
- package/dist/ts/markdown/imageCaptionRender.d.ts +2 -0
- package/dist/ts/markdown/wavedromRender.d.ts +1 -0
- package/dist/ts/util/fixBrowserBehavior.d.ts +1 -0
- package/dist/types/index.d.ts +47 -3
- package/package.json +7 -4
- package/src/assets/less/_reset.less +103 -2
- package/src/assets/less/index.less +20 -0
- package/src/index.ts +4 -1
- package/src/method.ts +3 -0
- package/src/ts/constants.ts +5 -1
- package/src/ts/export/index.ts +2 -0
- package/src/ts/ir/index.ts +26 -0
- package/src/ts/ir/process.ts +24 -1
- package/src/ts/markdown/adapterRender.ts +4 -0
- package/src/ts/markdown/getHTML.ts +6 -3
- package/src/ts/markdown/imageCaptionRender.ts +175 -0
- package/src/ts/markdown/mermaidRender.ts +1 -1
- package/src/ts/markdown/previewRender.ts +8 -2
- package/src/ts/markdown/setLute.ts +3 -0
- package/src/ts/markdown/wavedromRender.ts +54 -0
- package/src/ts/preview/index.ts +5 -0
- package/src/ts/util/Options.ts +1 -1
- package/src/ts/util/fixBrowserBehavior.ts +165 -21
- package/src/ts/util/processCode.ts +3 -0
- package/src/ts/util/selection.ts +7 -2
- package/src/ts/wysiwyg/afterRenderEvent.ts +2 -0
- package/src/ts/wysiwyg/highlightToolbarWYSIWYG.ts +23 -4
- package/src/ts/wysiwyg/input.ts +5 -0
- package/src/ts/wysiwyg/setHeading.ts +110 -6
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vditor v3.11.
|
|
2
|
+
* Vditor v3.11.3 - A markdown editor written in TypeScript.
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
return /******/ (() => { // webpackBootstrap
|
|
38
38
|
/******/ var __webpack_modules__ = ({
|
|
39
39
|
|
|
40
|
-
/***/
|
|
40
|
+
/***/ 132:
|
|
41
41
|
/***/ ((module) => {
|
|
42
42
|
|
|
43
43
|
/**
|
|
@@ -2196,6 +2196,8 @@ var mindmapRender = __webpack_require__(194);
|
|
|
2196
2196
|
var outlineRender = __webpack_require__(436);
|
|
2197
2197
|
// EXTERNAL MODULE: ./src/ts/markdown/plantumlRender.ts
|
|
2198
2198
|
var plantumlRender = __webpack_require__(229);
|
|
2199
|
+
// EXTERNAL MODULE: ./src/ts/markdown/wavedromRender.ts
|
|
2200
|
+
var wavedromRender = __webpack_require__(497);
|
|
2199
2201
|
// EXTERNAL MODULE: ./src/ts/constants.ts
|
|
2200
2202
|
var constants = __webpack_require__(145);
|
|
2201
2203
|
// EXTERNAL MODULE: ./src/ts/ui/setContentTheme.ts
|
|
@@ -2226,6 +2228,8 @@ var anchorRender = function (type) {
|
|
|
2226
2228
|
};
|
|
2227
2229
|
};
|
|
2228
2230
|
|
|
2231
|
+
// EXTERNAL MODULE: ./src/ts/markdown/imageCaptionRender.ts
|
|
2232
|
+
var imageCaptionRender = __webpack_require__(161);
|
|
2229
2233
|
// EXTERNAL MODULE: ./src/ts/markdown/setLute.ts
|
|
2230
2234
|
var setLute = __webpack_require__(214);
|
|
2231
2235
|
// EXTERNAL MODULE: ./src/ts/util/selection.ts
|
|
@@ -2386,6 +2390,8 @@ var __generator = (undefined && undefined.__generator) || function (thisArg, bod
|
|
|
2386
2390
|
|
|
2387
2391
|
|
|
2388
2392
|
|
|
2393
|
+
|
|
2394
|
+
|
|
2389
2395
|
|
|
2390
2396
|
|
|
2391
2397
|
|
|
@@ -2427,6 +2433,7 @@ var md2html = function (mdText, options) {
|
|
|
2427
2433
|
return (0,addScript/* addScript */.G)("".concat(mergedOptions.cdn, "/dist/js/lute/lute.min.js"), "vditorLuteScript").then(function () {
|
|
2428
2434
|
var lute = (0,setLute/* setLute */.X)({
|
|
2429
2435
|
autoSpace: mergedOptions.markdown.autoSpace,
|
|
2436
|
+
callout: mergedOptions.markdown.callout,
|
|
2430
2437
|
gfmAutoLink: mergedOptions.markdown.gfmAutoLink,
|
|
2431
2438
|
codeBlockPreview: mergedOptions.markdown.codeBlockPreview,
|
|
2432
2439
|
emojiSite: mergedOptions.emojiPath,
|
|
@@ -2443,6 +2450,8 @@ var md2html = function (mdText, options) {
|
|
|
2443
2450
|
mathBlockPreview: mergedOptions.markdown.mathBlockPreview,
|
|
2444
2451
|
paragraphBeginningSpace: mergedOptions.markdown.paragraphBeginningSpace,
|
|
2445
2452
|
sanitize: mergedOptions.markdown.sanitize,
|
|
2453
|
+
sub: mergedOptions.markdown.sub,
|
|
2454
|
+
sup: mergedOptions.markdown.sup,
|
|
2446
2455
|
toc: mergedOptions.markdown.toc,
|
|
2447
2456
|
});
|
|
2448
2457
|
if (options === null || options === void 0 ? void 0 : options.renderers) {
|
|
@@ -2453,7 +2462,7 @@ var md2html = function (mdText, options) {
|
|
|
2453
2462
|
});
|
|
2454
2463
|
}
|
|
2455
2464
|
lute.SetHeadingID(true);
|
|
2456
|
-
return lute.Md2HTML(mdText);
|
|
2465
|
+
return (0,imageCaptionRender/* renderImageCaptionHTML */.V)(lute.Md2HTML(mdText), mergedOptions.markdown.imageCaption);
|
|
2457
2466
|
});
|
|
2458
2467
|
};
|
|
2459
2468
|
var previewRender = function (previewElement, markdown, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -2471,7 +2480,7 @@ var previewRender = function (previewElement, markdown, options) { return __awai
|
|
|
2471
2480
|
previewElement.innerHTML = html;
|
|
2472
2481
|
previewElement.classList.add("vditor-reset");
|
|
2473
2482
|
if (!!mergedOptions.i18n) return [3 /*break*/, 5];
|
|
2474
|
-
if (!!["de_DE", "en_US", "
|
|
2483
|
+
if (!!["de_DE", "en_US", "es_ES", "fr_FR", "ja_JP", "ko_KR", "pt_BR", "ru_RU", "sv_SE", "vi_VN", "zh_CN", "zh_TW"].includes(mergedOptions.lang)) return [3 /*break*/, 2];
|
|
2475
2484
|
throw new Error("options.lang error, see https://ld246.com/article/1549638745630#options");
|
|
2476
2485
|
case 2:
|
|
2477
2486
|
i18nScriptPrefix = "vditorI18nScript";
|
|
@@ -2511,6 +2520,7 @@ var previewRender = function (previewElement, markdown, options) { return __awai
|
|
|
2511
2520
|
(0,markmapRender/* markmapRender */.K)(previewElement, mergedOptions.cdn);
|
|
2512
2521
|
(0,flowchartRender/* flowchartRender */.P)(previewElement, mergedOptions.cdn);
|
|
2513
2522
|
(0,graphvizRender/* graphvizRender */.v)(previewElement, mergedOptions.cdn);
|
|
2523
|
+
(0,wavedromRender/* wavedromRender */.F)(previewElement, mergedOptions.cdn);
|
|
2514
2524
|
(0,chartRender/* chartRender */.p)(previewElement, mergedOptions.cdn, mergedOptions.mode);
|
|
2515
2525
|
(0,mindmapRender/* mindmapRender */.P)(previewElement, mergedOptions.cdn, mergedOptions.mode);
|
|
2516
2526
|
(0,plantumlRender/* plantumlRender */.B)(previewElement, mergedOptions.cdn);
|
|
@@ -2569,6 +2579,7 @@ var setCodeTheme = __webpack_require__(580);
|
|
|
2569
2579
|
|
|
2570
2580
|
|
|
2571
2581
|
|
|
2582
|
+
|
|
2572
2583
|
|
|
2573
2584
|
|
|
2574
2585
|
var Vditor = /** @class */ (function () {
|
|
@@ -2582,6 +2593,8 @@ var Vditor = /** @class */ (function () {
|
|
|
2582
2593
|
Vditor.codeRender = codeRender/* codeRender */.O;
|
|
2583
2594
|
/** 对 graphviz 进行渲染 */
|
|
2584
2595
|
Vditor.graphvizRender = graphvizRender/* graphvizRender */.v;
|
|
2596
|
+
/** 对数字波形图进行渲染 */
|
|
2597
|
+
Vditor.wavedromRender = wavedromRender/* wavedromRender */.F;
|
|
2585
2598
|
/** 为 element 中的代码块进行高亮渲染 */
|
|
2586
2599
|
Vditor.highlightRender = highlightRender/* highlightRender */.s;
|
|
2587
2600
|
/** 对数学公式进行渲染 */
|
|
@@ -2633,7 +2646,7 @@ var Vditor = /** @class */ (function () {
|
|
|
2633
2646
|
/* harmony export */ "H": () => (/* binding */ _VDITOR_VERSION),
|
|
2634
2647
|
/* harmony export */ "g": () => (/* binding */ Constants)
|
|
2635
2648
|
/* harmony export */ });
|
|
2636
|
-
var _VDITOR_VERSION = "3.11.
|
|
2649
|
+
var _VDITOR_VERSION = "3.11.3";
|
|
2637
2650
|
|
|
2638
2651
|
var Constants = /** @class */ (function () {
|
|
2639
2652
|
function Constants() {
|
|
@@ -2677,17 +2690,19 @@ var Constants = /** @class */ (function () {
|
|
|
2677
2690
|
"stackoverflow-light", "tokyo-night-light", "vs", "xcode", "default"];
|
|
2678
2691
|
Constants.ALIAS_CODE_LANGUAGES = [
|
|
2679
2692
|
// 自定义
|
|
2680
|
-
"abc", "plantuml", "mermaid", "flowchart", "echarts", "mindmap", "graphviz", "math", "markmap", "smiles",
|
|
2693
|
+
"abc", "plantuml", "mermaid", "flowchart", "echarts", "mindmap", "graphviz", "wavedrom", "math", "markmap", "smiles",
|
|
2681
2694
|
// 别名
|
|
2682
2695
|
"js", "ts", "html", "toml", "c#", "bat"
|
|
2683
2696
|
];
|
|
2684
|
-
Constants.CDN = "https://unpkg.com/vditor@".concat("3.11.
|
|
2697
|
+
Constants.CDN = "https://unpkg.com/vditor@".concat("3.11.3");
|
|
2685
2698
|
Constants.MARKDOWN_OPTIONS = {
|
|
2686
2699
|
autoSpace: false,
|
|
2700
|
+
callout: true,
|
|
2687
2701
|
gfmAutoLink: true,
|
|
2688
2702
|
codeBlockPreview: true,
|
|
2689
2703
|
fixTermTypo: false,
|
|
2690
2704
|
footnotes: true,
|
|
2705
|
+
imageCaption: false,
|
|
2691
2706
|
linkBase: "",
|
|
2692
2707
|
linkPrefix: "",
|
|
2693
2708
|
listStyle: false,
|
|
@@ -2695,6 +2710,8 @@ var Constants = /** @class */ (function () {
|
|
|
2695
2710
|
mathBlockPreview: true,
|
|
2696
2711
|
paragraphBeginningSpace: false,
|
|
2697
2712
|
sanitize: true,
|
|
2713
|
+
sub: false,
|
|
2714
|
+
sup: false,
|
|
2698
2715
|
toc: false,
|
|
2699
2716
|
};
|
|
2700
2717
|
Constants.HLJS_OPTIONS = {
|
|
@@ -2816,6 +2833,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2816
2833
|
/* harmony export */ "chartRenderAdapter": () => (/* binding */ chartRenderAdapter),
|
|
2817
2834
|
/* harmony export */ "abcRenderAdapter": () => (/* binding */ abcRenderAdapter),
|
|
2818
2835
|
/* harmony export */ "graphvizRenderAdapter": () => (/* binding */ graphvizRenderAdapter),
|
|
2836
|
+
/* harmony export */ "wavedromRenderAdapter": () => (/* binding */ wavedromRenderAdapter),
|
|
2819
2837
|
/* harmony export */ "flowchartRenderAdapter": () => (/* binding */ flowchartRenderAdapter),
|
|
2820
2838
|
/* harmony export */ "plantumlRenderAdapter": () => (/* binding */ plantumlRenderAdapter)
|
|
2821
2839
|
/* harmony export */ });
|
|
@@ -2852,6 +2870,10 @@ var graphvizRenderAdapter = {
|
|
|
2852
2870
|
getCode: function (el) { return el.textContent; },
|
|
2853
2871
|
getElements: function (el) { return el.querySelectorAll(".language-graphviz"); },
|
|
2854
2872
|
};
|
|
2873
|
+
var wavedromRenderAdapter = {
|
|
2874
|
+
getCode: function (el) { return el.textContent; },
|
|
2875
|
+
getElements: function (el) { return el.querySelectorAll(".language-wavedrom"); },
|
|
2876
|
+
};
|
|
2855
2877
|
var flowchartRenderAdapter = {
|
|
2856
2878
|
getCode: function (el) { return el.textContent; },
|
|
2857
2879
|
getElements: function (el) { return el.querySelectorAll(".language-flowchart"); },
|
|
@@ -3213,6 +3235,179 @@ var highlightRender = function (hljsOption, element, cdn) {
|
|
|
3213
3235
|
};
|
|
3214
3236
|
|
|
3215
3237
|
|
|
3238
|
+
/***/ }),
|
|
3239
|
+
|
|
3240
|
+
/***/ 161:
|
|
3241
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3242
|
+
|
|
3243
|
+
"use strict";
|
|
3244
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3245
|
+
/* harmony export */ "W": () => (/* binding */ renderImageCaptions),
|
|
3246
|
+
/* harmony export */ "V": () => (/* binding */ renderImageCaptionHTML)
|
|
3247
|
+
/* harmony export */ });
|
|
3248
|
+
var getContentNodes = function (element, ignoreIRMarkers) {
|
|
3249
|
+
if (ignoreIRMarkers === void 0) { ignoreIRMarkers = false; }
|
|
3250
|
+
return Array.from(element.childNodes).filter(function (node) {
|
|
3251
|
+
if (node.nodeType === Node.COMMENT_NODE) {
|
|
3252
|
+
return false;
|
|
3253
|
+
}
|
|
3254
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
3255
|
+
return node.textContent.replace(/\u200b/g, "").trim() !== "";
|
|
3256
|
+
}
|
|
3257
|
+
if (!(node instanceof HTMLElement)) {
|
|
3258
|
+
return true;
|
|
3259
|
+
}
|
|
3260
|
+
if (node.tagName === "WBR") {
|
|
3261
|
+
return false;
|
|
3262
|
+
}
|
|
3263
|
+
return !ignoreIRMarkers || !node.classList.contains("vditor-ir__marker");
|
|
3264
|
+
});
|
|
3265
|
+
};
|
|
3266
|
+
var getWYSIWYGImage = function (paragraph) {
|
|
3267
|
+
var nodes = getContentNodes(paragraph);
|
|
3268
|
+
if (nodes.length !== 1 || !(nodes[0] instanceof HTMLElement)) {
|
|
3269
|
+
return undefined;
|
|
3270
|
+
}
|
|
3271
|
+
var container = nodes[0];
|
|
3272
|
+
if (container instanceof HTMLImageElement) {
|
|
3273
|
+
return {
|
|
3274
|
+
container: container,
|
|
3275
|
+
image: container,
|
|
3276
|
+
};
|
|
3277
|
+
}
|
|
3278
|
+
if (container instanceof HTMLAnchorElement) {
|
|
3279
|
+
var linkNodes = getContentNodes(container);
|
|
3280
|
+
if (linkNodes.length === 1 && linkNodes[0] instanceof HTMLImageElement) {
|
|
3281
|
+
return {
|
|
3282
|
+
container: container,
|
|
3283
|
+
image: linkNodes[0],
|
|
3284
|
+
};
|
|
3285
|
+
}
|
|
3286
|
+
}
|
|
3287
|
+
return undefined;
|
|
3288
|
+
};
|
|
3289
|
+
var getIRImage = function (paragraph) {
|
|
3290
|
+
var nodes = getContentNodes(paragraph);
|
|
3291
|
+
if (nodes.length !== 1 || !(nodes[0] instanceof HTMLElement)) {
|
|
3292
|
+
return undefined;
|
|
3293
|
+
}
|
|
3294
|
+
var imageNode = nodes[0];
|
|
3295
|
+
if (imageNode.getAttribute("data-type") === "a") {
|
|
3296
|
+
var linkNodes = getContentNodes(imageNode, true);
|
|
3297
|
+
if (linkNodes.length !== 1 || !(linkNodes[0] instanceof HTMLElement)) {
|
|
3298
|
+
return undefined;
|
|
3299
|
+
}
|
|
3300
|
+
imageNode = linkNodes[0];
|
|
3301
|
+
}
|
|
3302
|
+
if (imageNode.getAttribute("data-type") !== "img") {
|
|
3303
|
+
return undefined;
|
|
3304
|
+
}
|
|
3305
|
+
var image = imageNode.querySelector(":scope > img");
|
|
3306
|
+
var titleMarker = imageNode.querySelector(":scope > .vditor-ir__marker--title");
|
|
3307
|
+
if (!(image instanceof HTMLImageElement) || !titleMarker) {
|
|
3308
|
+
return undefined;
|
|
3309
|
+
}
|
|
3310
|
+
var markerText = titleMarker.textContent.trim();
|
|
3311
|
+
var closeMarker = markerText[0] === "(" ? ")" : markerText[0];
|
|
3312
|
+
if (markerText.length < 2 || !["\"", "'", "("].includes(markerText[0]) ||
|
|
3313
|
+
markerText[markerText.length - 1] !== closeMarker) {
|
|
3314
|
+
return undefined;
|
|
3315
|
+
}
|
|
3316
|
+
return {
|
|
3317
|
+
caption: markerText.slice(1, -1).trim(),
|
|
3318
|
+
container: imageNode,
|
|
3319
|
+
image: image,
|
|
3320
|
+
};
|
|
3321
|
+
};
|
|
3322
|
+
var unwrapWYSIWYGCaptions = function (element) {
|
|
3323
|
+
element.querySelectorAll("span.vditor-image[data-image-caption]").forEach(function (wrapper) {
|
|
3324
|
+
while (wrapper.firstChild) {
|
|
3325
|
+
wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);
|
|
3326
|
+
}
|
|
3327
|
+
wrapper.remove();
|
|
3328
|
+
});
|
|
3329
|
+
};
|
|
3330
|
+
var resetIRCaptions = function (element) {
|
|
3331
|
+
element.querySelectorAll(".vditor-image[data-image-caption]").forEach(function (imageNode) {
|
|
3332
|
+
imageNode.classList.remove("vditor-image");
|
|
3333
|
+
imageNode.removeAttribute("data-image-caption");
|
|
3334
|
+
});
|
|
3335
|
+
};
|
|
3336
|
+
var renderPreviewCaptions = function (element) {
|
|
3337
|
+
element.querySelectorAll("p").forEach(function (paragraph) {
|
|
3338
|
+
var _a;
|
|
3339
|
+
var imageData = getWYSIWYGImage(paragraph);
|
|
3340
|
+
var caption = (_a = imageData === null || imageData === void 0 ? void 0 : imageData.image.getAttribute("title")) === null || _a === void 0 ? void 0 : _a.trim();
|
|
3341
|
+
if (!imageData || !caption) {
|
|
3342
|
+
return;
|
|
3343
|
+
}
|
|
3344
|
+
var figure = document.createElement("figure");
|
|
3345
|
+
Array.from(paragraph.attributes).forEach(function (attribute) {
|
|
3346
|
+
figure.setAttribute(attribute.name, attribute.value);
|
|
3347
|
+
});
|
|
3348
|
+
figure.classList.add("vditor-image");
|
|
3349
|
+
var figcaption = document.createElement("figcaption");
|
|
3350
|
+
figcaption.textContent = caption;
|
|
3351
|
+
figure.append(imageData.container, figcaption);
|
|
3352
|
+
paragraph.replaceWith(figure);
|
|
3353
|
+
});
|
|
3354
|
+
};
|
|
3355
|
+
var renderWYSIWYGCaptions = function (element) {
|
|
3356
|
+
element.querySelectorAll("p").forEach(function (paragraph) {
|
|
3357
|
+
var _a;
|
|
3358
|
+
var imageData = getWYSIWYGImage(paragraph);
|
|
3359
|
+
var caption = (_a = imageData === null || imageData === void 0 ? void 0 : imageData.image.getAttribute("title")) === null || _a === void 0 ? void 0 : _a.trim();
|
|
3360
|
+
if (!imageData || !caption) {
|
|
3361
|
+
return;
|
|
3362
|
+
}
|
|
3363
|
+
var wrapper = document.createElement("span");
|
|
3364
|
+
wrapper.className = "vditor-image";
|
|
3365
|
+
wrapper.setAttribute("data-image-caption", caption);
|
|
3366
|
+
imageData.container.replaceWith(wrapper);
|
|
3367
|
+
wrapper.append(imageData.container);
|
|
3368
|
+
});
|
|
3369
|
+
};
|
|
3370
|
+
var renderIRCaptions = function (element) {
|
|
3371
|
+
element.querySelectorAll("p").forEach(function (paragraph) {
|
|
3372
|
+
var imageData = getIRImage(paragraph);
|
|
3373
|
+
if (!(imageData === null || imageData === void 0 ? void 0 : imageData.caption)) {
|
|
3374
|
+
return;
|
|
3375
|
+
}
|
|
3376
|
+
imageData.container.classList.add("vditor-image");
|
|
3377
|
+
imageData.container.setAttribute("data-image-caption", imageData.caption);
|
|
3378
|
+
});
|
|
3379
|
+
};
|
|
3380
|
+
var renderImageCaptions = function (element, mode, enable) {
|
|
3381
|
+
if (mode === "wysiwyg") {
|
|
3382
|
+
unwrapWYSIWYGCaptions(element);
|
|
3383
|
+
}
|
|
3384
|
+
else if (mode === "ir") {
|
|
3385
|
+
resetIRCaptions(element);
|
|
3386
|
+
}
|
|
3387
|
+
if (!enable) {
|
|
3388
|
+
return;
|
|
3389
|
+
}
|
|
3390
|
+
if (mode === "preview") {
|
|
3391
|
+
renderPreviewCaptions(element);
|
|
3392
|
+
}
|
|
3393
|
+
else if (mode === "wysiwyg") {
|
|
3394
|
+
renderWYSIWYGCaptions(element);
|
|
3395
|
+
}
|
|
3396
|
+
else {
|
|
3397
|
+
renderIRCaptions(element);
|
|
3398
|
+
}
|
|
3399
|
+
};
|
|
3400
|
+
var renderImageCaptionHTML = function (html, enable) {
|
|
3401
|
+
if (!enable) {
|
|
3402
|
+
return html;
|
|
3403
|
+
}
|
|
3404
|
+
var container = document.createElement("div");
|
|
3405
|
+
container.innerHTML = html;
|
|
3406
|
+
renderImageCaptions(container, "preview", true);
|
|
3407
|
+
return container.innerHTML;
|
|
3408
|
+
};
|
|
3409
|
+
|
|
3410
|
+
|
|
3216
3411
|
/***/ }),
|
|
3217
3412
|
|
|
3218
3413
|
/***/ 11:
|
|
@@ -3600,7 +3795,7 @@ var mermaidRender = function (element, cdn, theme) {
|
|
|
3600
3795
|
if (mermaidElements.length === 0) {
|
|
3601
3796
|
return;
|
|
3602
3797
|
}
|
|
3603
|
-
(0,_util_addScript__WEBPACK_IMPORTED_MODULE_2__/* .addScript */ .G)("".concat(cdn, "/dist/js/mermaid/mermaid.min.js?v=11.
|
|
3798
|
+
(0,_util_addScript__WEBPACK_IMPORTED_MODULE_2__/* .addScript */ .G)("".concat(cdn, "/dist/js/mermaid/mermaid.min.js?v=11.16.1"), "vditorMermaidScript").then(function () {
|
|
3604
3799
|
var config = {
|
|
3605
3800
|
securityLevel: "loose",
|
|
3606
3801
|
altFontFamily: "sans-serif",
|
|
@@ -3939,6 +4134,7 @@ var setLute = function (options) {
|
|
|
3939
4134
|
lute.SetHeadingAnchor(options.headingAnchor);
|
|
3940
4135
|
lute.SetInlineMathAllowDigitAfterOpenMarker(options.inlineMathDigit);
|
|
3941
4136
|
lute.SetAutoSpace(options.autoSpace);
|
|
4137
|
+
lute.SetCallout(options.callout);
|
|
3942
4138
|
lute.SetToC(options.toc);
|
|
3943
4139
|
lute.SetFootnotes(options.footnotes);
|
|
3944
4140
|
lute.SetFixTermTypo(options.fixTermTypo);
|
|
@@ -3954,10 +4150,121 @@ var setLute = function (options) {
|
|
|
3954
4150
|
if (options.lazyLoadImage) {
|
|
3955
4151
|
lute.SetImageLazyLoading(options.lazyLoadImage);
|
|
3956
4152
|
}
|
|
4153
|
+
lute.SetSup(options.sup);
|
|
4154
|
+
lute.SetSub(options.sub);
|
|
3957
4155
|
return lute;
|
|
3958
4156
|
};
|
|
3959
4157
|
|
|
3960
4158
|
|
|
4159
|
+
/***/ }),
|
|
4160
|
+
|
|
4161
|
+
/***/ 497:
|
|
4162
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4163
|
+
|
|
4164
|
+
"use strict";
|
|
4165
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4166
|
+
/* harmony export */ "F": () => (/* binding */ wavedromRender)
|
|
4167
|
+
/* harmony export */ });
|
|
4168
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(145);
|
|
4169
|
+
/* harmony import */ var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(413);
|
|
4170
|
+
/* harmony import */ var _util_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(494);
|
|
4171
|
+
/* harmony import */ var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(840);
|
|
4172
|
+
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4173
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4174
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4175
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
4176
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
4177
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
4178
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
4179
|
+
});
|
|
4180
|
+
};
|
|
4181
|
+
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
|
|
4182
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
4183
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
4184
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
4185
|
+
function step(op) {
|
|
4186
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
4187
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
4188
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
4189
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
4190
|
+
switch (op[0]) {
|
|
4191
|
+
case 0: case 1: t = op; break;
|
|
4192
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
4193
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
4194
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
4195
|
+
default:
|
|
4196
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
4197
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
4198
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
4199
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
4200
|
+
if (t[2]) _.ops.pop();
|
|
4201
|
+
_.trys.pop(); continue;
|
|
4202
|
+
}
|
|
4203
|
+
op = body.call(thisArg, _);
|
|
4204
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
4205
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
4206
|
+
}
|
|
4207
|
+
};
|
|
4208
|
+
|
|
4209
|
+
|
|
4210
|
+
|
|
4211
|
+
|
|
4212
|
+
var wavedromIndex = 0;
|
|
4213
|
+
var wavedromRender = function (element, cdn) {
|
|
4214
|
+
if (element === void 0) { element = document; }
|
|
4215
|
+
if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__/* .Constants.CDN */ .g.CDN; }
|
|
4216
|
+
var wavedromElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.wavedromRenderAdapter.getElements(element);
|
|
4217
|
+
if (wavedromElements.length === 0) {
|
|
4218
|
+
return;
|
|
4219
|
+
}
|
|
4220
|
+
(0,_util_addScript__WEBPACK_IMPORTED_MODULE_2__/* .addScript */ .G)("".concat(cdn, "/dist/js/wavedrom/wavedrom.min.js?v=3.6.2"), "vditorWavedromScript").then(function () {
|
|
4221
|
+
wavedromElements.forEach(function (item) { return __awaiter(void 0, void 0, void 0, function () {
|
|
4222
|
+
var code, renderElement, source, error_1, message, lineBreak;
|
|
4223
|
+
return __generator(this, function (_a) {
|
|
4224
|
+
switch (_a.label) {
|
|
4225
|
+
case 0:
|
|
4226
|
+
if (item.parentElement.classList.contains("vditor-wysiwyg__pre") ||
|
|
4227
|
+
item.parentElement.classList.contains("vditor-ir__marker--pre")) {
|
|
4228
|
+
return [2 /*return*/];
|
|
4229
|
+
}
|
|
4230
|
+
code = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.wavedromRenderAdapter.getCode(item);
|
|
4231
|
+
if (item.getAttribute("data-processed") === "true" || code.trim() === "") {
|
|
4232
|
+
return [2 /*return*/];
|
|
4233
|
+
}
|
|
4234
|
+
renderElement = item;
|
|
4235
|
+
if (item.tagName === "CODE") {
|
|
4236
|
+
renderElement = document.createElement("div");
|
|
4237
|
+
Array.from(item.attributes).forEach(function (attribute) {
|
|
4238
|
+
renderElement.setAttribute(attribute.name, attribute.value);
|
|
4239
|
+
});
|
|
4240
|
+
item.replaceWith(renderElement);
|
|
4241
|
+
}
|
|
4242
|
+
_a.label = 1;
|
|
4243
|
+
case 1:
|
|
4244
|
+
_a.trys.push([1, 3, , 4]);
|
|
4245
|
+
return [4 /*yield*/, (0,_util_function__WEBPACK_IMPORTED_MODULE_3__/* .looseJsonParse */ .Qf)(code)];
|
|
4246
|
+
case 2:
|
|
4247
|
+
source = _a.sent();
|
|
4248
|
+
wavedrom.renderWaveElement(wavedromIndex, source, renderElement, wavedrom.waveSkin, false);
|
|
4249
|
+
wavedromIndex++;
|
|
4250
|
+
return [3 /*break*/, 4];
|
|
4251
|
+
case 3:
|
|
4252
|
+
error_1 = _a.sent();
|
|
4253
|
+
message = error_1 instanceof Error ? error_1.message : String(error_1);
|
|
4254
|
+
lineBreak = document.createElement("br");
|
|
4255
|
+
renderElement.replaceChildren(document.createTextNode("wavedrom render error:"), lineBreak, document.createTextNode(message));
|
|
4256
|
+
renderElement.classList.add("vditor-reset--error");
|
|
4257
|
+
return [3 /*break*/, 4];
|
|
4258
|
+
case 4:
|
|
4259
|
+
renderElement.setAttribute("data-processed", "true");
|
|
4260
|
+
return [2 /*return*/];
|
|
4261
|
+
}
|
|
4262
|
+
});
|
|
4263
|
+
}); });
|
|
4264
|
+
});
|
|
4265
|
+
};
|
|
4266
|
+
|
|
4267
|
+
|
|
3961
4268
|
/***/ }),
|
|
3962
4269
|
|
|
3963
4270
|
/***/ 190:
|
|
@@ -4785,7 +5092,13 @@ var insertHTML = function (html, vditor) {
|
|
|
4785
5092
|
vditor[vditor.currentMode].element.insertAdjacentHTML("beforeend", pasteElement.innerHTML);
|
|
4786
5093
|
}
|
|
4787
5094
|
else {
|
|
4788
|
-
|
|
5095
|
+
var liElement = (0,_hasClosest__WEBPACK_IMPORTED_MODULE_1__/* .hasClosestByMatchTag */ .lG)(range.startContainer, "LI");
|
|
5096
|
+
if (liElement && pasteElement.firstElementChild.tagName === "UL") {
|
|
5097
|
+
liElement.insertAdjacentHTML("afterend", pasteElement.firstElementChild.innerHTML);
|
|
5098
|
+
}
|
|
5099
|
+
else {
|
|
5100
|
+
blockElement.insertAdjacentHTML("afterend", pasteElement.innerHTML);
|
|
5101
|
+
}
|
|
4789
5102
|
}
|
|
4790
5103
|
setRangeByWbr(vditor[vditor.currentMode].element, range);
|
|
4791
5104
|
}
|
|
@@ -4969,6 +5282,8 @@ var DevTools = /** @class */ (function () {
|
|
|
4969
5282
|
}());
|
|
4970
5283
|
|
|
4971
5284
|
|
|
5285
|
+
// EXTERNAL MODULE: ./src/ts/markdown/imageCaptionRender.ts
|
|
5286
|
+
var imageCaptionRender = __webpack_require__(161);
|
|
4972
5287
|
// EXTERNAL MODULE: ./src/ts/util/compatibility.ts
|
|
4973
5288
|
var compatibility = __webpack_require__(410);
|
|
4974
5289
|
;// CONCATENATED MODULE: ./src/ts/toolbar/setToolbar.ts
|
|
@@ -5123,6 +5438,8 @@ var mindmapRender = __webpack_require__(194);
|
|
|
5123
5438
|
var plantumlRender = __webpack_require__(229);
|
|
5124
5439
|
// EXTERNAL MODULE: ./src/ts/markdown/SMILESRender.ts
|
|
5125
5440
|
var SMILESRender = __webpack_require__(825);
|
|
5441
|
+
// EXTERNAL MODULE: ./src/ts/markdown/wavedromRender.ts
|
|
5442
|
+
var wavedromRender = __webpack_require__(497);
|
|
5126
5443
|
;// CONCATENATED MODULE: ./src/ts/util/processCode.ts
|
|
5127
5444
|
|
|
5128
5445
|
|
|
@@ -5136,6 +5453,7 @@ var SMILESRender = __webpack_require__(825);
|
|
|
5136
5453
|
|
|
5137
5454
|
|
|
5138
5455
|
|
|
5456
|
+
|
|
5139
5457
|
var processPasteCode = function (html, text, type) {
|
|
5140
5458
|
if (type === void 0) { type = "sv"; }
|
|
5141
5459
|
var tempElement = document.createElement("div");
|
|
@@ -5215,6 +5533,9 @@ var processCodeRender = function (previewPanel, vditor) {
|
|
|
5215
5533
|
else if (language === "graphviz") {
|
|
5216
5534
|
(0,graphvizRender/* graphvizRender */.v)(previewPanel, vditor.options.cdn);
|
|
5217
5535
|
}
|
|
5536
|
+
else if (language === "wavedrom") {
|
|
5537
|
+
(0,wavedromRender/* wavedromRender */.F)(previewPanel, vditor.options.cdn);
|
|
5538
|
+
}
|
|
5218
5539
|
else if (language === "math") {
|
|
5219
5540
|
(0,mathRender/* mathRender */.H)(previewPanel, { cdn: vditor.options.cdn, math: vditor.options.preview.math });
|
|
5220
5541
|
}
|
|
@@ -6539,12 +6860,14 @@ var highlightToolbarIR = function (vditor) {
|
|
|
6539
6860
|
;// CONCATENATED MODULE: ./src/ts/wysiwyg/afterRenderEvent.ts
|
|
6540
6861
|
|
|
6541
6862
|
|
|
6863
|
+
|
|
6542
6864
|
var afterRenderEvent = function (vditor, options) {
|
|
6543
6865
|
if (options === void 0) { options = {
|
|
6544
6866
|
enableAddUndoStack: true,
|
|
6545
6867
|
enableHint: false,
|
|
6546
6868
|
enableInput: true,
|
|
6547
6869
|
}; }
|
|
6870
|
+
(0,imageCaptionRender/* renderImageCaptions */.W)(vditor.wysiwyg.element, "wysiwyg", vditor.options.preview.markdown.imageCaption);
|
|
6548
6871
|
if (options.enableHint) {
|
|
6549
6872
|
vditor.hint.render(vditor);
|
|
6550
6873
|
}
|
|
@@ -6703,6 +7026,84 @@ var modifyPre = function (vditor, range) {
|
|
|
6703
7026
|
|
|
6704
7027
|
|
|
6705
7028
|
|
|
7029
|
+
var createBlockElement = function (element, tagName) {
|
|
7030
|
+
var blockElement = element.ownerDocument.createElement(tagName);
|
|
7031
|
+
blockElement.setAttribute("data-block", "0");
|
|
7032
|
+
return blockElement;
|
|
7033
|
+
};
|
|
7034
|
+
var replaceBlockElement = function (element, tagName) {
|
|
7035
|
+
var blockElement = createBlockElement(element, tagName);
|
|
7036
|
+
while (element.firstChild) {
|
|
7037
|
+
blockElement.appendChild(element.firstChild);
|
|
7038
|
+
}
|
|
7039
|
+
element.replaceWith(blockElement);
|
|
7040
|
+
return blockElement;
|
|
7041
|
+
};
|
|
7042
|
+
var isListItemBlock = function (node) {
|
|
7043
|
+
if (node.nodeType !== 1) {
|
|
7044
|
+
return false;
|
|
7045
|
+
}
|
|
7046
|
+
var element = node;
|
|
7047
|
+
return element.getAttribute("data-block") === "0" || element.tagName === "INPUT";
|
|
7048
|
+
};
|
|
7049
|
+
var getListItemInlineNodes = function (itemElement, wbrElement) {
|
|
7050
|
+
var _a, _b;
|
|
7051
|
+
var anchorNode = wbrElement;
|
|
7052
|
+
while (anchorNode.parentNode && !anchorNode.parentNode.isSameNode(itemElement)) {
|
|
7053
|
+
anchorNode = anchorNode.parentNode;
|
|
7054
|
+
}
|
|
7055
|
+
if (!((_a = anchorNode.parentNode) === null || _a === void 0 ? void 0 : _a.isSameNode(itemElement))) {
|
|
7056
|
+
return [];
|
|
7057
|
+
}
|
|
7058
|
+
var firstNode = anchorNode;
|
|
7059
|
+
var lastNode = anchorNode;
|
|
7060
|
+
while (firstNode.previousSibling && !isListItemBlock(firstNode.previousSibling)) {
|
|
7061
|
+
firstNode = firstNode.previousSibling;
|
|
7062
|
+
}
|
|
7063
|
+
while (lastNode.nextSibling && !isListItemBlock(lastNode.nextSibling)) {
|
|
7064
|
+
lastNode = lastNode.nextSibling;
|
|
7065
|
+
}
|
|
7066
|
+
// 任务列表的复选框和正文之间需要保留分隔空格。
|
|
7067
|
+
if (firstNode.previousSibling instanceof HTMLInputElement && firstNode.nodeType === 3) {
|
|
7068
|
+
var leadingWhitespace = (_b = firstNode.textContent.match(/^\s+/)) === null || _b === void 0 ? void 0 : _b[0];
|
|
7069
|
+
if (leadingWhitespace) {
|
|
7070
|
+
firstNode.textContent = firstNode.textContent.substring(leadingWhitespace.length);
|
|
7071
|
+
itemElement.insertBefore(itemElement.ownerDocument.createTextNode(leadingWhitespace), firstNode);
|
|
7072
|
+
}
|
|
7073
|
+
}
|
|
7074
|
+
var nodes = [];
|
|
7075
|
+
var node = firstNode;
|
|
7076
|
+
while (node) {
|
|
7077
|
+
nodes.push(node);
|
|
7078
|
+
if (node.isSameNode(lastNode)) {
|
|
7079
|
+
break;
|
|
7080
|
+
}
|
|
7081
|
+
node = node.nextSibling;
|
|
7082
|
+
}
|
|
7083
|
+
return nodes;
|
|
7084
|
+
};
|
|
7085
|
+
var setListItemHeading = function (itemElement, wbrElement, tagName) {
|
|
7086
|
+
var inlineNodes = getListItemInlineNodes(itemElement, wbrElement);
|
|
7087
|
+
if (inlineNodes.length === 0) {
|
|
7088
|
+
return false;
|
|
7089
|
+
}
|
|
7090
|
+
var headingElement = createBlockElement(itemElement, tagName);
|
|
7091
|
+
itemElement.insertBefore(headingElement, inlineNodes[0]);
|
|
7092
|
+
inlineNodes.forEach(function (node) {
|
|
7093
|
+
headingElement.appendChild(node);
|
|
7094
|
+
});
|
|
7095
|
+
if (headingElement.innerHTML.trim() === "<wbr>") {
|
|
7096
|
+
headingElement.appendChild(itemElement.ownerDocument.createElement("br"));
|
|
7097
|
+
}
|
|
7098
|
+
return true;
|
|
7099
|
+
};
|
|
7100
|
+
var unwrapBlockElement = function (element) {
|
|
7101
|
+
var fragment = element.ownerDocument.createDocumentFragment();
|
|
7102
|
+
while (element.firstChild) {
|
|
7103
|
+
fragment.appendChild(element.firstChild);
|
|
7104
|
+
}
|
|
7105
|
+
element.replaceWith(fragment);
|
|
7106
|
+
};
|
|
6706
7107
|
var setHeading = function (vditor, tagName) {
|
|
6707
7108
|
var range = (0,selection/* getEditorRange */.zh)(vditor);
|
|
6708
7109
|
var blockElement = (0,hasClosest/* hasClosestBlock */.F9)(range.startContainer);
|
|
@@ -6713,23 +7114,36 @@ var setHeading = function (vditor, tagName) {
|
|
|
6713
7114
|
blockElement = vditor.wysiwyg.element;
|
|
6714
7115
|
}
|
|
6715
7116
|
if (blockElement && !blockElement.classList.contains("vditor-wysiwyg__block")) {
|
|
6716
|
-
|
|
7117
|
+
var wbrElement = document.createElement("wbr");
|
|
7118
|
+
range.insertNode(wbrElement);
|
|
6717
7119
|
// Firefox 需要 trim https://github.com/Vanessa219/vditor/issues/207
|
|
6718
7120
|
if (blockElement.innerHTML.trim() === "<wbr>") {
|
|
6719
7121
|
// Firefox 光标对不齐 https://github.com/Vanessa219/vditor/issues/199 1
|
|
6720
7122
|
blockElement.innerHTML = "<wbr><br>";
|
|
6721
7123
|
}
|
|
6722
|
-
|
|
6723
|
-
|
|
7124
|
+
var itemElement = (0,hasClosest/* hasClosestByMatchTag */.lG)(wbrElement, "LI");
|
|
7125
|
+
if (itemElement && blockElement.isSameNode(itemElement.parentElement)) {
|
|
7126
|
+
if (!setListItemHeading(itemElement, wbrElement, tagName)) {
|
|
7127
|
+
wbrElement.remove();
|
|
7128
|
+
return;
|
|
7129
|
+
}
|
|
7130
|
+
}
|
|
7131
|
+
else if (blockElement.tagName === "BLOCKQUOTE" || blockElement.classList.contains("vditor-reset")) {
|
|
7132
|
+
var headingElement = createBlockElement(blockElement, tagName);
|
|
7133
|
+
while (blockElement.firstChild) {
|
|
7134
|
+
headingElement.appendChild(blockElement.firstChild);
|
|
7135
|
+
}
|
|
7136
|
+
blockElement.appendChild(headingElement);
|
|
6724
7137
|
}
|
|
6725
7138
|
else {
|
|
6726
|
-
|
|
7139
|
+
replaceBlockElement(blockElement, tagName);
|
|
6727
7140
|
}
|
|
6728
7141
|
(0,selection/* setRangeByWbr */.ib)(vditor.wysiwyg.element, range);
|
|
6729
7142
|
renderToc(vditor);
|
|
6730
7143
|
}
|
|
6731
7144
|
};
|
|
6732
7145
|
var removeHeading = function (vditor) {
|
|
7146
|
+
var _a, _b;
|
|
6733
7147
|
var range = getSelection().getRangeAt(0);
|
|
6734
7148
|
var blockElement = (0,hasClosest/* hasClosestBlock */.F9)(range.startContainer);
|
|
6735
7149
|
if (!blockElement) {
|
|
@@ -6737,8 +7151,15 @@ var removeHeading = function (vditor) {
|
|
|
6737
7151
|
}
|
|
6738
7152
|
if (blockElement) {
|
|
6739
7153
|
range.insertNode(document.createElement("wbr"));
|
|
6740
|
-
blockElement.
|
|
7154
|
+
if (((_a = blockElement.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === "LI" &&
|
|
7155
|
+
((_b = blockElement.parentElement.parentElement) === null || _b === void 0 ? void 0 : _b.getAttribute("data-tight")) === "true") {
|
|
7156
|
+
unwrapBlockElement(blockElement);
|
|
7157
|
+
}
|
|
7158
|
+
else {
|
|
7159
|
+
replaceBlockElement(blockElement, "p");
|
|
7160
|
+
}
|
|
6741
7161
|
(0,selection/* setRangeByWbr */.ib)(vditor.wysiwyg.element, range);
|
|
7162
|
+
renderToc(vditor);
|
|
6742
7163
|
}
|
|
6743
7164
|
vditor.wysiwyg.popover.style.display = "none";
|
|
6744
7165
|
};
|
|
@@ -7107,6 +7528,7 @@ var removeBlockElement = function (vditor, event) {
|
|
|
7107
7528
|
|
|
7108
7529
|
|
|
7109
7530
|
|
|
7531
|
+
|
|
7110
7532
|
var highlightToolbarWYSIWYG = function (vditor) {
|
|
7111
7533
|
clearTimeout(vditor.wysiwyg.hlToolbarTimeoutId);
|
|
7112
7534
|
vditor.wysiwyg.hlToolbarTimeoutId = window.setTimeout(function () {
|
|
@@ -7132,6 +7554,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7132
7554
|
if (footnotesElement) {
|
|
7133
7555
|
vditor.wysiwyg.popover.innerHTML = "";
|
|
7134
7556
|
genClose(footnotesElement, vditor);
|
|
7557
|
+
customWysiwygToolbar(vditor, "footnotes-block");
|
|
7135
7558
|
setPopoverPosition(vditor, footnotesElement);
|
|
7136
7559
|
return;
|
|
7137
7560
|
}
|
|
@@ -7254,6 +7677,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7254
7677
|
if (tocElement) {
|
|
7255
7678
|
vditor.wysiwyg.popover.innerHTML = "";
|
|
7256
7679
|
genClose(tocElement, vditor);
|
|
7680
|
+
customWysiwygToolbar(vditor, "vditor-toc");
|
|
7257
7681
|
setPopoverPosition(vditor, tocElement);
|
|
7258
7682
|
return;
|
|
7259
7683
|
}
|
|
@@ -7264,6 +7688,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7264
7688
|
genUp(range, blockquoteElement, vditor);
|
|
7265
7689
|
genDown(range, blockquoteElement, vditor);
|
|
7266
7690
|
genClose(blockquoteElement, vditor);
|
|
7691
|
+
customWysiwygToolbar(vditor, "blockquote");
|
|
7267
7692
|
setPopoverPosition(vditor, blockquoteElement);
|
|
7268
7693
|
}
|
|
7269
7694
|
// list item popover
|
|
@@ -7272,6 +7697,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7272
7697
|
genUp(range, liElement, vditor);
|
|
7273
7698
|
genDown(range, liElement, vditor);
|
|
7274
7699
|
genClose(liElement, vditor);
|
|
7700
|
+
customWysiwygToolbar(vditor, "li");
|
|
7275
7701
|
setPopoverPosition(vditor, liElement);
|
|
7276
7702
|
}
|
|
7277
7703
|
// table popover
|
|
@@ -7586,6 +8012,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7586
8012
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7587
8013
|
vditor.wysiwyg.popover.insertAdjacentHTML("beforeend", " x ");
|
|
7588
8014
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap);
|
|
8015
|
+
customWysiwygToolbar(vditor, "table");
|
|
7589
8016
|
setPopoverPosition(vditor, tableElement);
|
|
7590
8017
|
}
|
|
7591
8018
|
// link ref popover
|
|
@@ -7629,6 +8056,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7629
8056
|
};
|
|
7630
8057
|
genClose(footnotesRefElement, vditor);
|
|
7631
8058
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8059
|
+
customWysiwygToolbar(vditor, "footnotes-ref");
|
|
7632
8060
|
setPopoverPosition(vditor, footnotesRefElement);
|
|
7633
8061
|
}
|
|
7634
8062
|
// block popover: math-inline, math-block, html-block, html-inline, code-block, html-entity
|
|
@@ -7721,6 +8149,10 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7721
8149
|
event.preventDefault();
|
|
7722
8150
|
};
|
|
7723
8151
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", languageWrap);
|
|
8152
|
+
customWysiwygToolbar(vditor, "code-block");
|
|
8153
|
+
}
|
|
8154
|
+
else {
|
|
8155
|
+
customWysiwygToolbar(vditor, "block");
|
|
7724
8156
|
}
|
|
7725
8157
|
setPopoverPosition(vditor, blockRenderElement);
|
|
7726
8158
|
}
|
|
@@ -7759,6 +8191,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7759
8191
|
genDown(range, headingElement, vditor);
|
|
7760
8192
|
genClose(headingElement, vditor);
|
|
7761
8193
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8194
|
+
customWysiwygToolbar(vditor, "heading");
|
|
7762
8195
|
setPopoverPosition(vditor, headingElement);
|
|
7763
8196
|
}
|
|
7764
8197
|
// a popover
|
|
@@ -7781,6 +8214,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7781
8214
|
genUp(range, blockElement, vditor);
|
|
7782
8215
|
genDown(range, blockElement, vditor);
|
|
7783
8216
|
genClose(blockElement, vditor);
|
|
8217
|
+
customWysiwygToolbar(vditor, "block");
|
|
7784
8218
|
setPopoverPosition(vditor, blockElement);
|
|
7785
8219
|
}
|
|
7786
8220
|
else {
|
|
@@ -7878,6 +8312,7 @@ var genLinkRefPopover = function (vditor, linkRefElement, range) {
|
|
|
7878
8312
|
genClose(linkRefElement, vditor);
|
|
7879
8313
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7880
8314
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap);
|
|
8315
|
+
customWysiwygToolbar(vditor, "link-ref");
|
|
7881
8316
|
setPopoverPosition(vditor, linkRefElement);
|
|
7882
8317
|
};
|
|
7883
8318
|
var genUp = function (range, element, vditor) {
|
|
@@ -8051,6 +8486,7 @@ var genAPopover = function (vditor, aElement, range) {
|
|
|
8051
8486
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8052
8487
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap);
|
|
8053
8488
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap);
|
|
8489
|
+
customWysiwygToolbar(vditor, "a");
|
|
8054
8490
|
setPopoverPosition(vditor, aElement);
|
|
8055
8491
|
};
|
|
8056
8492
|
var genImagePopover = function (event, vditor) {
|
|
@@ -8060,6 +8496,7 @@ var genImagePopover = function (event, vditor) {
|
|
|
8060
8496
|
imgElement.setAttribute("src", inputElement.value);
|
|
8061
8497
|
imgElement.setAttribute("alt", alt.value);
|
|
8062
8498
|
imgElement.setAttribute("title", title.value);
|
|
8499
|
+
(0,imageCaptionRender/* renderImageCaptions */.W)(vditor.wysiwyg.element, "wysiwyg", vditor.options.preview.markdown.imageCaption);
|
|
8063
8500
|
if (typeof vditor.options.input === "function") {
|
|
8064
8501
|
vditor.options.input(getMarkdown(vditor));
|
|
8065
8502
|
}
|
|
@@ -8111,6 +8548,7 @@ var genImagePopover = function (event, vditor) {
|
|
|
8111
8548
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8112
8549
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", altWrap);
|
|
8113
8550
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", titleWrap);
|
|
8551
|
+
customWysiwygToolbar(vditor, "image");
|
|
8114
8552
|
setPopoverPosition(vditor, imgElement);
|
|
8115
8553
|
};
|
|
8116
8554
|
var focusToElement = function (event, range) {
|
|
@@ -8123,6 +8561,11 @@ var focusToElement = function (event, range) {
|
|
|
8123
8561
|
return true;
|
|
8124
8562
|
}
|
|
8125
8563
|
};
|
|
8564
|
+
var customWysiwygToolbar = function (vditor, type) {
|
|
8565
|
+
if (vditor.options.customWysiwygToolbar) {
|
|
8566
|
+
vditor.options.customWysiwygToolbar(type, vditor.wysiwyg.popover);
|
|
8567
|
+
}
|
|
8568
|
+
};
|
|
8126
8569
|
|
|
8127
8570
|
;// CONCATENATED MODULE: ./src/ts/util/highlightToolbar.ts
|
|
8128
8571
|
|
|
@@ -9609,6 +10052,7 @@ var input_input = function (vditor, range, event) {
|
|
|
9609
10052
|
}
|
|
9610
10053
|
var isWYSIWYGElement = blockElement.isEqualNode(vditor.wysiwyg.element);
|
|
9611
10054
|
var footnoteElement = (0,hasClosest/* hasClosestByAttribute */.a1)(blockElement, "data-type", "footnotes-block");
|
|
10055
|
+
var calloutElement = (0,hasClosest/* hasClosestByAttribute */.a1)(range.startContainer, "data-type", "callout");
|
|
9612
10056
|
if (!isWYSIWYGElement) {
|
|
9613
10057
|
// 列表需要到最顶层
|
|
9614
10058
|
var topListElement = (0,hasClosest/* getTopList */.O9)(range.startContainer);
|
|
@@ -9626,6 +10070,9 @@ var input_input = function (vditor, range, event) {
|
|
|
9626
10070
|
if (footnoteElement) {
|
|
9627
10071
|
blockElement = footnoteElement;
|
|
9628
10072
|
}
|
|
10073
|
+
if (calloutElement) {
|
|
10074
|
+
blockElement = calloutElement;
|
|
10075
|
+
}
|
|
9629
10076
|
html_1 = blockElement.outerHTML;
|
|
9630
10077
|
if (blockElement.tagName === "UL" || blockElement.tagName === "OL") {
|
|
9631
10078
|
// 如果为列表的话,需要把上下的列表都重绘
|
|
@@ -9817,7 +10264,7 @@ var fixCJKPosition = function (range, vditor, event) {
|
|
|
9817
10264
|
if (pLiElement && (0,selection/* getSelectPosition */.im)(pLiElement, vditor[vditor.currentMode].element, range).start === 0) {
|
|
9818
10265
|
// https://github.com/Vanessa219/vditor/issues/1289 WKWebView切换输入法产生六分之一空格,造成光标错位
|
|
9819
10266
|
if (pLiElement.nodeValue) {
|
|
9820
|
-
pLiElement.nodeValue = pLiElement.nodeValue.replace(/\u2006/g,
|
|
10267
|
+
pLiElement.nodeValue = pLiElement.nodeValue.replace(/\u2006/g, "");
|
|
9821
10268
|
}
|
|
9822
10269
|
var zwspNode = document.createTextNode(constants/* Constants.ZWSP */.g.ZWSP);
|
|
9823
10270
|
range.insertNode(zwspNode);
|
|
@@ -10199,8 +10646,39 @@ var execAfterRender = function (vditor, options) {
|
|
|
10199
10646
|
processAfterRender(vditor, options);
|
|
10200
10647
|
}
|
|
10201
10648
|
};
|
|
10649
|
+
var isEmptyListItem = function (liElement) {
|
|
10650
|
+
if (liElement.textContent.split(constants/* Constants.ZWSP */.g.ZWSP).join("").trim() !== "") {
|
|
10651
|
+
return false;
|
|
10652
|
+
}
|
|
10653
|
+
return !liElement.querySelector([
|
|
10654
|
+
"audio", "canvas", "embed", "hr", "iframe", "img", "object", "ol", "pre", "svg", "table", "ul", "video",
|
|
10655
|
+
"input:not([type='checkbox'])",
|
|
10656
|
+
].join(", "));
|
|
10657
|
+
};
|
|
10658
|
+
var exitEmptyListItem = function (liElement) {
|
|
10659
|
+
var listElement = liElement.parentElement;
|
|
10660
|
+
var listParent = listElement.parentElement;
|
|
10661
|
+
var paragraphElement = document.createElement("p");
|
|
10662
|
+
paragraphElement.setAttribute("data-block", "0");
|
|
10663
|
+
paragraphElement.innerHTML = "<wbr>";
|
|
10664
|
+
var trailingListElement;
|
|
10665
|
+
if (liElement.nextElementSibling) {
|
|
10666
|
+
trailingListElement = listElement.cloneNode(false);
|
|
10667
|
+
while (liElement.nextElementSibling) {
|
|
10668
|
+
trailingListElement.appendChild(liElement.nextElementSibling);
|
|
10669
|
+
}
|
|
10670
|
+
listParent.insertBefore(trailingListElement, listElement.nextSibling);
|
|
10671
|
+
}
|
|
10672
|
+
liElement.remove();
|
|
10673
|
+
if (listElement.childElementCount === 0) {
|
|
10674
|
+
listParent.replaceChild(paragraphElement, listElement);
|
|
10675
|
+
}
|
|
10676
|
+
else {
|
|
10677
|
+
listParent.insertBefore(paragraphElement, trailingListElement || listElement.nextSibling);
|
|
10678
|
+
}
|
|
10679
|
+
return paragraphElement;
|
|
10680
|
+
};
|
|
10202
10681
|
var fixList = function (range, vditor, pElement, event) {
|
|
10203
|
-
var _a;
|
|
10204
10682
|
var startContainer = range.startContainer;
|
|
10205
10683
|
var liElement = (0,hasClosest/* hasClosestByMatchTag */.lG)(startContainer, "LI");
|
|
10206
10684
|
if (liElement) {
|
|
@@ -10217,6 +10695,26 @@ var fixList = function (range, vditor, pElement, event) {
|
|
|
10217
10695
|
event.preventDefault();
|
|
10218
10696
|
return true;
|
|
10219
10697
|
}
|
|
10698
|
+
// 嵌套列表末尾的空列表项回车后转为父列表项中的段落
|
|
10699
|
+
// https://github.com/Vanessa219/vditor/issues/939
|
|
10700
|
+
if (!(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Enter" && range.collapsed &&
|
|
10701
|
+
!liElement.nextElementSibling && liElement.parentElement.parentElement.tagName === "LI" &&
|
|
10702
|
+
isEmptyListItem(liElement)) {
|
|
10703
|
+
var paragraphElement = exitEmptyListItem(liElement);
|
|
10704
|
+
(0,selection/* setRangeByWbr */.ib)(paragraphElement, range);
|
|
10705
|
+
execAfterRender(vditor);
|
|
10706
|
+
event.preventDefault();
|
|
10707
|
+
return true;
|
|
10708
|
+
}
|
|
10709
|
+
// 空列表项删除标记后退出当前列表
|
|
10710
|
+
if (!(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" &&
|
|
10711
|
+
liElement.textContent.trim().replace(constants/* Constants.ZWSP */.g.ZWSP, "") === "" && range.toString() === "") {
|
|
10712
|
+
var paragraphElement = exitEmptyListItem(liElement);
|
|
10713
|
+
(0,selection/* setRangeByWbr */.ib)(paragraphElement, range);
|
|
10714
|
+
execAfterRender(vditor);
|
|
10715
|
+
event.preventDefault();
|
|
10716
|
+
return true;
|
|
10717
|
+
}
|
|
10220
10718
|
if (!(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" &&
|
|
10221
10719
|
!liElement.previousElementSibling && range.toString() === "" &&
|
|
10222
10720
|
(0,selection/* getSelectPosition */.im)(liElement, vditor[vditor.currentMode].element, range).start === 0) {
|
|
@@ -10233,19 +10731,6 @@ var fixList = function (range, vditor, pElement, event) {
|
|
|
10233
10731
|
event.preventDefault();
|
|
10234
10732
|
return true;
|
|
10235
10733
|
}
|
|
10236
|
-
// 空列表删除后与上一级段落对齐
|
|
10237
|
-
if (!(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" &&
|
|
10238
|
-
liElement.textContent.trim().replace(constants/* Constants.ZWSP */.g.ZWSP, "") === "" &&
|
|
10239
|
-
range.toString() === "" && ((_a = liElement.previousElementSibling) === null || _a === void 0 ? void 0 : _a.tagName) === "LI") {
|
|
10240
|
-
liElement.previousElementSibling.insertAdjacentText("beforeend", "\n\n");
|
|
10241
|
-
range.selectNodeContents(liElement.previousElementSibling);
|
|
10242
|
-
range.collapse(false);
|
|
10243
|
-
liElement.remove();
|
|
10244
|
-
(0,selection/* setRangeByWbr */.ib)(vditor[vditor.currentMode].element, range);
|
|
10245
|
-
execAfterRender(vditor);
|
|
10246
|
-
event.preventDefault();
|
|
10247
|
-
return true;
|
|
10248
|
-
}
|
|
10249
10734
|
if (!(0,compatibility/* isCtrl */.yl)(event) && !event.altKey && event.key === "Tab") {
|
|
10250
10735
|
// 光标位于第一/零字符时,tab 用于列表的缩进
|
|
10251
10736
|
var isFirst = false;
|
|
@@ -10741,9 +11226,30 @@ var fixCodeBlock = function (vditor, event, codeRenderElement, range) {
|
|
|
10741
11226
|
return false;
|
|
10742
11227
|
};
|
|
10743
11228
|
var fixBlockquote = function (vditor, range, event, pElement) {
|
|
11229
|
+
var _a;
|
|
10744
11230
|
var startContainer = range.startContainer;
|
|
10745
11231
|
var blockquoteElement = (0,hasClosest/* hasClosestByMatchTag */.lG)(startContainer, "BLOCKQUOTE");
|
|
10746
11232
|
if (blockquoteElement && range.toString() === "") {
|
|
11233
|
+
if (pElement && event.key === "Enter" && !(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey &&
|
|
11234
|
+
pElement.parentElement.isSameNode(blockquoteElement) &&
|
|
11235
|
+
(0,hasClosest/* hasClosestByMatchTag */.lG)(blockquoteElement.parentElement, "LI") &&
|
|
11236
|
+
(range.collapsed || !range.cloneContents().firstElementChild) &&
|
|
11237
|
+
pElement.innerHTML.replace(constants/* Constants.ZWSP */.g.ZWSP, "") !== "\n" &&
|
|
11238
|
+
pElement.innerHTML.replace(constants/* Constants.ZWSP */.g.ZWSP, "") !== "") {
|
|
11239
|
+
// 列表内的引用由浏览器处理回车时会新建列表项 https://github.com/Vanessa219/vditor/issues/1925
|
|
11240
|
+
var trailingRange = range.cloneRange();
|
|
11241
|
+
trailingRange.setEnd(pElement, pElement.childNodes.length);
|
|
11242
|
+
var paragraphElement = document.createElement("p");
|
|
11243
|
+
paragraphElement.setAttribute("data-block", "0");
|
|
11244
|
+
paragraphElement.appendChild(trailingRange.extractContents());
|
|
11245
|
+
pElement.insertAdjacentElement("afterend", paragraphElement);
|
|
11246
|
+
range.setStart(paragraphElement, 0);
|
|
11247
|
+
range.collapse(true);
|
|
11248
|
+
(0,selection/* setSelectionFocus */.Hc)(range);
|
|
11249
|
+
execAfterRender(vditor);
|
|
11250
|
+
event.preventDefault();
|
|
11251
|
+
return true;
|
|
11252
|
+
}
|
|
10747
11253
|
if (event.key === "Backspace" && !(0,compatibility/* isCtrl */.yl)(event) && !event.shiftKey && !event.altKey &&
|
|
10748
11254
|
(0,selection/* getSelectPosition */.im)(blockquoteElement, vditor[vditor.currentMode].element, range).start === 0) {
|
|
10749
11255
|
// Backspace: 光标位于引用中的第零个字符,仅删除引用标签
|
|
@@ -10790,9 +11296,15 @@ var fixBlockquote = function (vditor, range, event, pElement) {
|
|
|
10790
11296
|
event.preventDefault();
|
|
10791
11297
|
return true;
|
|
10792
11298
|
}
|
|
10793
|
-
|
|
11299
|
+
var itemElement = blockquoteElement.parentElement.tagName === "LI" ? blockquoteElement.parentElement : null;
|
|
11300
|
+
var afterBlockElement = !blockquoteElement.nextElementSibling && ((_a = itemElement === null || itemElement === void 0 ? void 0 : itemElement.nextElementSibling) === null || _a === void 0 ? void 0 : _a.tagName) === "LI" ?
|
|
11301
|
+
itemElement : blockquoteElement;
|
|
11302
|
+
if (insertAfterBlock(vditor, event, range, blockquoteElement, afterBlockElement)) {
|
|
10794
11303
|
return true;
|
|
10795
11304
|
}
|
|
11305
|
+
if (event.key === "ArrowUp" && itemElement && !blockquoteElement.previousElementSibling) {
|
|
11306
|
+
return false;
|
|
11307
|
+
}
|
|
10796
11308
|
if (insertBeforeBlock(vditor, event, range, blockquoteElement, blockquoteElement)) {
|
|
10797
11309
|
return true;
|
|
10798
11310
|
}
|
|
@@ -11007,6 +11519,11 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11007
11519
|
if (!entering) {
|
|
11008
11520
|
return ["", Lute.WalkContinue];
|
|
11009
11521
|
}
|
|
11522
|
+
var parent = node.__internal_object__.Parent;
|
|
11523
|
+
// 链接引用的目标地址由定义节点提供,不在引用位置重复渲染
|
|
11524
|
+
if (parent.Type === 33 && parent.LinkType === 3) {
|
|
11525
|
+
return ["", Lute.WalkContinue];
|
|
11526
|
+
}
|
|
11010
11527
|
if (vditor.options.upload.renderLinkDest) {
|
|
11011
11528
|
return vditor.options.upload.renderLinkDest(vditor, node, entering);
|
|
11012
11529
|
}
|
|
@@ -11111,15 +11628,23 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11111
11628
|
processCodeRender(codeElement.parentElement.nextElementSibling, vditor);
|
|
11112
11629
|
}
|
|
11113
11630
|
}
|
|
11114
|
-
return [3 /*break*/,
|
|
11631
|
+
return [3 /*break*/, 10];
|
|
11115
11632
|
case 1:
|
|
11116
11633
|
if (!code) return [3 /*break*/, 2];
|
|
11117
11634
|
callback.pasteCode(code);
|
|
11118
|
-
return [3 /*break*/,
|
|
11635
|
+
return [3 /*break*/, 10];
|
|
11119
11636
|
case 2:
|
|
11120
|
-
if (!(textHTML.trim() !== "")) return [3 /*break*/,
|
|
11637
|
+
if (!(textHTML.trim() !== "")) return [3 /*break*/, 5];
|
|
11121
11638
|
tempElement = document.createElement("div");
|
|
11122
11639
|
tempElement.innerHTML = textHTML;
|
|
11640
|
+
if (!!vditor.options.upload.base64ToLink) return [3 /*break*/, 4];
|
|
11641
|
+
// word 复制的图文混合,替换为 link: <v:imagedata src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png" o:title="">
|
|
11642
|
+
return [4 /*yield*/, processVMLImage(vditor, tempElement, ("clipboardData" in event ? event.clipboardData : event.dataTransfer).getData("text/rtf"))];
|
|
11643
|
+
case 3:
|
|
11644
|
+
// word 复制的图文混合,替换为 link: <v:imagedata src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png" o:title="">
|
|
11645
|
+
_b.sent();
|
|
11646
|
+
_b.label = 4;
|
|
11647
|
+
case 4:
|
|
11123
11648
|
tempElement.querySelectorAll("[style]").forEach(function (e) {
|
|
11124
11649
|
e.removeAttribute("style");
|
|
11125
11650
|
});
|
|
@@ -11142,15 +11667,15 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11142
11667
|
processPaste(vditor, vditor.lute.HTML2Md(tempElement.innerHTML).trimRight());
|
|
11143
11668
|
}
|
|
11144
11669
|
vditor.outline.render(vditor);
|
|
11145
|
-
return [3 /*break*/,
|
|
11146
|
-
case
|
|
11147
|
-
if (!(files.length > 0)) return [3 /*break*/,
|
|
11148
|
-
if (!(vditor.options.upload.url || vditor.options.upload.handler)) return [3 /*break*/,
|
|
11670
|
+
return [3 /*break*/, 10];
|
|
11671
|
+
case 5:
|
|
11672
|
+
if (!(files.length > 0)) return [3 /*break*/, 9];
|
|
11673
|
+
if (!(vditor.options.upload.url || vditor.options.upload.handler)) return [3 /*break*/, 7];
|
|
11149
11674
|
return [4 /*yield*/, uploadFiles(vditor, files)];
|
|
11150
|
-
case
|
|
11675
|
+
case 6:
|
|
11151
11676
|
_b.sent();
|
|
11152
|
-
return [3 /*break*/,
|
|
11153
|
-
case
|
|
11677
|
+
return [3 /*break*/, 8];
|
|
11678
|
+
case 7:
|
|
11154
11679
|
fileReader_1 = new FileReader();
|
|
11155
11680
|
if ("clipboardData" in event) {
|
|
11156
11681
|
files = event.clipboardData.files;
|
|
@@ -11163,7 +11688,7 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11163
11688
|
if (file_1 && file_1.type.startsWith("image")) {
|
|
11164
11689
|
fileReader_1.readAsDataURL(file_1);
|
|
11165
11690
|
fileReader_1.onload = function () {
|
|
11166
|
-
var imgHTML =
|
|
11691
|
+
var imgHTML = "";
|
|
11167
11692
|
if (vditor.currentMode === "wysiwyg") {
|
|
11168
11693
|
imgHTML += "<img alt=\"".concat(file_1.name, "\" src=\"").concat(fileReader_1.result.toString(), "\">\n");
|
|
11169
11694
|
}
|
|
@@ -11173,9 +11698,9 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11173
11698
|
document.execCommand("insertHTML", false, imgHTML);
|
|
11174
11699
|
};
|
|
11175
11700
|
}
|
|
11176
|
-
_b.label =
|
|
11177
|
-
case
|
|
11178
|
-
case
|
|
11701
|
+
_b.label = 8;
|
|
11702
|
+
case 8: return [3 /*break*/, 10];
|
|
11703
|
+
case 9:
|
|
11179
11704
|
if (textPlain.trim() !== "" && files.length === 0) {
|
|
11180
11705
|
range = (0,selection/* getEditorRange */.zh)(vditor);
|
|
11181
11706
|
if (range.toString() !== "" && vditor.lute.IsValidLinkDest(textPlain)) {
|
|
@@ -11184,12 +11709,12 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11184
11709
|
if (vditor.currentMode === "ir") {
|
|
11185
11710
|
renderers.Md2VditorIRDOM = { renderLinkDest: renderLinkDest };
|
|
11186
11711
|
vditor.lute.SetJSRenderers({ renderers: renderers });
|
|
11187
|
-
(0,selection/* insertHTML */.oC)(vditor.lute.Md2VditorIRDOM(textPlain), vditor);
|
|
11712
|
+
(0,selection/* insertHTML */.oC)(Lute.Sanitize(vditor.lute.Md2VditorIRDOM(textPlain)), vditor);
|
|
11188
11713
|
}
|
|
11189
11714
|
else if (vditor.currentMode === "wysiwyg") {
|
|
11190
11715
|
renderers.Md2VditorDOM = { renderLinkDest: renderLinkDest };
|
|
11191
11716
|
vditor.lute.SetJSRenderers({ renderers: renderers });
|
|
11192
|
-
(0,selection/* insertHTML */.oC)(vditor.lute.Md2VditorDOM(textPlain), vditor);
|
|
11717
|
+
(0,selection/* insertHTML */.oC)(Lute.Sanitize(vditor.lute.Md2VditorDOM(textPlain)), vditor);
|
|
11193
11718
|
}
|
|
11194
11719
|
else {
|
|
11195
11720
|
renderers.Md2VditorSVDOM = { renderLinkDest: renderLinkDest };
|
|
@@ -11198,8 +11723,8 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11198
11723
|
}
|
|
11199
11724
|
vditor.outline.render(vditor);
|
|
11200
11725
|
}
|
|
11201
|
-
_b.label =
|
|
11202
|
-
case
|
|
11726
|
+
_b.label = 10;
|
|
11727
|
+
case 10:
|
|
11203
11728
|
if (vditor.currentMode !== "sv") {
|
|
11204
11729
|
blockElement = (0,hasClosest/* hasClosestBlock */.F9)((0,selection/* getEditorRange */.zh)(vditor).startContainer);
|
|
11205
11730
|
if (blockElement) {
|
|
@@ -11231,6 +11756,81 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11231
11756
|
}
|
|
11232
11757
|
});
|
|
11233
11758
|
}); };
|
|
11759
|
+
var processVMLImage = function (vditor, root, rtfData) { return fixBrowserBehavior_awaiter(void 0, void 0, void 0, function () {
|
|
11760
|
+
var regexPictureHeader, regexPicture, regImages, images, _i, regImages_1, image, imageType, shapes, i, img, newSrc, imgs, i, src, _a;
|
|
11761
|
+
return fixBrowserBehavior_generator(this, function (_b) {
|
|
11762
|
+
switch (_b.label) {
|
|
11763
|
+
case 0:
|
|
11764
|
+
if (!rtfData) {
|
|
11765
|
+
return [2 /*return*/];
|
|
11766
|
+
}
|
|
11767
|
+
regexPictureHeader = /{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/;
|
|
11768
|
+
regexPicture = new RegExp("(?:(" + regexPictureHeader.source + "))([\\da-fA-F\\s]+)\\}", "g");
|
|
11769
|
+
regImages = rtfData.match(regexPicture);
|
|
11770
|
+
images = [];
|
|
11771
|
+
if (regImages) {
|
|
11772
|
+
for (_i = 0, regImages_1 = regImages; _i < regImages_1.length; _i++) {
|
|
11773
|
+
image = regImages_1[_i];
|
|
11774
|
+
imageType = void 0;
|
|
11775
|
+
if (image.includes("\\pngblip")) {
|
|
11776
|
+
imageType = "image/png";
|
|
11777
|
+
}
|
|
11778
|
+
else if (image.includes("\\jpegblip")) {
|
|
11779
|
+
imageType = "image/jpeg";
|
|
11780
|
+
}
|
|
11781
|
+
if (imageType) {
|
|
11782
|
+
images.push({
|
|
11783
|
+
hex: image.replace(regexPictureHeader, "").replace(/[^\da-fA-F]/g, ""),
|
|
11784
|
+
type: imageType,
|
|
11785
|
+
});
|
|
11786
|
+
}
|
|
11787
|
+
}
|
|
11788
|
+
}
|
|
11789
|
+
shapes = [];
|
|
11790
|
+
walk(root, function (child) {
|
|
11791
|
+
if (child.tagName === "V:SHAPE") {
|
|
11792
|
+
walk(child, function (sub) {
|
|
11793
|
+
if (sub.tagName === "V:IMAGEDATA")
|
|
11794
|
+
shapes.push({ shape: child, img: sub });
|
|
11795
|
+
});
|
|
11796
|
+
return false;
|
|
11797
|
+
}
|
|
11798
|
+
});
|
|
11799
|
+
for (i = 0; i < shapes.length; i++) {
|
|
11800
|
+
img = document.createElement("img");
|
|
11801
|
+
newSrc = "data:" + images[i].type + ";base64," + btoa((images[i].hex.match(/\w{2}/g) || []).map(function (char) {
|
|
11802
|
+
return String.fromCharCode(parseInt(char, 16));
|
|
11803
|
+
}).join(""));
|
|
11804
|
+
img.src = newSrc;
|
|
11805
|
+
img.title = shapes[i].img.getAttribute("title");
|
|
11806
|
+
shapes[i].shape.parentNode.replaceChild(img, shapes[i].shape);
|
|
11807
|
+
}
|
|
11808
|
+
imgs = root.querySelectorAll("img");
|
|
11809
|
+
i = 0;
|
|
11810
|
+
_b.label = 1;
|
|
11811
|
+
case 1:
|
|
11812
|
+
if (!(i < imgs.length)) return [3 /*break*/, 4];
|
|
11813
|
+
src = imgs[i].src || "";
|
|
11814
|
+
if (!src) return [3 /*break*/, 3];
|
|
11815
|
+
_a = imgs[i];
|
|
11816
|
+
return [4 /*yield*/, vditor.options.upload.base64ToLink(src)];
|
|
11817
|
+
case 2:
|
|
11818
|
+
_a.src = _b.sent();
|
|
11819
|
+
_b.label = 3;
|
|
11820
|
+
case 3:
|
|
11821
|
+
i++;
|
|
11822
|
+
return [3 /*break*/, 1];
|
|
11823
|
+
case 4: return [2 /*return*/];
|
|
11824
|
+
}
|
|
11825
|
+
});
|
|
11826
|
+
}); };
|
|
11827
|
+
var walk = function (el, fn) {
|
|
11828
|
+
var goNext = fn(el);
|
|
11829
|
+
if (goNext !== false)
|
|
11830
|
+
for (var i = 0; i < el.children.length; i++) {
|
|
11831
|
+
walk(el.children[i], fn);
|
|
11832
|
+
}
|
|
11833
|
+
};
|
|
11234
11834
|
var templateObject_1;
|
|
11235
11835
|
|
|
11236
11836
|
;// CONCATENATED MODULE: ./src/ts/ir/process.ts
|
|
@@ -11243,6 +11843,7 @@ var templateObject_1;
|
|
|
11243
11843
|
|
|
11244
11844
|
|
|
11245
11845
|
|
|
11846
|
+
|
|
11246
11847
|
var processHint = function (vditor) {
|
|
11247
11848
|
var _a, _b;
|
|
11248
11849
|
vditor.hint.render(vditor);
|
|
@@ -11277,6 +11878,7 @@ var process_processAfterRender = function (vditor, options) {
|
|
|
11277
11878
|
enableHint: false,
|
|
11278
11879
|
enableInput: true,
|
|
11279
11880
|
}; }
|
|
11881
|
+
(0,imageCaptionRender/* renderImageCaptions */.W)(vditor.ir.element, "ir", vditor.options.preview.markdown.imageCaption);
|
|
11280
11882
|
if (options.enableHint) {
|
|
11281
11883
|
processHint(vditor);
|
|
11282
11884
|
}
|
|
@@ -11326,12 +11928,25 @@ var process_processHeading = function (vditor, value) {
|
|
|
11326
11928
|
var removeInline = function (range, vditor, type) {
|
|
11327
11929
|
var inlineElement = (0,hasClosest/* hasClosestByAttribute */.a1)(range.startContainer, "data-type", type);
|
|
11328
11930
|
if (inlineElement) {
|
|
11931
|
+
var keepSelection = !range.collapsed;
|
|
11329
11932
|
inlineElement.firstElementChild.remove();
|
|
11330
11933
|
inlineElement.lastElementChild.remove();
|
|
11934
|
+
if (keepSelection) {
|
|
11935
|
+
var endRange = range.cloneRange();
|
|
11936
|
+
endRange.collapse(false);
|
|
11937
|
+
endRange.insertNode(document.createElement("wbr"));
|
|
11938
|
+
}
|
|
11331
11939
|
range.insertNode(document.createElement("wbr"));
|
|
11332
11940
|
var tempElement = document.createElement("div");
|
|
11333
11941
|
tempElement.innerHTML = vditor.lute.SpinVditorIRDOM(inlineElement.outerHTML);
|
|
11334
11942
|
inlineElement.outerHTML = tempElement.firstElementChild.innerHTML.trim();
|
|
11943
|
+
if (keepSelection) {
|
|
11944
|
+
(0,selection/* setRangeByWbr */.ib)(vditor.ir.element, range);
|
|
11945
|
+
var endWbrElement = vditor.ir.element.querySelector("wbr");
|
|
11946
|
+
range.setEndBefore(endWbrElement);
|
|
11947
|
+
endWbrElement.remove();
|
|
11948
|
+
(0,selection/* setSelectionFocus */.Hc)(range);
|
|
11949
|
+
}
|
|
11335
11950
|
}
|
|
11336
11951
|
};
|
|
11337
11952
|
var process_processToolbar = function (vditor, actionBtn, prefix, suffix) {
|
|
@@ -11424,6 +12039,7 @@ var process_processToolbar = function (vditor, actionBtn, prefix, suffix) {
|
|
|
11424
12039
|
else if (commandName === "italic" || commandName === "bold" || commandName === "strike"
|
|
11425
12040
|
|| commandName === "inline-code" || commandName === "code" || commandName === "table") {
|
|
11426
12041
|
var html = void 0;
|
|
12042
|
+
var keepSelection = false;
|
|
11427
12043
|
if (range.toString() === "") {
|
|
11428
12044
|
html = "".concat(prefix, "<wbr>").concat(suffix);
|
|
11429
12045
|
}
|
|
@@ -11435,7 +12051,8 @@ var process_processToolbar = function (vditor, actionBtn, prefix, suffix) {
|
|
|
11435
12051
|
html = "".concat(prefix).concat(range.toString(), "<wbr>").concat(suffix);
|
|
11436
12052
|
}
|
|
11437
12053
|
else {
|
|
11438
|
-
html = "".concat(prefix).concat(range.toString()
|
|
12054
|
+
html = "".concat(prefix, "<wbr>").concat(range.toString(), "<wbr>").concat(suffix);
|
|
12055
|
+
keepSelection = true;
|
|
11439
12056
|
}
|
|
11440
12057
|
range.deleteContents();
|
|
11441
12058
|
}
|
|
@@ -11446,6 +12063,12 @@ var process_processToolbar = function (vditor, actionBtn, prefix, suffix) {
|
|
|
11446
12063
|
spanElement.innerHTML = html;
|
|
11447
12064
|
range.insertNode(spanElement);
|
|
11448
12065
|
input(vditor, range);
|
|
12066
|
+
if (keepSelection) {
|
|
12067
|
+
var endWbrElement = vditor.ir.element.querySelector("wbr");
|
|
12068
|
+
range.setEndBefore(endWbrElement);
|
|
12069
|
+
endWbrElement.remove();
|
|
12070
|
+
(0,selection/* setSelectionFocus */.Hc)(range);
|
|
12071
|
+
}
|
|
11449
12072
|
if (commandName === "table") {
|
|
11450
12073
|
range.selectNodeContents(getSelection().getRangeAt(0).startContainer.parentElement);
|
|
11451
12074
|
(0,selection/* setSelectionFocus */.Hc)(range);
|
|
@@ -11795,6 +12418,27 @@ var Hint = /** @class */ (function () {
|
|
|
11795
12418
|
|
|
11796
12419
|
|
|
11797
12420
|
|
|
12421
|
+
|
|
12422
|
+
var getHeadingMarker = function (headingElement) {
|
|
12423
|
+
return Array.from(headingElement.children).find(function (item) { return item.getAttribute("data-type") === "heading-marker"; });
|
|
12424
|
+
};
|
|
12425
|
+
var restoreHeadingMarker = function (sourceHeading, copiedHeading) {
|
|
12426
|
+
if (!sourceHeading || !copiedHeading || sourceHeading.tagName !== copiedHeading.tagName ||
|
|
12427
|
+
sourceHeading.getAttribute("data-marker") !== copiedHeading.getAttribute("data-marker") ||
|
|
12428
|
+
copiedHeading.textContent.trim() === "" || getHeadingMarker(copiedHeading)) {
|
|
12429
|
+
return;
|
|
12430
|
+
}
|
|
12431
|
+
var markerElement = getHeadingMarker(sourceHeading);
|
|
12432
|
+
if (!markerElement) {
|
|
12433
|
+
return;
|
|
12434
|
+
}
|
|
12435
|
+
if (sourceHeading.firstElementChild === markerElement) {
|
|
12436
|
+
copiedHeading.insertBefore(markerElement.cloneNode(true), copiedHeading.firstChild);
|
|
12437
|
+
}
|
|
12438
|
+
else if (sourceHeading.lastElementChild === markerElement) {
|
|
12439
|
+
copiedHeading.appendChild(markerElement.cloneNode(true));
|
|
12440
|
+
}
|
|
12441
|
+
};
|
|
11798
12442
|
var IR = /** @class */ (function () {
|
|
11799
12443
|
function IR(vditor) {
|
|
11800
12444
|
this.composingLock = false;
|
|
@@ -11821,6 +12465,9 @@ var IR = /** @class */ (function () {
|
|
|
11821
12465
|
event.preventDefault();
|
|
11822
12466
|
var tempElement = document.createElement("div");
|
|
11823
12467
|
tempElement.appendChild(range.cloneContents());
|
|
12468
|
+
var copiedHeadings = tempElement.querySelectorAll("h1, h2, h3, h4, h5, h6");
|
|
12469
|
+
restoreHeadingMarker((0,hasClosestByHeadings/* hasClosestByHeadings */.W)(range.startContainer), copiedHeadings.item(0));
|
|
12470
|
+
restoreHeadingMarker((0,hasClosestByHeadings/* hasClosestByHeadings */.W)(range.endContainer), copiedHeadings.item(copiedHeadings.length - 1));
|
|
11824
12471
|
event.clipboardData.setData("text/plain", vditor.lute.VditorIRDOM2Md(tempElement.innerHTML).trim());
|
|
11825
12472
|
event.clipboardData.setData("text/html", "");
|
|
11826
12473
|
};
|
|
@@ -12018,16 +12665,19 @@ var IR = /** @class */ (function () {
|
|
|
12018
12665
|
|
|
12019
12666
|
;// CONCATENATED MODULE: ./src/ts/markdown/getHTML.ts
|
|
12020
12667
|
|
|
12668
|
+
|
|
12021
12669
|
var getHTML = function (vditor) {
|
|
12670
|
+
var html = "";
|
|
12022
12671
|
if (vditor.currentMode === "sv") {
|
|
12023
|
-
|
|
12672
|
+
html = vditor.lute.Md2HTML(getMarkdown(vditor));
|
|
12024
12673
|
}
|
|
12025
12674
|
else if (vditor.currentMode === "wysiwyg") {
|
|
12026
|
-
|
|
12675
|
+
html = vditor.lute.VditorDOM2HTML(vditor.wysiwyg.element.innerHTML);
|
|
12027
12676
|
}
|
|
12028
12677
|
else if (vditor.currentMode === "ir") {
|
|
12029
|
-
|
|
12678
|
+
html = vditor.lute.VditorIRDOM2HTML(vditor.ir.element.innerHTML);
|
|
12030
12679
|
}
|
|
12680
|
+
return (0,imageCaptionRender/* renderImageCaptionHTML */.V)(html, vditor.options.preview.markdown.imageCaption);
|
|
12031
12681
|
};
|
|
12032
12682
|
|
|
12033
12683
|
// EXTERNAL MODULE: ./src/ts/markdown/setLute.ts
|
|
@@ -12102,6 +12752,8 @@ var mediaRender = __webpack_require__(280);
|
|
|
12102
12752
|
|
|
12103
12753
|
|
|
12104
12754
|
|
|
12755
|
+
|
|
12756
|
+
|
|
12105
12757
|
|
|
12106
12758
|
var Preview = /** @class */ (function () {
|
|
12107
12759
|
function Preview(vditor) {
|
|
@@ -12232,6 +12884,7 @@ var Preview = /** @class */ (function () {
|
|
|
12232
12884
|
}
|
|
12233
12885
|
if (value) {
|
|
12234
12886
|
this.previewElement.innerHTML = value;
|
|
12887
|
+
(0,imageCaptionRender/* renderImageCaptions */.W)(this.previewElement, "preview", vditor.options.preview.markdown.imageCaption);
|
|
12235
12888
|
return;
|
|
12236
12889
|
}
|
|
12237
12890
|
if (getMarkdown(vditor)
|
|
@@ -12283,6 +12936,7 @@ var Preview = /** @class */ (function () {
|
|
|
12283
12936
|
}, vditor.options.preview.delay);
|
|
12284
12937
|
};
|
|
12285
12938
|
Preview.prototype.afterRender = function (vditor, startTime) {
|
|
12939
|
+
(0,imageCaptionRender/* renderImageCaptions */.W)(this.previewElement, "preview", vditor.options.preview.markdown.imageCaption);
|
|
12286
12940
|
if (vditor.options.preview.parse) {
|
|
12287
12941
|
vditor.options.preview.parse(this.element);
|
|
12288
12942
|
}
|
|
@@ -12307,6 +12961,7 @@ var Preview = /** @class */ (function () {
|
|
|
12307
12961
|
(0,SMILESRender/* SMILESRender */.J)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
|
12308
12962
|
(0,flowchartRender/* flowchartRender */.P)(vditor.preview.previewElement, vditor.options.cdn);
|
|
12309
12963
|
(0,graphvizRender/* graphvizRender */.v)(vditor.preview.previewElement, vditor.options.cdn);
|
|
12964
|
+
(0,wavedromRender/* wavedromRender */.F)(vditor.preview.previewElement, vditor.options.cdn);
|
|
12310
12965
|
(0,chartRender/* chartRender */.p)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
|
12311
12966
|
(0,mindmapRender/* mindmapRender */.P)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
|
12312
12967
|
(0,plantumlRender/* plantumlRender */.B)(vditor.preview.previewElement, vditor.options.cdn);
|
|
@@ -13005,7 +13660,7 @@ var exportPDF = function (vditor) {
|
|
|
13005
13660
|
vditor.tip.show(window.VditorI18n.generate, 3800);
|
|
13006
13661
|
var iframe = document.querySelector("#vditorExportIframe");
|
|
13007
13662
|
iframe.contentDocument.open();
|
|
13008
|
-
iframe.contentDocument.write("<link rel=\"stylesheet\" href=\"".concat(vditor.options.cdn, "/dist/index.css\"/>\n<script src=\"").concat(vditor.options.cdn, "/dist/method.min.js\"></script>\n<div id=\"preview\" style=\"width: 800px\"></div>\n<script>\nwindow.addEventListener(\"message\", (e) => {\n if(!e.data) {\n return;\n }\n Vditor.preview(document.getElementById('preview'), e.data, {\n cdn: \"").concat(vditor.options.cdn, "\",\n markdown: {\n theme: ").concat(JSON.stringify(vditor.options.preview.theme), "\n },\n hljs: {\n style: \"").concat(vditor.options.preview.hljs.style, "\"\n }\n });\n setTimeout(() => {\n window.print();\n }, 3600);\n}, false);\n</script>"));
|
|
13663
|
+
iframe.contentDocument.write("<link rel=\"stylesheet\" href=\"".concat(vditor.options.cdn, "/dist/index.css\"/>\n<script src=\"").concat(vditor.options.cdn, "/dist/method.min.js\"></script>\n<div id=\"preview\" style=\"width: 800px\"></div>\n<script>\nwindow.addEventListener(\"message\", (e) => {\n if(!e.data) {\n return;\n }\n Vditor.preview(document.getElementById('preview'), e.data, {\n cdn: \"").concat(vditor.options.cdn, "\",\n markdown: {\n callout: ").concat(JSON.stringify(vditor.options.preview.markdown.callout), ",\n theme: ").concat(JSON.stringify(vditor.options.preview.theme), "\n },\n hljs: {\n style: \"").concat(vditor.options.preview.hljs.style, "\"\n }\n });\n setTimeout(() => {\n window.print();\n }, 3600);\n}, false);\n</script>"));
|
|
13009
13664
|
iframe.contentDocument.close();
|
|
13010
13665
|
setTimeout(function () {
|
|
13011
13666
|
iframe.contentWindow.postMessage(getMarkdown(vditor), "*");
|
|
@@ -13013,7 +13668,7 @@ var exportPDF = function (vditor) {
|
|
|
13013
13668
|
};
|
|
13014
13669
|
var exportHTML = function (vditor) {
|
|
13015
13670
|
var content = getHTML(vditor);
|
|
13016
|
-
var html = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"".concat(vditor.options.cdn, "/dist/index.css\"/>\n<script src=\"").concat(vditor.options.cdn, "/dist/js/i18n/").concat(vditor.options.lang, ".js\"></script>\n<script src=\"").concat(vditor.options.cdn, "/dist/method.min.js\"></script></head>\n<body><div class=\"vditor-reset\" id=\"preview\">").concat(content, "</div>\n<script>\n const previewElement = document.getElementById('preview')\n Vditor.setContentTheme('").concat(vditor.options.preview.theme.current, "', '").concat(vditor.options.preview.theme.path, "');\n Vditor.codeRender(previewElement);\n Vditor.highlightRender(").concat(JSON.stringify(vditor.options.preview.hljs), ", previewElement, '").concat(vditor.options.cdn, "');\n Vditor.mathRender(previewElement, {\n cdn: '").concat(vditor.options.cdn, "',\n math: ").concat(JSON.stringify(vditor.options.preview.math), ",\n });\n Vditor.mermaidRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.SMILESRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.markmapRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.flowchartRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.graphvizRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.chartRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.mindmapRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.abcRender(previewElement, '").concat(vditor.options.cdn, "');\n ").concat(vditor.options.preview.render.media.enable ? 'Vditor.mediaRender(previewElement);' : "", "\n Vditor.speechRender(previewElement);\n</script>\n<script src=\"").concat(vditor.options.cdn, "/dist/js/icons/").concat(vditor.options.icon, ".js\"></script></body></html>");
|
|
13671
|
+
var html = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"".concat(vditor.options.cdn, "/dist/index.css\"/>\n<script src=\"").concat(vditor.options.cdn, "/dist/js/i18n/").concat(vditor.options.lang, ".js\"></script>\n<script src=\"").concat(vditor.options.cdn, "/dist/method.min.js\"></script></head>\n<body><div class=\"vditor-reset\" id=\"preview\">").concat(content, "</div>\n<script>\n const previewElement = document.getElementById('preview')\n Vditor.setContentTheme('").concat(vditor.options.preview.theme.current, "', '").concat(vditor.options.preview.theme.path, "');\n Vditor.codeRender(previewElement);\n Vditor.highlightRender(").concat(JSON.stringify(vditor.options.preview.hljs), ", previewElement, '").concat(vditor.options.cdn, "');\n Vditor.mathRender(previewElement, {\n cdn: '").concat(vditor.options.cdn, "',\n math: ").concat(JSON.stringify(vditor.options.preview.math), ",\n });\n Vditor.mermaidRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.SMILESRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.markmapRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.flowchartRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.graphvizRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.wavedromRender(previewElement, '").concat(vditor.options.cdn, "');\n Vditor.chartRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.mindmapRender(previewElement, '").concat(vditor.options.cdn, "', '").concat(vditor.options.theme, "');\n Vditor.abcRender(previewElement, '").concat(vditor.options.cdn, "');\n ").concat(vditor.options.preview.render.media.enable ? 'Vditor.mediaRender(previewElement);' : "", "\n Vditor.speechRender(previewElement);\n</script>\n<script src=\"").concat(vditor.options.cdn, "/dist/js/icons/").concat(vditor.options.icon, ".js\"></script></body></html>");
|
|
13017
13672
|
download(vditor, html, content.substr(0, 10) + ".html");
|
|
13018
13673
|
};
|
|
13019
13674
|
|
|
@@ -14137,7 +14792,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
14137
14792
|
|
|
14138
14793
|
|
|
14139
14794
|
// EXTERNAL MODULE: ./node_modules/.pnpm/diff-match-patch@1.0.5/node_modules/diff-match-patch/index.js
|
|
14140
|
-
var diff_match_patch = __webpack_require__(
|
|
14795
|
+
var diff_match_patch = __webpack_require__(132);
|
|
14141
14796
|
;// CONCATENATED MODULE: ./src/ts/undo/index.ts
|
|
14142
14797
|
|
|
14143
14798
|
|
|
@@ -14671,7 +15326,7 @@ var Options = /** @class */ (function () {
|
|
|
14671
15326
|
hotkey: "⇧⌘H",
|
|
14672
15327
|
icon: '<svg><use xlink:href="#vditor-icon-line"></use></svg>',
|
|
14673
15328
|
name: "line",
|
|
14674
|
-
prefix: "
|
|
15329
|
+
prefix: "***",
|
|
14675
15330
|
tipPosition: "n",
|
|
14676
15331
|
},
|
|
14677
15332
|
{
|
|
@@ -15437,7 +16092,7 @@ var Vditor = /** @class */ (function (_super) {
|
|
|
15437
16092
|
var mergedOptions = getOptions.merge();
|
|
15438
16093
|
// 支持自定义国际化
|
|
15439
16094
|
if (!mergedOptions.i18n) {
|
|
15440
|
-
if (!["de_DE", "en_US", "
|
|
16095
|
+
if (!["de_DE", "en_US", "es_ES", "fr_FR", "ja_JP", "ko_KR", "pt_BR", "ru_RU", "sv_SE", "vi_VN", "zh_CN", "zh_TW"].includes(mergedOptions.lang)) {
|
|
15441
16096
|
throw new Error("options.lang error, see https://ld246.com/article/1549638745630#options");
|
|
15442
16097
|
}
|
|
15443
16098
|
else {
|
|
@@ -15844,6 +16499,7 @@ var Vditor = /** @class */ (function (_super) {
|
|
|
15844
16499
|
"".concat(mergedOptions.cdn, "/dist/js/lute/lute.min.js"), "vditorLuteScript").then(function () {
|
|
15845
16500
|
_this.vditor.lute = (0,setLute/* setLute */.X)({
|
|
15846
16501
|
autoSpace: _this.vditor.options.preview.markdown.autoSpace,
|
|
16502
|
+
callout: _this.vditor.options.preview.markdown.callout,
|
|
15847
16503
|
gfmAutoLink: _this.vditor.options.preview.markdown.gfmAutoLink,
|
|
15848
16504
|
codeBlockPreview: _this.vditor.options.preview.markdown
|
|
15849
16505
|
.codeBlockPreview,
|
|
@@ -15862,6 +16518,8 @@ var Vditor = /** @class */ (function (_super) {
|
|
|
15862
16518
|
paragraphBeginningSpace: _this.vditor.options.preview.markdown
|
|
15863
16519
|
.paragraphBeginningSpace,
|
|
15864
16520
|
sanitize: _this.vditor.options.preview.markdown.sanitize,
|
|
16521
|
+
sub: _this.vditor.options.preview.markdown.sub,
|
|
16522
|
+
sup: _this.vditor.options.preview.markdown.sup,
|
|
15865
16523
|
toc: _this.vditor.options.preview.markdown.toc,
|
|
15866
16524
|
});
|
|
15867
16525
|
_this.vditor.preview = new Preview(_this.vditor);
|