上周会议小结
在上周的会议中讨论了文本的表示问题,最终决定修改SVG组件的定义,使用HTML表示,而非直接使用SVG。
本周工作
基于HTML的文本组件
前端通过HTML而非SVG显示文本
- 基于HTML文本属性显示纯文本或者Markdown、基于MathML显示LaTex公式
- SVG标签内的foreignObject
逻辑
当创建一个文本框时,核心生成一个对象,同时传入坐标
选中到某个文本框时,唤起文本编辑器组件
-
若为纯文本或Markdown,直接实现对内容样式的修改
文本编辑过程中,可以修改内容或样式
- 为了实现即时的渲染,textStyle在前端实现
-
若为LaTeX公式
- 可以实现在前端基于KaTeX渲染
- 或者将源代码发送到后端,后端解析得到MathML后返回
编辑完成后,将HTML发送到核心;核心嵌套到SVG,设置位置布局后返回到前端
若修改布局,将更新后的布局发送到后端,由后端进行修改后返回SVG
前端
定义一个vue的文本编辑器组件,用于显示和渲染文本
- 解析并显示HTML
- 提供修改接口
-
修改文本内容
纯文本内容、Markdown提供即时的渲染;LaTex公式
-
修改文本样式
-