微信小程序--支持ckeditor编辑器中mathquill数学公式

news/2024/7/10 23:39:15 标签: javascript, es6, html, css
htmledit_views">

使用Towxml解析ckeditor文本编辑器中mathquill数学公式

显示如下效果:

 

一、微信小程序中构建Towxml

参考之前文章:https://blog.csdn.net/qq_33848658/article/details/115234194

二、使用

1、单独封装mathquill.css

2、towxml/towxml.wxss中引入mathquill.css

html" title=javascript>javascript">/* mathquill数学公式样式 */
@import './style/theme/mathquill.wxss'

3、mathquill/index.js 转化数学公式

html" title=javascript>javascript">// pages/mathquill/index.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    questionsContent: null, //单选题目
    option: [{
        option: "A",
      value: '<p><span class="mq-math-mode" latex-data="\sum_{n=0}^{\infty}k^2"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><span class="mq-large-operator mq-non-leaf" mathquill-command-id="3"><span class="mq-to"><span mathquill-block-id="5"><span mathquill-command-id="12">&infin;</span></span></span><big>&sum;</big><span class="mq-from"><span mathquill-block-id="4"><var mathquill-command-id="6">n</var><span class="mq-binary-operator" mathquill-command-id="8">=</span><span mathquill-command-id="10">0</span></span></span></span><var mathquill-command-id="15">k</var><span class="mq-supsub mq-non-leaf mq-sup-only" mathquill-command-id="17"><span class="mq-sup" mathquill-block-id="19"><span mathquill-command-id="18">2</span></span></span></span></span><span>&nbsp;</span></p>↵'
      },
      {
        option: "B",
        value: '<p><span class="mq-math-mode" latex-data="\sum_2^1"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><span class="mq-large-operator mq-non-leaf" mathquill-command-id="3"><span class="mq-to"><span mathquill-block-id="5"><span mathquill-command-id="7">1</span></span></span><big>&sum;</big><span class="mq-from"><span mathquill-block-id="4"><span mathquill-command-id="8">2</span></span></span></span></span></span><span>&nbsp;</span></p>'
      },
      {
        option: "C",
        value: '<p><span class="mq-math-mode" latex-data="\log_1^n"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><var class="mq-operator-name" mathquill-command-id="4">l</var><var class="mq-operator-name" mathquill-command-id="5">o</var><var class="mq-operator-name" mathquill-command-id="6">g</var><span class="mq-supsub mq-non-leaf" mathquill-command-id="11"><span class="mq-sup" mathquill-block-id="13"><var mathquill-command-id="12">n</var></span><span class="mq-sub" mathquill-block-id="9"><span mathquill-command-id="15">1</span></span><span style="display:inline-block;width:0">​</span></span></span></span><span>&nbsp;</span></p>'
      },
      {
        option: "D",
        value: '<p><span class="mq-math-mode" latex-data="\ln2"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><var class="mq-operator-name" mathquill-command-id="28">l</var><var class="mq-operator-name mq-last" mathquill-command-id="29">n</var><span mathquill-command-id="31">2</span></span></span><span>&nbsp;</span></p>'
      }
    ] //选项

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    let questionsContent = '<p><span class="mq-math-mode" latex-data="^1/_2"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><span class="mq-supsub mq-non-leaf mq-sup-only" mathquill-command-id="3"><span class="mq-sup" mathquill-block-id="4"><span mathquill-command-id="11">1</span></span></span><span mathquill-command-id="6">/</span><span class="mq-supsub mq-non-leaf" mathquill-command-id="8"><span class="mq-sub" mathquill-block-id="9"><span mathquill-command-id="12">2</span></span><span style="display:inline-block;width:0">​</span></span></span></span><span>&nbsp;</span><span class="mq-math-mode" latex-data="\overleftarrow{ab}"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><span class="mq-non-leaf mq-overarrow mq-arrow-left" mathquill-block-id="23" mathquill-command-id="21"><var mathquill-command-id="22">a</var><var mathquill-command-id="24">b</var></span></span></span><span>&nbsp;</span><span class="mq-math-mode" latex-data="x^1"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><var mathquill-command-id="27">x</var><span class="mq-supsub mq-non-leaf mq-sup-only" mathquill-command-id="29"><span class="mq-sup" mathquill-block-id="30"><span mathquill-command-id="32">1</span></span></span></span></span><span>&nbsp;</span><span class="mq-math-mode" latex-data="x_1"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><var mathquill-command-id="33">x</var><span class="mq-supsub mq-non-leaf" mathquill-command-id="35"><span class="mq-sub" mathquill-block-id="36"><span mathquill-command-id="38">1</span></span><span style="display:inline-block;width:0">​</span></span></span></span><span>&nbsp;</span><span class="mq-math-mode" latex-data="x_2^1"><span class="mq-textarea"><textarea autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" x-palm-disable-ste-all="true"></textarea></span><span class="mq-root-block" mathquill-block-id="1"><var mathquill-command-id="39">x</var><span class="mq-supsub mq-non-leaf" mathquill-command-id="44"><span class="mq-sup" mathquill-block-id="42"><span mathquill-command-id="47">1</span></span><span class="mq-sub" mathquill-block-id="45"><span mathquill-command-id="48">2</span></span><span style="display:inline-block;width:0">​</span></span></span></span><span>&nbsp;</span></p>'

    this.data.questionsContent = app.towxml(questionsContent, 'markdown'); //towxml解析题内容

    this.data.option.forEach((item, index) => {
      this.data.option[index].value = app.towxml(item.value, 'markdown')
    })


    // 更新解析数据
    this.setData({
      questionsContent: this.data.questionsContent,
      option: this.data.option
    });
  },
})

