parent
fcc1060c6b
commit
bb68f1f7bb
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var l in n)("object"==typeof exports?exports:e)[l]=n[l]}}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={},t={inline:["$","$"],display:["$$","$$"]},n=function(e,n){void 0===n&&(n=t);for(var l=e.querySelectorAll(".katex-mathml + .katex-html"),r=0;r<l.length;r++){var i=l[r];i.remove?i.remove(null):i.parentNode.removeChild(i)}for(var o=e.querySelectorAll(".katex-mathml"),a=0;a<o.length;a++){var d=o[a],f=d.querySelector("annotation");f&&(d.replaceWith?d.replaceWith(f):d.parentNode.replaceChild(f,d),f.innerHTML=n.inline[0]+f.innerHTML+n.inline[1])}for(var c=e.querySelectorAll(".katex-display annotation"),s=0;s<c.length;s++){var p=c[s];p.innerHTML=n.display[0]+p.innerHTML.substr(n.inline[0].length,p.innerHTML.length-n.inline[0].length-n.inline[1].length)+n.display[1]}return e};return document.addEventListener("copy",(function(e){var t=window.getSelection();if(!t.isCollapsed){var l=t.getRangeAt(0).cloneContents();if(l.querySelector(".katex-mathml")){for(var r=[],i=0;i<l.childNodes.length;i++)r.push(l.childNodes[i].outerHTML);e.clipboardData.setData("text/html",r.join("")),e.clipboardData.setData("text/plain",n(l).textContent),e.preventDefault()}}})),e=e.default}()}));
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,6 @@
|
|||
"@syncfusion/ej2-navigations": "^20.1.51",
|
||||
"compressing": "^1.5.1",
|
||||
"esbuild": "^0.14.34",
|
||||
"katex": "^0.15.6",
|
||||
"replace-in-file": "^6.3.2",
|
||||
"tree-model": "^1.0.7"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import renderMathInElement from "katex/contrib/auto-render";
|
||||
import { AddonBase, EditorMessage } from "./base";
|
||||
|
||||
class AddonEvents extends AddonBase {
|
||||
|
|
@ -392,28 +391,39 @@ class AddonEvents extends AddonBase {
|
|||
`;
|
||||
_window.document.body.append(style);
|
||||
|
||||
const texStyle = _window.document.createElement("link");
|
||||
texStyle.setAttribute("rel", "stylesheet");
|
||||
texStyle.setAttribute(
|
||||
"href",
|
||||
"chrome://Knowledge4Zotero/content/lib/css/katex.min.css"
|
||||
);
|
||||
_window.document.body.append(texStyle);
|
||||
if (!_window.document.getElementById("MathJax-script")) {
|
||||
const messageScript = _window.document.createElement("script");
|
||||
messageScript.innerHTML = `
|
||||
window.addEventListener('message', (e)=>{
|
||||
if(e.data.type === "renderLaTex"){
|
||||
console.log("renderLaTex");
|
||||
MathJax.typeset([window.document.getElementById("texView")])
|
||||
}
|
||||
}, false)
|
||||
MathJax = {
|
||||
tex: {
|
||||
inlineMath: [ // start/end delimiter pairs for in-line math
|
||||
['$', '$']
|
||||
],
|
||||
displayMath: [ // start/end delimiter pairs for display math
|
||||
['$$', '$$']
|
||||
],
|
||||
},
|
||||
startup: {
|
||||
typeset: false, // Perform initial typeset?
|
||||
}
|
||||
};
|
||||
`;
|
||||
_window.document.head.append(messageScript);
|
||||
|
||||
const copytexStyle = _window.document.createElement("link");
|
||||
copytexStyle.setAttribute("rel", "stylesheet");
|
||||
copytexStyle.setAttribute(
|
||||
"href",
|
||||
"chrome://Knowledge4Zotero/content/lib/css/copy-tex.css"
|
||||
);
|
||||
_window.document.body.append(copytexStyle);
|
||||
|
||||
const copytexScript = _window.document.createElement("script");
|
||||
copytexScript.setAttribute(
|
||||
"src",
|
||||
"chrome://Knowledge4Zotero/content/lib/js/copy-tex.min.js"
|
||||
);
|
||||
_window.document.head.append(copytexScript);
|
||||
const mathScript = _window.document.createElement("script");
|
||||
mathScript.setAttribute("id", "MathJax-script");
|
||||
mathScript.setAttribute(
|
||||
"src",
|
||||
"chrome://Knowledge4Zotero/content/lib/js/tex-svg.js"
|
||||
);
|
||||
_window.document.head.append(mathScript);
|
||||
}
|
||||
|
||||
message.content.editorInstance._knowledgeUIInitialized = true;
|
||||
|
||||
|
|
@ -524,18 +534,7 @@ class AddonEvents extends AddonBase {
|
|||
}
|
||||
Zotero.debug("Knowledge4Zotero: latex view on.");
|
||||
const viewNode = editorElement.cloneNode(true) as HTMLElement;
|
||||
renderMathInElement(viewNode, {
|
||||
// customised options
|
||||
// • auto-render specific keys, e.g.:
|
||||
delimiters: [
|
||||
{ left: "$$", right: "$$", display: true },
|
||||
{ left: "$", right: "$", display: false },
|
||||
{ left: "\\(", right: "\\)", display: false },
|
||||
{ left: "\\[", right: "\\]", display: true },
|
||||
],
|
||||
// • rendering keys, e.g.:
|
||||
throwOnError: false,
|
||||
});
|
||||
|
||||
this._Addon.views.switchEditorTexView(instance, true, viewNode);
|
||||
this._Addon.views.changeEditorButtonView(
|
||||
instance._iframeWindow.document.getElementById("knowledge-switchTex"),
|
||||
|
|
|
|||
|
|
@ -215,6 +215,7 @@ class AddonViews extends AddonBase {
|
|||
editorCore.after(viewNode);
|
||||
editorCore.style.visibility = "hidden";
|
||||
viewNode.scrollTop = editorCore.scrollTop;
|
||||
instance._iframeWindow.postMessage({ type: "renderLaTex" }, "*");
|
||||
} else {
|
||||
if (this._texNotes.includes(instance._item.id)) {
|
||||
this._texNotes.splice(this._texNotes.indexOf(instance._item.id), 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue