pages/_includes/scripts/pseudocode.liquid
George 1a7fddecf8
Fix code blocks not changing to plots and others (#2497)
For some unknown reason, all the `document.onreadystatechange = () => {`
checks stopped working. Thankfully, replacing them with
`document.addEventListener("readystatechange", () => {` fixed the
issues.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-06-11 14:06:38 -03:00

53 lines
1.7 KiB
Plaintext

{% if site.enable_math and page.pseudocode %}
<!-- MathJax -->
<script type="text/javascript">
window.MathJax = {
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)'],
],
displayMath: [
['$$', '$$'],
['\\[', '\\]'],
],
processEscapes: true,
processEnvironments: true,
},
};
</script>
<script
type="text/javascript"
id="MathJax-script"
src="{{ site.third_party_libraries.mathjax.url.js }}"
integrity="{{ site.third_party_libraries.mathjax.integrity.js }}"
crossorigin="anonymous"
></script>
<script
type="text/javascript"
src="{{ site.third_party_libraries.pseudocode.url.js }}"
integrity="{{ site.third_party_libraries.pseudocode.integrity.js }}"
crossorigin="anonymous"
></script>
<script>
document.addEventListener('readystatechange', () => {
if (document.readyState === 'complete') {
document.querySelectorAll('pre>code.language-pseudocode').forEach((elem) => {
const texData = elem.textContent;
const parent = elem.parentElement.parentElement;
/* create pseudocode node */
let pseudoCodeElement = document.createElement('pre');
pseudoCodeElement.classList.add('pseudocode');
const text = document.createTextNode(texData);
pseudoCodeElement.appendChild(text);
/* add pseudocode node and remove the original code block */
parent.appendChild(pseudoCodeElement);
parent.removeChild(elem.parentElement);
/* embed the visualization in the container */
pseudocode.renderElement(pseudoCodeElement);
});
}
});
</script>
{% endif %}