diff --git a/docs/src/js/arithmatex.js b/docs/src/js/arithmatex.js index 5177228c2..b7eb8d5e7 100644 --- a/docs/src/js/arithmatex.js +++ b/docs/src/js/arithmatex.js @@ -12,6 +12,7 @@ export default (className, mode) => { } } } else if (mode === 'mathjax') { + MathJax.typesetClear() MathJax.texReset() MathJax.typesetPromise() } diff --git a/docs/theme/assets/pymdownx-extras/extra-loader-GOdIbeGp.js b/docs/theme/assets/pymdownx-extras/extra-loader-q9CWAeV9.js similarity index 83% rename from docs/theme/assets/pymdownx-extras/extra-loader-GOdIbeGp.js rename to docs/theme/assets/pymdownx-extras/extra-loader-q9CWAeV9.js index fac6f3cf5..2770236b8 100644 --- a/docs/theme/assets/pymdownx-extras/extra-loader-GOdIbeGp.js +++ b/docs/theme/assets/pymdownx-extras/extra-loader-q9CWAeV9.js @@ -1,2 +1,2 @@ -function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}!function(){"use strict";function e(e,t){for(var n=0;n {\n\n // Custom element to encapsulate Mermaid content.\n class MermaidDiv extends HTMLElement {\n\n /**\n * Creates a special Mermaid div shadow DOM.\n * Works around issues of shared IDs.\n * @return {void}\n */\n constructor() {\n super()\n\n // Create the Shadow DOM and attach style\n const shadow = this.attachShadow({mode: \"open\"})\n const style = document.createElement(\"style\")\n style.textContent = `\n :host {\n display: block;\n line-height: initial;\n font-size: 16px;\n }\n div.diagram {\n margin: 0;\n overflow: visible;\n }`\n shadow.appendChild(style)\n }\n }\n\n if (typeof customElements.get(\"diagram-div\") === \"undefined\") {\n customElements.define(\"diagram-div\", MermaidDiv)\n }\n\n const getFromCode = parent => {\n // Handles
 text extraction.\n    let text = \"\"\n    for (let j = 0; j < parent.childNodes.length; j++) {\n      const subEl = parent.childNodes[j]\n      if (subEl.tagName.toLowerCase() === \"code\") {\n        for (let k = 0; k < subEl.childNodes.length; k++) {\n          const child = subEl.childNodes[k]\n          const whitespace = /^\\s*$/\n          if (child.nodeName === \"#text\" && !(whitespace.test(child.nodeValue))) {\n            text = child.nodeValue\n            break\n          }\n        }\n      }\n    }\n    return text\n  }\n\n  // We use this to determine if we want the dark or light theme.\n  // This is specific for our MkDocs Material environment.\n  // You should load your configs based on your own environment's needs.\n  const defaultConfig = {\n    startOnLoad: false,\n    theme: \"default\",\n    flowchart: {\n      htmlLabels: false\n    },\n    er: {\n      useMaxWidth: false\n    },\n    sequence: {\n      useMaxWidth: false,\n      noteFontWeight: \"14px\",\n      actorFontSize: \"14px\",\n      messageFontSize: \"16px\"\n    }\n  }\n  mermaid.mermaidAPI.globalReset()\n  // Non Material themes should just use \"default\"\n  let scheme = null\n  try {\n    scheme = document.querySelector(\"[data-md-color-scheme]\").getAttribute(\"data-md-color-scheme\")\n  } catch (err) {\n    scheme = \"default\"\n  }\n  const config = (typeof mermaidConfig === \"undefined\") ?\n    defaultConfig :\n    mermaidConfig[scheme] || (mermaidConfig.default || defaultConfig)\n  mermaid.initialize(config)\n\n  // Find all of our Mermaid sources and render them.\n  const blocks = document.querySelectorAll(`pre.${className}, diagram-div`)\n  const surrogate = document.querySelector(\"html body\")\n  for (let i = 0; i < blocks.length; i++) {\n    const block = blocks[i]\n    const parentEl = (block.tagName.toLowerCase() === \"diagram-div\") ?\n      block.shadowRoot.querySelector(`pre.${className}`) :\n      block\n\n    // Create a temporary element with the typeset and size we desire.\n    // Insert it at the end of our parent to render the SVG.\n    const temp = document.createElement(\"div\")\n    temp.style.visibility = \"hidden\"\n    temp.style.display = \"display\"\n    temp.style.padding = \"0\"\n    temp.style.margin = \"0\"\n    temp.style.lineHeight = \"initial\"\n    temp.style.fontSize = \"16px\"\n    surrogate.appendChild(temp)\n\n    try {\n      mermaid.mermaidAPI.render(\n        `_diagram_${i}`,\n        getFromCode(parentEl),\n        (content, fn) => {\n          const el = document.createElement(\"div\")\n          el.className = className\n          el.innerHTML = content\n          if (fn) {\n            fn(el)\n          }\n\n          // Insert the render where we want it and remove the original text source.\n          // Mermaid will clean up the temporary element.\n          const shadow = document.createElement(\"diagram-div\")\n          shadow.shadowRoot.appendChild(el)\n          block.parentNode.insertBefore(shadow, block)\n          parentEl.style.display = \"none\"\n          shadow.shadowRoot.appendChild(parentEl)\n          if (parentEl !== block) {\n            block.parentNode.removeChild(block)\n          }\n        },\n        temp\n      )\n    } catch (err) {} // eslint-disable-line no-empty\n\n    if (surrogate.contains(temp)) {\n      surrogate.removeChild(temp)\n    }\n  }\n}\n","import uml from \"./uml\"\nimport arithmatex from \"./arithmatex\"\n\n// Main function\n(() => {\n  let umlPromise = Promise.resolve()\n  let mathPromise = Promise.resolve()\n\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      if (mutation.type === \"attributes\") {\n        let scheme = mutation.target.getAttribute(\"data-md-color-scheme\")\n        if (!scheme) {\n          scheme = \"default\"\n        }\n        localStorage.setItem(\"data-md-color-scheme\", scheme)\n        if (typeof mermaid !== \"undefined\") {\n          uml(\"diagram\")\n        }\n      }\n    })\n  })\n\n  const main = () => {\n    observer.observe(document.querySelector(\"body\"), {attributeFilter: [\"data-md-color-scheme\"]})\n\n    if (typeof mermaid !== \"undefined\") {\n      umlPromise = umlPromise.then(() => {\n        uml(\"diagram\")\n      }).catch(err => {\n        console.log(`UML loading failed...${err}`) // eslint-disable-line no-console\n      })\n    }\n\n    if (typeof katex !== \"undefined\") {\n      mathPromise = mathPromise.then(() => {\n        arithmatex(\"arithmatex\", \"katex\")\n      }).catch(err => {\n        console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n      })\n    } else if (typeof MathJax !== \"undefined\" && 'typesetPromise' in MathJax) {\n      mathPromise = mathPromise.then(() => {\n        arithmatex(\"arithmatex\", \"mathjax\")\n      }).catch(err => {\n        console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n      })\n    }\n  }\n\n  if (window.document$) {\n    // Material specific hook\n    window.document$.subscribe(main)\n  } else {\n    // Normal non-Material specific hook\n    document.addEventListener(\"DOMContentLoaded\", main)\n  }\n})()\n","export default (className, mode) => {\n  if (mode === 'katex') {\n    const maths = document.querySelectorAll(`.${className}`)\n\n    for (let i = 0; i < maths.length; i++) {\n      const tex = maths[i].textContent || maths[i].innerText\n\n      if (tex.startsWith('\\\\(') && tex.endsWith('\\\\)')) {\n        katex.render(tex.slice(2, -2), maths[i], {'displayMode': false})\n      } else if (tex.startsWith('\\\\[') && tex.endsWith('\\\\]')) {\n        katex.render(tex.slice(2, -2), maths[i], {'displayMode': true})\n      }\n    }\n  } else if (mode === 'mathjax') {\n    MathJax.texReset()\n    MathJax.typesetPromise()\n  }\n}\n"],"names":["umlPromise","mathPromise","observer","main","uml","className","MermaidDiv","_HTMLElement","_inherits","_super","_this","_classCallCheck","shadow","call","this","attachShadow","mode","style","document","createElement","textContent","appendChild","_wrapNativeSuper","HTMLElement","customElements","get","define","defaultConfig","startOnLoad","theme","flowchart","htmlLabels","er","useMaxWidth","sequence","noteFontWeight","actorFontSize","messageFontSize","mermaid","mermaidAPI","globalReset","scheme","querySelector","getAttribute","err","config","mermaidConfig","initialize","blocks","querySelectorAll","concat","surrogate","_loop","block","i","parentEl","tagName","toLowerCase","shadowRoot","temp","visibility","display","padding","margin","lineHeight","fontSize","render","parent","text","j","childNodes","length","subEl","k","child","nodeName","test","nodeValue","getFromCode","content","fn","el","innerHTML","parentNode","insertBefore","removeChild","contains","arithmatex","maths","tex","innerText","startsWith","endsWith","katex","slice","displayMode","MathJax","texReset","typesetPromise","Promise","resolve","MutationObserver","mutations","forEach","mutation","type","target","localStorage","setItem","observe","attributeFilter","then","console","log","window","document$","subscribe","addEventListener"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"extra-loader-q9CWAeV9.js","sources":["uml.js","extra-loader.js","arithmatex.js"],"sourcesContent":["/* Notes (as of Mermaid 8.7.0):\n * - Gantt: width is always relative to the parent, if you have a small parent, the chart will be squashed.\n *   Can't help it.\n * - Journey: Suffers from the same issues that Gantt does.\n * - Pie: These charts have no default height or width. Good luck pinning them down to a reasonable size.\n * - Git: The render portion is agnostic to the size of the parent element. But padding of the SVG is relative\n *   to the parent element. You will never find a happy size.\n */\n\n/**\n * Targets special code or div blocks and converts them to UML.\n * @param {string} className is the name of the class to target.\n * @return {void}\n */\nexport default className => {\n\n  // Custom element to encapsulate Mermaid content.\n  class MermaidDiv extends HTMLElement {\n\n    /**\n    * Creates a special Mermaid div shadow DOM.\n    * Works around issues of shared IDs.\n    * @return {void}\n    */\n    constructor() {\n      super()\n\n      // Create the Shadow DOM and attach style\n      const shadow = this.attachShadow({mode: \"open\"})\n      const style = document.createElement(\"style\")\n      style.textContent = `\n      :host {\n        display: block;\n        line-height: initial;\n        font-size: 16px;\n      }\n      div.diagram {\n        margin: 0;\n        overflow: visible;\n      }`\n      shadow.appendChild(style)\n    }\n  }\n\n  if (typeof customElements.get(\"diagram-div\") === \"undefined\") {\n    customElements.define(\"diagram-div\", MermaidDiv)\n  }\n\n  const getFromCode = parent => {\n    // Handles 
 text extraction.\n    let text = \"\"\n    for (let j = 0; j < parent.childNodes.length; j++) {\n      const subEl = parent.childNodes[j]\n      if (subEl.tagName.toLowerCase() === \"code\") {\n        for (let k = 0; k < subEl.childNodes.length; k++) {\n          const child = subEl.childNodes[k]\n          const whitespace = /^\\s*$/\n          if (child.nodeName === \"#text\" && !(whitespace.test(child.nodeValue))) {\n            text = child.nodeValue\n            break\n          }\n        }\n      }\n    }\n    return text\n  }\n\n  // We use this to determine if we want the dark or light theme.\n  // This is specific for our MkDocs Material environment.\n  // You should load your configs based on your own environment's needs.\n  const defaultConfig = {\n    startOnLoad: false,\n    theme: \"default\",\n    flowchart: {\n      htmlLabels: false\n    },\n    er: {\n      useMaxWidth: false\n    },\n    sequence: {\n      useMaxWidth: false,\n      noteFontWeight: \"14px\",\n      actorFontSize: \"14px\",\n      messageFontSize: \"16px\"\n    }\n  }\n  mermaid.mermaidAPI.globalReset()\n  // Non Material themes should just use \"default\"\n  let scheme = null\n  try {\n    scheme = document.querySelector(\"[data-md-color-scheme]\").getAttribute(\"data-md-color-scheme\")\n  } catch (err) {\n    scheme = \"default\"\n  }\n  const config = (typeof mermaidConfig === \"undefined\") ?\n    defaultConfig :\n    mermaidConfig[scheme] || (mermaidConfig.default || defaultConfig)\n  mermaid.initialize(config)\n\n  // Find all of our Mermaid sources and render them.\n  const blocks = document.querySelectorAll(`pre.${className}, diagram-div`)\n  const surrogate = document.querySelector(\"html body\")\n  for (let i = 0; i < blocks.length; i++) {\n    const block = blocks[i]\n    const parentEl = (block.tagName.toLowerCase() === \"diagram-div\") ?\n      block.shadowRoot.querySelector(`pre.${className}`) :\n      block\n\n    // Create a temporary element with the typeset and size we desire.\n    // Insert it at the end of our parent to render the SVG.\n    const temp = document.createElement(\"div\")\n    temp.style.visibility = \"hidden\"\n    temp.style.display = \"display\"\n    temp.style.padding = \"0\"\n    temp.style.margin = \"0\"\n    temp.style.lineHeight = \"initial\"\n    temp.style.fontSize = \"16px\"\n    surrogate.appendChild(temp)\n\n    try {\n      mermaid.mermaidAPI.render(\n        `_diagram_${i}`,\n        getFromCode(parentEl),\n        (content, fn) => {\n          const el = document.createElement(\"div\")\n          el.className = className\n          el.innerHTML = content\n          if (fn) {\n            fn(el)\n          }\n\n          // Insert the render where we want it and remove the original text source.\n          // Mermaid will clean up the temporary element.\n          const shadow = document.createElement(\"diagram-div\")\n          shadow.shadowRoot.appendChild(el)\n          block.parentNode.insertBefore(shadow, block)\n          parentEl.style.display = \"none\"\n          shadow.shadowRoot.appendChild(parentEl)\n          if (parentEl !== block) {\n            block.parentNode.removeChild(block)\n          }\n        },\n        temp\n      )\n    } catch (err) {} // eslint-disable-line no-empty\n\n    if (surrogate.contains(temp)) {\n      surrogate.removeChild(temp)\n    }\n  }\n}\n","import uml from \"./uml\"\nimport arithmatex from \"./arithmatex\"\n\n// Main function\n(() => {\n  let umlPromise = Promise.resolve()\n  let mathPromise = Promise.resolve()\n\n  const observer = new MutationObserver(mutations => {\n    mutations.forEach(mutation => {\n      if (mutation.type === \"attributes\") {\n        let scheme = mutation.target.getAttribute(\"data-md-color-scheme\")\n        if (!scheme) {\n          scheme = \"default\"\n        }\n        localStorage.setItem(\"data-md-color-scheme\", scheme)\n        if (typeof mermaid !== \"undefined\") {\n          uml(\"diagram\")\n        }\n      }\n    })\n  })\n\n  const main = () => {\n    observer.observe(document.querySelector(\"body\"), {attributeFilter: [\"data-md-color-scheme\"]})\n\n    if (typeof mermaid !== \"undefined\") {\n      umlPromise = umlPromise.then(() => {\n        uml(\"diagram\")\n      }).catch(err => {\n        console.log(`UML loading failed...${err}`) // eslint-disable-line no-console\n      })\n    }\n\n    if (typeof katex !== \"undefined\") {\n      mathPromise = mathPromise.then(() => {\n        arithmatex(\"arithmatex\", \"katex\")\n      }).catch(err => {\n        console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n      })\n    } else if (typeof MathJax !== \"undefined\" && 'typesetPromise' in MathJax) {\n      mathPromise = mathPromise.then(() => {\n        arithmatex(\"arithmatex\", \"mathjax\")\n      }).catch(err => {\n        console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n      })\n    }\n  }\n\n  if (window.document$) {\n    // Material specific hook\n    window.document$.subscribe(main)\n  } else {\n    // Normal non-Material specific hook\n    document.addEventListener(\"DOMContentLoaded\", main)\n  }\n})()\n","export default (className, mode) => {\n  if (mode === 'katex') {\n    const maths = document.querySelectorAll(`.${className}`)\n\n    for (let i = 0; i < maths.length; i++) {\n      const tex = maths[i].textContent || maths[i].innerText\n\n      if (tex.startsWith('\\\\(') && tex.endsWith('\\\\)')) {\n        katex.render(tex.slice(2, -2), maths[i], {'displayMode': false})\n      } else if (tex.startsWith('\\\\[') && tex.endsWith('\\\\]')) {\n        katex.render(tex.slice(2, -2), maths[i], {'displayMode': true})\n      }\n    }\n  } else if (mode === 'mathjax') {\n    MathJax.typesetClear()\n    MathJax.texReset()\n    MathJax.typesetPromise()\n  }\n}\n"],"names":["umlPromise","mathPromise","observer","main","uml","className","MermaidDiv","_HTMLElement","_inherits","_super","_this","_classCallCheck","shadow","call","this","attachShadow","mode","style","document","createElement","textContent","appendChild","_wrapNativeSuper","HTMLElement","customElements","get","define","defaultConfig","startOnLoad","theme","flowchart","htmlLabels","er","useMaxWidth","sequence","noteFontWeight","actorFontSize","messageFontSize","mermaid","mermaidAPI","globalReset","scheme","querySelector","getAttribute","err","config","mermaidConfig","initialize","blocks","querySelectorAll","concat","surrogate","_loop","block","i","parentEl","tagName","toLowerCase","shadowRoot","temp","visibility","display","padding","margin","lineHeight","fontSize","render","parent","text","j","childNodes","length","subEl","k","child","nodeName","test","nodeValue","getFromCode","content","fn","el","innerHTML","parentNode","insertBefore","removeChild","contains","arithmatex","maths","tex","innerText","startsWith","endsWith","katex","slice","displayMode","MathJax","typesetClear","texReset","typesetPromise","Promise","resolve","MutationObserver","mutations","forEach","mutation","type","target","localStorage","setItem","observe","attributeFilter","then","console","log","window","document$","subscribe","addEventListener"],"mappings":"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"}
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 221a631bf..ae9ab3f15 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -213,7 +213,7 @@ extra_javascript:
   # - https://cdn.jsdelivr.net/npm/katex@0.13.18/dist/katex.min.js
   - https://polyfill.io/v3/polyfill.min.js?features=es6
   - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
-  - assets/pymdownx-extras/extra-loader-GOdIbeGp.js
+  - assets/pymdownx-extras/extra-loader-q9CWAeV9.js
 
 plugins:
   - search: