mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Fix mermaid-related bugs (#21431)
This commit is contained in:
		
							
								
								
									
										4
									
								
								web_src/js/bootstrap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								web_src/js/bootstrap.js
									
									
									
									
										vendored
									
									
								
							@@ -25,6 +25,10 @@ function processWindowErrorEvent(e) {
 | 
				
			|||||||
    // If a script inserts a newly created (and content changed) element into DOM, there will be a nonsense error event reporting: Script error: line 0, col 0.
 | 
					    // If a script inserts a newly created (and content changed) element into DOM, there will be a nonsense error event reporting: Script error: line 0, col 0.
 | 
				
			||||||
    return; // ignore such nonsense error event
 | 
					    return; // ignore such nonsense error event
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Wait for upstream fix: https://github.com/microsoft/monaco-editor/issues/2962
 | 
				
			||||||
 | 
					  if (e.message.includes('Language id "vs.editor.nullLanguage" is not configured nor known')) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  showGlobalErrorMessage(`JavaScript error: ${e.message} (${e.filename} @ ${e.lineno}:${e.colno}). Open browser console to see more details.`);
 | 
					  showGlobalErrorMessage(`JavaScript error: ${e.message} (${e.filename} @ ${e.lineno}:${e.colno}). Open browser console to see more details.`);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ export async function renderMermaid() {
 | 
				
			|||||||
      // can't use bindFunctions here because we can't cross the iframe boundary. This
 | 
					      // can't use bindFunctions here because we can't cross the iframe boundary. This
 | 
				
			||||||
      // means js-based interactions won't work but they aren't intended to work either
 | 
					      // means js-based interactions won't work but they aren't intended to work either
 | 
				
			||||||
      mermaid.mermaidAPI.render('mermaid', source, (svgStr) => {
 | 
					      mermaid.mermaidAPI.render('mermaid', source, (svgStr) => {
 | 
				
			||||||
        const heightStr = (svgStr.match(/height="(.+?)"/) || [])[1];
 | 
					        const heightStr = (svgStr.match(/viewBox="(.+?)"/) || ['', ''])[1].split(/\s+/)[3];
 | 
				
			||||||
        if (!heightStr) return displayError(el, new Error('Could not determine chart height'));
 | 
					        if (!heightStr) return displayError(el, new Error('Could not determine chart height'));
 | 
				
			||||||
        const iframe = document.createElement('iframe');
 | 
					        const iframe = document.createElement('iframe');
 | 
				
			||||||
        iframe.classList.add('markup-render');
 | 
					        iframe.classList.add('markup-render');
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user