diff --git a/src/mathcommand.js b/src/mathcommand.js index 745bb7d45..56dda32db 100644 --- a/src/mathcommand.js +++ b/src/mathcommand.js @@ -2,7 +2,8 @@ import Command from '@ckeditor/ckeditor5-core/src/command'; import { getSelectedMathModelWidget } from './utils'; export default class MathCommand extends Command { - execute( equation, display ) { + execute( equation, display, outputType, forceOutputType ) { + console.log( 'execute', display, outputType, forceOutputType ); const model = this.editor.model; const selection = model.document.selection; const selectedElement = selection.getSelectedElement(); @@ -11,11 +12,15 @@ export default class MathCommand extends Command { let mathtex; if ( selectedElement && selectedElement.is( 'mathtex' ) ) { // Update selected element - const mode = selectedElement.getAttribute( 'mode' ); - mathtex = writer.createElement( 'mathtex', { equation, mode, display } ); + const typeAttr = selectedElement.getAttribute( 'type' ); + + // Use already set type if found and is not forced + const type = forceOutputType ? outputType : typeAttr || outputType; + + mathtex = writer.createElement( 'mathtex', { equation, type, display } ); } else { // Create new model element - mathtex = writer.createElement( 'mathtex', { equation, mode: 'script', display } ); + mathtex = writer.createElement( 'mathtex', { equation, type: outputType, display } ); } model.insertContent( mathtex ); writer.setSelection( mathtex, 'on' ); diff --git a/src/mathediting.js b/src/mathediting.js index 0938f6481..2105322ba 100644 --- a/src/mathediting.js +++ b/src/mathediting.js @@ -54,7 +54,7 @@ export default class MathEditing extends Plugin { }, model: ( viewElement, modelWriter ) => { const equation = viewElement.getChild( 0 ).data.trim(); - return modelWriter.createElement( 'mathtex', { equation, type: 'script', display: false } ); + return modelWriter.createElement( 'mathtex', { equation, type: mathConfig.forceOutputType ? mathConfig.outputType : 'script', display: false } ); } } ) // MathJax display way (e.g. ) @@ -67,7 +67,7 @@ export default class MathEditing extends Plugin { }, model: ( viewElement, modelWriter ) => { const equation = viewElement.getChild( 0 ).data.trim(); - return modelWriter.createElement( 'mathtex', { equation, type: 'script', display: true } ); + return modelWriter.createElement( 'mathtex', { equation, type: mathConfig.forceOutputType ? mathConfig.outputType : 'script', display: true } ); } } ) // CKEditor 4 way (e.g. \( \sqrt{\frac{a}{b}} \)) @@ -86,7 +86,7 @@ export default class MathEditing extends Plugin { equation = equation.substring( 2, equation.length - 2 ).trim(); } - return modelWriter.createElement( 'mathtex', { equation, type: 'span', display: hasDisplayDelimiters } ); + return modelWriter.createElement( 'mathtex', { equation, type: mathConfig.forceOutputType ? mathConfig.outputType : 'span', display: hasDisplayDelimiters } ); } } ); diff --git a/src/mathui.js b/src/mathui.js index b73464e22..b59b2aa50 100644 --- a/src/mathui.js +++ b/src/mathui.js @@ -71,7 +71,7 @@ export default class MathUI extends Plugin { // Listen to submit button click this.listenTo( formView, 'submit', () => { - editor.execute( 'math', formView.equation, formView.displayButtonView.isOn ); + editor.execute( 'math', formView.equation, formView.displayButtonView.isOn, mathConfig.outputType, mathConfig.forceOutputType ); this._closeFormView(); } ); diff --git a/src/utils.js b/src/utils.js index 391cad49f..5683fe72c 100644 --- a/src/utils.js +++ b/src/utils.js @@ -35,7 +35,12 @@ export function getSelectedMathModelWidget( selection ) { export const defaultConfig = { + /* + engine: (equation, element, display) => { + console.log(equation, element, display); + }, + */ engine: 'mathjax', - outputMode: 'script', - forceOutputMode: false + outputType: 'script', + forceOutputType: false } \ No newline at end of file