Fix preview rendering

This commit is contained in:
Sauli Anto 2019-10-03 12:43:58 +03:00
parent 6ea1c38e24
commit 2984df0a9a
2 changed files with 14 additions and 9 deletions

View File

@ -74,7 +74,7 @@ It's possible to implement with engine config. For example, this feature can be
InlineEditor.defaultConfig = {
// ...
math: {
engine: (equation, element, display, previewHack) => {
engine: (equation, element, display, preview) => {
// ...
}
}
@ -83,7 +83,7 @@ InlineEditor.defaultConfig = {
- __equation__ is equation in TeX format without delimiters.
- __element__ is DOM element reserved for rendering.
- __display__ is boolean. Typesetting should be inline when false.
- __previewHack__ is boolean. Enable preview hack when true. It adds equation element to end of the body and use absolute position.
- __preview__ is boolean. Preview Rendering when true.
### Supported input and output formats

View File

@ -15,30 +15,36 @@ export function getSelectedMathModelWidget( selection ) {
return null;
}
export function renderEquation( equation, element, engine = 'katex', display = false, previewHack = false ) {
export function renderEquation( equation, element, engine = 'katex', display = false, preview = false ) {
if ( engine === 'mathjax' && typeof MathJax !== 'undefined' ) {
if ( isMathJaxVersion3( MathJax.version ) ) {
selectRenderMode( element, previewHack, el => {
selectRenderMode( element, preview, el => {
renderMathJax3( equation, el, display, () => {
if ( previewHack ) {
if ( preview ) {
moveAndScaleElement( element, el );
}
} );
} );
} else {
selectRenderMode( element, previewHack, el => {
selectRenderMode( element, preview, el => {
renderMathJax2( equation, el, display );
if ( preview ) {
moveAndScaleElement( element, el );
}
} );
}
} else if ( engine === 'katex' && typeof katex !== 'undefined' ) {
selectRenderMode( element, previewHack, el => {
selectRenderMode( element, preview, el => {
katex.render( equation, el, {
throwOnError: false,
displayMode: display
} );
if ( preview ) {
moveAndScaleElement( element, el );
}
} );
} else if ( typeof engine === 'function' ) {
engine( equation, element, display, previewHack );
engine( equation, element, display, );
} else {
element.innerHTML = equation;
// eslint-disable-next-line
@ -95,7 +101,6 @@ function renderMathJax2( equation, element, display ) {
function createPreviewElement( element, render ) {
const prewviewEl = getPreviewElement( element );
render( prewviewEl );
moveAndScaleElement( element, prewviewEl );
}
export function getPreviewElement( element ) {