diff --git a/src/mathediting.js b/src/mathediting.js index 8c37945c7..7c706697e 100644 --- a/src/mathediting.js +++ b/src/mathediting.js @@ -32,7 +32,8 @@ export default class MathEditing extends Plugin { forceOutputType: false, enablePreview: true, previewClassName: [], - popupClassName: [] + popupClassName: [], + katexRenderOptions: {} } ); } @@ -168,7 +169,8 @@ export default class MathEditing extends Plugin { const uiElement = writer.createUIElement( 'div', null, function( domDocument ) { const domElement = this.toDomElement( domDocument ); - renderEquation( equation, domElement, mathConfig.engine, mathConfig.lazyLoad, display, false ); + renderEquation( equation, domElement, mathConfig.engine, mathConfig.lazyLoad, display, false, mathConfig.previewClassName, + null, mathConfig.katexRenderOptions ); return domElement; } ); diff --git a/src/mathui.js b/src/mathui.js index 5eb9a0e33..8ed62211f 100644 --- a/src/mathui.js +++ b/src/mathui.js @@ -78,7 +78,8 @@ export default class MathUI extends Plugin { mathConfig.enablePreview, this._previewUid, mathConfig.previewClassName, - mathConfig.popupClassName + mathConfig.popupClassName, + mathConfig.katexRenderOptions ); formView.mathInputView.bind( 'value' ).to( mathCommand, 'value' ); diff --git a/src/ui/mainformview.js b/src/ui/mainformview.js index 898c0ed7c..79a624c8e 100644 --- a/src/ui/mainformview.js +++ b/src/ui/mainformview.js @@ -23,7 +23,7 @@ import MathView from './mathview'; import '../../theme/mathform.css'; export default class MainFormView extends View { - constructor( locale, engine, lazyLoad, previewEnabled, previewUid, previewClassName, popupClassName ) { + constructor( locale, engine, lazyLoad, previewEnabled, previewUid, previewClassName, popupClassName, katexRenderOptions ) { super( locale ); const t = locale.t; @@ -53,7 +53,7 @@ export default class MainFormView extends View { this.previewLabel.text = t( 'Equation preview' ); // Math element - this.mathView = new MathView( engine, lazyLoad, locale, previewUid, previewClassName ); + this.mathView = new MathView( engine, lazyLoad, locale, previewUid, previewClassName, katexRenderOptions ); this.mathView.bind( 'display' ).to( this.displayButtonView, 'isOn' ); children = [ diff --git a/src/ui/mathview.js b/src/ui/mathview.js index 1b4267997..8dd62a686 100644 --- a/src/ui/mathview.js +++ b/src/ui/mathview.js @@ -3,13 +3,13 @@ import View from '@ckeditor/ckeditor5-ui/src/view'; import { renderEquation } from '../utils'; export default class MathView extends View { - constructor( engine, lazyLoad, locale, previewUid, previewClassName ) { + constructor( engine, lazyLoad, locale, previewUid, previewClassName, katexRenderOptions ) { super( locale ); this.engine = engine; this.lazyLoad = lazyLoad; this.previewUid = previewUid; - this.previewClassName = previewClassName; + this.katexRenderOptions = katexRenderOptions; this.set( 'value', '' ); this.set( 'display', false ); @@ -32,7 +32,8 @@ export default class MathView extends View { } updateMath() { - renderEquation( this.value, this.element, this.engine, this.lazyLoad, this.display, true, this.previewUid, this.previewClassName ); + renderEquation( this.value, this.element, this.engine, this.lazyLoad, this.display, true, this.previewUid, this.previewClassName, + this.katexRenderOptions ); } render() { diff --git a/src/utils.js b/src/utils.js index 62599e5c3..f77cf1ce2 100644 --- a/src/utils.js +++ b/src/utils.js @@ -44,7 +44,8 @@ export function extractDelimiters( equation ) { } export async function renderEquation( - equation, element, engine = 'katex', lazyLoad, display = false, preview = false, previewUid, previewClassName = [] + equation, element, engine = 'katex', lazyLoad, display = false, preview = false, previewUid, previewClassName = [], + katexRenderOptions = {} ) { if ( engine === 'mathjax' && typeof MathJax !== 'undefined' ) { if ( isMathJaxVersion3( MathJax.version ) ) { @@ -77,7 +78,8 @@ export async function renderEquation( selectRenderMode( element, preview, previewUid, previewClassName, el => { katex.render( equation, el, { throwOnError: false, - displayMode: display + displayMode: display, + ...katexRenderOptions } ); if ( preview ) { moveAndScaleElement( element, el ); @@ -94,7 +96,7 @@ export async function renderEquation( } element.innerHTML = equation; await global.window.CKEDITOR_MATH_LAZY_LOAD; - renderEquation( equation, element, engine, undefined, display, preview, previewUid, previewClassName ); + renderEquation( equation, element, engine, undefined, display, preview, previewUid, previewClassName, katexRenderOptions ); } catch ( err ) { element.innerHTML = equation;