Classic editor with KaTex

by isaul32

HTML

<!doctype html>
<html lang="en">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CKEditor 5 classic example with math plugin</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css">
  </head>

  <body>
    <h1>CKEditor 5 – classic editor build</h1>
    <h2>Math plugin – KaTeX demo</h2>

    <h2>Example TeX equations</h2>
    <b>Math</b>
    <pre>\x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}</pre>
    <b>Chem</b>
    <pre>\ce{CH4 + 2 O2 -> CO2 + 2 H2O}</pre>
    
    <h2>Paste from text</h2>
    <b>Display</b>
    <pre>\[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \]</pre>
    <b>Inline</b>
    <pre>\( x+\sqrt{1-x^2} \)</pre>

    <h2>Editor</h2>
    <div id="editor">
      <p>Lorem... <span class="math-tex"> \(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \) </span> ...ipsum</p>
      <p>Lorem... <span class="math-tex"> \[ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} \] </span> ...ipsum</p>
      <p>Lorem... <script type="math/tex">x+\sqrt{1-x^2}</script> ...ipsum</p>
      <p>Lorem... <script type="math/tex; mode=display">x+\sqrt{1-x^2}</script> ...ipsum</p>
    </div>

    <h2>Preview</h2>
    <div id="editor-preview"></div>

    <h2>Data</h2>
    <pre id="editor-preview-html" style="word-wrap: break-word; white-space: pre-wrap;"></pre>

    <script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/mhchem.min.js"></script>
    <script src="https://cdn.jsdelivr.net/gh/isaul32/ckeditor5@c3463fe834049bf5d805d1d22402108a9c0576bd/packages/ckeditor5-build-classic/build/ckeditor.js"></script>
    
    <script>
      function getEditorData() {
        const data = window.editor.getData();

        // HTML
        const preview = document.getElementById('editor-preview');
        preview.innerHTML =...

CSS

body {
  max-width: 800px;
  margin: 50px auto;
}

.ck-math-form input.ck.ck-input.ck-input-text {
  min-width: 36em;
}