@8btc/mditor 0.0.30 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vditor v0.0.30 - A markdown editor written in TypeScript.
2
+ * Vditor v0.0.32 - A markdown editor written in TypeScript.
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -25,7 +25,7 @@
25
25
  *
26
26
  */
27
27
  /*!
28
- * Vditor v0.0.30 - A markdown editor written in TypeScript.
28
+ * Vditor v0.0.32 - A markdown editor written in TypeScript.
29
29
  *
30
30
  * MIT License
31
31
  *
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vditor v0.0.30 - A markdown editor written in TypeScript.
2
+ * Vditor v0.0.32 - A markdown editor written in TypeScript.
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -2923,7 +2923,7 @@ var Vditor = /** @class */ (function () {
2923
2923
  /* harmony export */ "H": () => (/* binding */ _VDITOR_VERSION),
2924
2924
  /* harmony export */ "g": () => (/* binding */ Constants)
2925
2925
  /* harmony export */ });
2926
- var _VDITOR_VERSION = "0.0.30";
2926
+ var _VDITOR_VERSION = "0.0.32";
2927
2927
 
2928
2928
  var Constants = /** @class */ (function () {
2929
2929
  function Constants() {
@@ -3225,7 +3225,7 @@ var Constants = /** @class */ (function () {
3225
3225
  "c#",
3226
3226
  "bat",
3227
3227
  ];
3228
- Constants.CDN = "https://webcdn.wujieai.com/vditor@".concat("0.0.30");
3228
+ Constants.CDN = "https://webcdn.wujieai.com/vditor@".concat("0.0.32");
3229
3229
  Constants.MARKDOWN_OPTIONS = {
3230
3230
  autoSpace: false,
3231
3231
  gfmAutoLink: true,
@@ -5560,15 +5560,15 @@ var mathRender = function (element, options) {
5560
5560
  next();
5561
5561
  };
5562
5562
  if (!window.MathJax) {
5563
- // 关闭自动 typeset、不指定 elements,避免处理整个 document。外部使用本包时无需配置 startup.elements
5563
+ // typeset 设为 true 以正常完成公式渲染;elements 限定为传入的容器,外部使用本包时仅处理该容器,不影响编辑器以外的公式。
5564
5564
  // 渲染时会将 startup.elements 临时设为传入的 element(当前预览/编辑容器),再 clear/updateDocument。
5565
5565
  window.MathJax = {
5566
5566
  loader: {
5567
5567
  paths: { mathjax: "".concat(options.cdn, "/dist/js/mathjax") },
5568
5568
  },
5569
5569
  startup: {
5570
- typeset: false,
5571
- elements: [],
5570
+ typeset: true,
5571
+ elements: element instanceof HTMLElement ? [element] : [],
5572
5572
  },
5573
5573
  tex: {
5574
5574
  inlineMath: [
@@ -5592,8 +5592,48 @@ var mathRender = function (element, options) {
5592
5592
  // https://github.com/Vanessa219/vditor/issues/1453
5593
5593
  Object.assign(window.MathJax, options.math.mathJaxOptions);
5594
5594
  }
5595
- // 循环加载会抛异常
5596
- (0,_util_addScript__WEBPACK_IMPORTED_MODULE_4__/* .addScriptSync */ .J)("".concat(options.cdn, "/dist/js/mathjax/tex-svg-full.js"), "protyleMathJaxScript");
5595
+ var mathJaxScriptUrl = "".concat(options.cdn, "/dist/js/mathjax/tex-svg-full.js");
5596
+ var mathJaxScriptId = "protyleMathJaxScript";
5597
+ // Qt WebView 中同步 XHR 被限制,addScriptSync 无法加载脚本,改为异步 addScript
5598
+ var isQtWebView_1 = typeof navigator !== "undefined" &&
5599
+ /Qt|QtWebEngine/i.test(navigator.userAgent);
5600
+ var runRenderChain = function () {
5601
+ window.MathJax.startup.promise.then(function () {
5602
+ if (window.MathJax.startup) {
5603
+ window.MathJax.startup.typeset = true;
5604
+ window.MathJax.startup.elements =
5605
+ element instanceof HTMLElement ? [element] : [];
5606
+ }
5607
+ var chains = [];
5608
+ var _loop_1 = function (i) {
5609
+ var mathElement = mathElements[i];
5610
+ if (!mathElement.parentElement.classList.contains("vditor-wysiwyg__pre") &&
5611
+ !mathElement.parentElement.classList.contains("vditor-ir__marker--pre") &&
5612
+ !mathElement.getAttribute("data-math") &&
5613
+ (0,_util_code160to32__WEBPACK_IMPORTED_MODULE_5__/* .code160to32 */ .X)(mathElement.textContent).trim()) {
5614
+ chains.push(function (next) {
5615
+ if (i === mathElements.length - 1) {
5616
+ renderMath_1(mathElement);
5617
+ }
5618
+ else {
5619
+ renderMath_1(mathElement, next);
5620
+ }
5621
+ });
5622
+ }
5623
+ };
5624
+ for (var i = 0; i < mathElements.length; i++) {
5625
+ _loop_1(i);
5626
+ }
5627
+ chainAsync_1(chains);
5628
+ });
5629
+ };
5630
+ if (isQtWebView_1) {
5631
+ (0,_util_addScript__WEBPACK_IMPORTED_MODULE_4__/* .addScript */ .G)(mathJaxScriptUrl, mathJaxScriptId).then(runRenderChain);
5632
+ }
5633
+ else {
5634
+ (0,_util_addScript__WEBPACK_IMPORTED_MODULE_4__/* .addScriptSync */ .J)(mathJaxScriptUrl, mathJaxScriptId);
5635
+ runRenderChain();
5636
+ }
5597
5637
  var renderMath_1 = function (mathElement, next) {
5598
5638
  var rawText = (0,_util_code160to32__WEBPACK_IMPORTED_MODULE_5__/* .code160to32 */ .X)(mathElement.textContent).trim();
5599
5639
  var math = normalizeTex(rawText);
@@ -5602,6 +5642,7 @@ var mathRender = function (element, options) {
5602
5642
  var mathOptions = window.MathJax.getMetricsFor(mathElement);
5603
5643
  mathOptions.display = inPreviewPre || mathElement.tagName === "DIV";
5604
5644
  window.MathJax.tex2svgPromise(math, mathOptions).then(function (node) {
5645
+ var _a, _b;
5605
5646
  mathElement.innerHTML = "";
5606
5647
  mathElement.setAttribute("data-math", math);
5607
5648
  mathElement.append(node);
@@ -5612,14 +5653,25 @@ var mathRender = function (element, options) {
5612
5653
  // 绑定自定义右键菜单(编辑区生效,预览区自动跳过)
5613
5654
  (0,_mathContextMenu__WEBPACK_IMPORTED_MODULE_2__/* .bindMathContextMenu */ .xX)(mathElement);
5614
5655
  // 限定 document 范围为当前容器后再 clear/updateDocument,避免处理整页导致编辑器外的 $...$ 被重新渲染;不调用会导致同一公式被渲染 2 次
5615
- var startup = window.MathJax.startup;
5616
- var prevElements = startup.elements;
5617
- if (element instanceof HTMLElement) {
5618
- startup.elements = [element];
5619
- }
5620
- startup.document.clear();
5621
- startup.document.updateDocument();
5622
- startup.elements = prevElements !== undefined ? prevElements : [];
5656
+ // Qt WebView 中 clear/updateDocument 可能清掉刚插入的节点或抛错,故跳过
5657
+ if (!isQtWebView_1) {
5658
+ try {
5659
+ var startup = window.MathJax.startup;
5660
+ var prevElements = startup.elements;
5661
+ if (element instanceof HTMLElement) {
5662
+ startup.elements = [element];
5663
+ }
5664
+ startup.document.clear();
5665
+ startup.document.updateDocument();
5666
+ startup.elements =
5667
+ prevElements !== undefined ? prevElements : [];
5668
+ }
5669
+ catch (_) {
5670
+ if (((_b = (_a = window.MathJax) === null || _a === void 0 ? void 0 : _a.startup) === null || _b === void 0 ? void 0 : _b.elements) !== undefined) {
5671
+ window.MathJax.startup.elements = [];
5672
+ }
5673
+ }
5674
+ }
5623
5675
  var errorTextElement = node.querySelector('[data-mml-node="merror"]');
5624
5676
  if (errorTextElement &&
5625
5677
  errorTextElement.textContent.trim() !== "") {
@@ -5632,34 +5684,6 @@ var mathRender = function (element, options) {
5632
5684
  }
5633
5685
  });
5634
5686
  };
5635
- window.MathJax.startup.promise.then(function () {
5636
- // 脚本加载后再次强制不自动 typeset、不指定 elements,避免组件内部或用户配置导致处理整页
5637
- if (window.MathJax.startup) {
5638
- window.MathJax.startup.typeset = false;
5639
- window.MathJax.startup.elements = [];
5640
- }
5641
- var chains = [];
5642
- var _loop_1 = function (i) {
5643
- var mathElement = mathElements[i];
5644
- if (!mathElement.parentElement.classList.contains("vditor-wysiwyg__pre") &&
5645
- !mathElement.parentElement.classList.contains("vditor-ir__marker--pre") &&
5646
- !mathElement.getAttribute("data-math") &&
5647
- (0,_util_code160to32__WEBPACK_IMPORTED_MODULE_5__/* .code160to32 */ .X)(mathElement.textContent).trim()) {
5648
- chains.push(function (next) {
5649
- if (i === mathElements.length - 1) {
5650
- renderMath_1(mathElement);
5651
- }
5652
- else {
5653
- renderMath_1(mathElement, next);
5654
- }
5655
- });
5656
- }
5657
- };
5658
- for (var i = 0; i < mathElements.length; i++) {
5659
- _loop_1(i);
5660
- }
5661
- chainAsync_1(chains);
5662
- });
5663
5687
  }
5664
5688
  };
5665
5689