QtNovelUI/libTextEdit/README.md

37 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 文本编辑控件
## 创建原因
1. 实现一个可以自主掌控的源码编辑控件
2. 验证自己的设计理念,学习基本的文本排版技术
3. 市面上没有一个开源好用的源码编辑器需要以C++内存模型对外暴露文档模型,方便编辑和解析
4. 需要多线程处理高亮渲染,以应对大规模关键词渲染需求
5. 同一个文档模型多开视图窗口,自动同步修改内容,同一模型不同的渲染视图的渲染结果互不影响
6. 自动补全功能
7. 富文本元素排版
8. Unicode内建支持
## 设计目标
1. 富文本渲染控件
1. 支持排版元素:“文本”、“图片”、“超链接”、“列表”、“表格”、“视频”、“音频”;
2. 支持编辑内容:“文本”、“表格”、“列表”
3. 支持编辑引用:“图片”,“超链接”,“视频”,“音频”;
4. 支持元素折叠和展开
5. 块级元素内建排版格式,行内元素排版方向内建
2. 源码文本编辑控件
1. 纯文本控件,支持编辑和呈现文本元素
2. 多种文本格式混合排版
3. 支持块级元素折叠和展开
4. 全局统一排版方向,行内元素排版方向内建
## 开发路线图
1. 基本的源码展示控件WsTextPresent
2. 基本的源码编辑控件WsTextEdit
3. 富文本渲染控件WsRichTextPresent
## WsTextPresent项目开发
### 设计思路
1. 纯文本输入和输出,除了换行符进行内建处理,其他的文本元素一视同仁;
2. 多视角设计:基础内存模型视角,元素排版视角、文本编辑视角;
3. 多线程语法高亮,关键词渲染
4. 统一文档内存模型,多视图渲染
5. 纸稿排版逻辑,基于预设排版位置
6. 全局文档布局设置、段落文档布局设置、行文档布局设置、文本片段布局设置