Files
argon-theme/assets/vendor/external/katex/auto-render.min.js

54 lines
1.8 KiB
JavaScript
Raw Normal View History

/* KaTeX Auto-Render - Local Fallback */
(function() {
'use strict';
console.warn('KaTeX Auto-Render 本地备用版本 - 功能受限');
window.renderMathInElement = function(element, options) {
console.warn('KaTeX 自动渲染功能不可用 - 使用备用版本');
options = options || {};
var delimiters = options.delimiters || [
{left: "$$", right: "$$", display: true},
{left: "$", right: "$", display: false},
{left: "\\(", right: "\\)", display: false},
{left: "\\[", right: "\\]", display: true}
];
if (!element) {
element = document.body;
}
// 简单的文本替换处理
var walker = document.createTreeWalker(
element,
NodeFilter.SHOW_TEXT,
null,
false
);
var textNodes = [];
var node;
while (node = walker.nextNode()) {
textNodes.push(node);
}
textNodes.forEach(function(textNode) {
var text = textNode.textContent;
var hasMatch = false;
delimiters.forEach(function(delimiter) {
if (text.includes(delimiter.left) && text.includes(delimiter.right)) {
hasMatch = true;
}
});
if (hasMatch) {
var span = document.createElement('span');
span.innerHTML = text.replace(/\$([^$]+)\$/g,
'<span class="katex" style="font-style: italic; color: #666;" title="数学公式渲染服务不可用">$1</span>');
textNode.parentNode.replaceChild(span, textNode);
}
});
};
})();