/
The Design Approach for Bundle Katex library only if Math formula is used in the question.

The Design Approach for Bundle Katex library only if Math formula is used in the question.

Bundling Katex Library only when Math Formula is used in Question.

Existing Behavior:
Currently, we are generating the QuestionSet ECML by using BasePlugin 'toECML' function, So we were bundling every Dependency by comparing String of QuestionBody.data.


Approach:
Stage-manager.js in content-editor,
Apply filter on toECML on stage-manager of content-editor, we have plugin object containing the questionBody,

  • Validation of question whether having math formula or not, using questionBody object which contains question text compare whether having 'data-math' && 'math-text'.

    JSON.parse(plugin._question.body).data.data.question.text

  • Validation of Question-options whether having math formula or not, using questionBody which contain

    • MTF question contain: optionsLHS & optionsRHS on questionBody

    • MCQ questions contain: options or sentence(Reordering questions)

    • FTB questions contain: answer objects
      apply filter for each options(MCQ), sentence(MCQ), answer(FTB), optionLHS & optionRHS containing 'data-math' && 'math-text'.

Once we validated having 'data-math' && 'math-text' on questions and options, we enable or disable
katex libraries on ECML. If 'data-math' && 'math-text' is available in questions or options we are enable them to load on manifest dependency on ECML, if they are not, removing Katex libraries from manifest dependency on ECML.

Workflow: