You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							42 lines
						
					
					
						
							881 B
						
					
					
				
			
		
		
	
	
							42 lines
						
					
					
						
							881 B
						
					
					
				import Embed from '../blots/embed'; | 
						|
import Quill from '../core/quill'; | 
						|
import Module from '../core/module'; | 
						|
 | 
						|
 | 
						|
class FormulaBlot extends Embed { | 
						|
  static create(value) { | 
						|
    let node = super.create(value); | 
						|
    if (typeof value === 'string') { | 
						|
      window.katex.render(value, node, { | 
						|
        throwOnError: false, | 
						|
        errorColor: '#f00' | 
						|
      }); | 
						|
      node.setAttribute('data-value', value); | 
						|
    } | 
						|
    return node; | 
						|
  } | 
						|
 | 
						|
  static value(domNode) { | 
						|
    return domNode.getAttribute('data-value'); | 
						|
  } | 
						|
} | 
						|
FormulaBlot.blotName = 'formula'; | 
						|
FormulaBlot.className = 'ql-formula'; | 
						|
FormulaBlot.tagName = 'SPAN'; | 
						|
 | 
						|
 | 
						|
class Formula extends Module { | 
						|
  static register() { | 
						|
    Quill.register(FormulaBlot, true); | 
						|
  } | 
						|
 | 
						|
  constructor() { | 
						|
    super(); | 
						|
    if (window.katex == null) { | 
						|
      throw new Error('Formula module requires KaTeX.'); | 
						|
    } | 
						|
  } | 
						|
} | 
						|
 | 
						|
 | 
						|
export { FormulaBlot, Formula as default };
 | 
						|
 |