index.js 751 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * @fileoverview latex 插件
  3. * katex.min.js来源 https://github.com/rojer95/katex-mini
  4. */
  5. const parse = require('./katex.min')
  6. function Latex () {
  7. }
  8. Latex.prototype.onParse = function (node, vm) {
  9. // $...$包裹的内容为latex公式
  10. if (!vm.options.editable && node.type === 'text' && /\$(.+?)\$/.test(node.text)) {
  11. delete node.type
  12. node.name = 'span'
  13. node.attrs = {}
  14. node.children = node.text.split('$').map((str, index) => {
  15. // 偶数
  16. if ((index + 1) % 2 === 0) {
  17. return {
  18. name: 'span',
  19. attrs: {},
  20. children: parse.default(str)
  21. }
  22. }
  23. return {
  24. type: 'text',
  25. text: str
  26. }
  27. })
  28. delete node.text
  29. }
  30. }
  31. module.exports = Latex