loading improvements

This commit is contained in:
tdurieux
2026-05-07 08:30:31 +03:00
parent 2de08c3df3
commit f817a29a4b
13 changed files with 2808 additions and 45 deletions
+10
View File
File diff suppressed because one or more lines are too long
+24 -22
View File
@@ -24,33 +24,35 @@ function markedMermaid(options) {
renderer(token) {
const id = 'mermaid-' + Math.random().toString(36).substr(2, 9);
// Initialize Mermaid if not already done
if (typeof mermaid !== 'undefined' && !window.mermaidInitialized) {
mermaid.initialize({
startOnLoad: false,
theme: 'default',
securityLevel: 'loose'
});
window.mermaidInitialized = true;
}
// Create a div that will be processed by Mermaid
const div = `<div class="mermaid" id="${id}">${token.text}</div>`;
// Trigger lazy-load of mermaid if not yet loaded
if (typeof mermaid === 'undefined' && typeof window.loadMermaid === 'function') {
window.loadMermaid();
}
// Schedule Mermaid rendering for after DOM insertion
setTimeout(() => {
if (typeof mermaid !== 'undefined') {
try {
const element = document.getElementById(id);
if (element && !element.getAttribute('data-processed')) {
mermaid.init(undefined, element);
element.setAttribute('data-processed', 'true');
}
} catch (error) {
console.error('Mermaid rendering error:', error);
}
if (typeof mermaid === 'undefined') return;
if (!window.mermaidInitialized) {
mermaid.initialize({
startOnLoad: false,
theme: 'default',
securityLevel: 'loose'
});
window.mermaidInitialized = true;
}
}, 0);
try {
const element = document.getElementById(id);
if (element && !element.getAttribute('data-processed')) {
mermaid.init(undefined, element);
element.setAttribute('data-processed', 'true');
}
} catch (error) {
console.error('Mermaid rendering error:', error);
}
}, 100);
return div;
}
+2659
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long