备注:mathquill数学公式转化在线转化:http://www.jmeditor.com/jme/demo.html

如下图所示:

 

4、mathquill/index.json 中构建组件

html" title=javascript>javascript">    "towxml": "/towxml/towxml"

5、显示mathquill/index.wxml中渲染数学公式

html"><!--pages/mathquill/index.wxml-->
<view>
  <towxml nodes="{{questionsContent}}" />
  <view class="radio my-choosebox" wx:for="{{option}}">
    <text>{{item.option}}</text>
    <towxml nodes="{{item.value}}" />
  </view>
</view>

  6、demo源码参考:https://download.csdn.net/download/qq_33848658/16265383


http://www.niftyadmin.cn/n/908565.html

相关文章

项目管理--你真的知道如何与高层沟通吗?

为什么需要高层的支持&#xff1f; 一个项目成功与否&#xff0c;很大部分取决于项目经理一开始沟通是否到位&#xff0c;有经验的项目经理一开始会投入相当的精力与高层沟通&#xff0c;以期知道项目在高层心目中想法是怎样的&#xff0c;并且帮助项目获得更多的资源支持。 项…

Sticky footer布局

本文章从https://www.jb51.net/css/649287.html参考 上图所显示的效果就是sticky Footer&#xff0c;当页面主题内容不够长时&#xff0c;footer定位在窗口的底部&#xff0c;当页面主题内容超出窗口后&#xff0c;footer显示在页面的最底部 1、flex布局方式 html代码&#xff…

【VS开发】【Live555-rtsp】RTSP服务器实例live555源代码分析

原文地址&#xff1a;RTSP服务器实例live555源代码分析作者&#xff1a;mozheer1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器&#xff0c;该类同时在其内部定义了一个RTSPClientSession类&#xff0c;用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是D…

微信小程序--上传代码、提交审核并发布详细流程

前提&#xff1a;后台服务地址已经在外网映射 遇到坑&#xff1a; 当第一次提交发布成功后&#xff0c;你突然发现项目有bug需要改。这个时候你信心满满的改完&#xff0c;满怀信心点击发布、提交审核。结果令人不快是“审核不通过”。 微信小程序首次发布流程&#xff0c;分为…

【bzoj 2208】[Jsoi2010]连通数(dfs||Tarjan算法+拓扑序+dp)

2208: [Jsoi2010]连通数 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2383 Solved: 1013[Submit][Status][Discuss]Description Input 输入数据第一行是图顶点的数量&#xff0c;一个正整数N。 接下来N行&#xff0c;每行N个字符。第i行第j列的1表示顶点i到j有边&#x…

微信小程序--微信自带的返回按钮操作(全局隐藏、单页隐藏、自定义返回按钮)

问题探究&#xff1a; 微信小程序中会默认自带导航菜单返回按钮箭头&#xff0c;当我们想隐藏返回箭头时&#xff0c;就引出有如下三种方法 一、全局隐藏返回箭头 1、在app.json中全局设置&#xff0c;则每个页面会隐藏返回箭头 "window":{"navigationStyle&q…

【策略模式】不同的时间用不同的规则--优先考虑策略模式

记录策略模式&#xff0c;与简单工厂模式相互结合&#xff0c;降低代码之间的耦合 案列&#xff1a;超市收银软件系统&#xff0c;需求&#xff1a;满减&#xff0c;打折。。。各种优惠活动 5个类 CountPCountRabateRetCash/** * 父类 */abstract class CountP {abstract publi…

【JZOJ4868】【NOIP2016提高A组集训第9场11.7】Simple

题目描述 数据范围 解法 在暴力枚举的基础上&#xff0c;当n的系数在[0,m/gcd(n,m))时&#xff0c;得到的c是不重复不遗漏的。设n的系数为x&#xff0c;m的系数为y。不重复不遗漏性 设xm/gcd(n,m)i&#xff0c;那么xnym(m/gcd(n,m)i)*nymm*(yn/gcd(n,m))*mi*n。显然&#xff0c…