diff --git a/static/js/theme.js b/static/js/theme.js
index 88a6f92b8b..84d0786dce 100644
--- a/static/js/theme.js
+++ b/static/js/theme.js
@@ -277,18 +277,23 @@ function initMermaid( update, attrs ) {
var is_initialized = ( update ? update_func( attrs ) : init_func( attrs ) );
if( is_initialized ){
mermaid.initialize( Object.assign( { "securityLevel": "antiscript", "startOnLoad": false }, window.relearn.mermaidConfig, { theme: attrs.theme } ) );
- mermaid.run();
- // zoom for Mermaid
- // https://github.com/mermaid-js/mermaid/issues/1860#issuecomment-1345440607
- var svgs = d3.selectAll( '.mermaid.zoom svg' );
- svgs.each( function(){
- var svg = d3.select( this );
- svg.html( '' + svg.html() + '' );
- var inner = svg.select( 'g' );
- var zoom = d3.zoom().on( 'zoom', function( e ){
- inner.attr( 'transform', e.transform);
- });
- svg.call( zoom );
+ mermaid.run({
+ postRenderCallback: function(){
+ // zoom for Mermaid
+ // https://github.com/mermaid-js/mermaid/issues/1860#issuecomment-1345440607
+ var svgs = d3.selectAll( '.mermaid.zoom svg' );
+ svgs.each( function(){
+ var svg = d3.select( this );
+ svg.html( '' + svg.html() + '' );
+ var inner = svg.select( 'g' );
+ var zoom = d3.zoom().on( 'zoom', function( e ){
+ inner.attr( 'transform', e.transform);
+ });
+ svg.call( zoom );
+ });
+ },
+ querySelector: '.mermaid',
+ suppressErrors: true
});
}
if( update && search && search.length ){