-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnote.txt
96 lines (67 loc) · 3.47 KB
/
note.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
如何描写一个文件:
一个文件是一个节点树。
节点类型:
文本
段落
段组
结构
辅助元素
任何文本节点都必须包含在段落节点中,任何段落节点都必须包含在段组节点中。
段组与段组之间的三种关系:包含、黏接、分离
段组的属性:
样式名称
参数列表
与前一个兄弟的关系(黏接/分离)
结构是段组的组合。如果段组是上下连接的,建议使用段组的黏接关系,而只有当段组与段组要左右连接时才使用结构。
结构的属性:
样式名称
参数列表
段组列表
结构内的段组的「关系」属性将被忽略,第一个段组的关系属性也将被忽略。
辅助元素是用来执行脚本或者提供其他功能的不可见元素。
一个节点如果具有「抽象」属性,则是一个抽象节点。一个节点的抽象属性是一个段组。
编辑器:
一个编辑器是文本样式列表、段组样式列表、结构样式列表、辅助元素列表、响应器列表
一个文本样式定义了:
样式名称
参数原型
一个段组样式定义了:
样式名称
参数原型
一个结构样式定义了:
样式名称
参数原型
段组样式列表 // 定义段组的数量,以及各个段组的类型
段组关系 // 定义每个段组的相对位置
渲染器:
一个响应器是一个类,具有独特的属性和方法。
一个渲染器具有若干个渲染插槽,每个插槽由两个方法定义:
1、识别节点
2、渲染函数
每次遇到一个节点,会通过识别节点方法找到对应渲染函数,然后调用对应的函数来渲染节点
渲染函数可以访问响应器来控制环境
每个渲染函数是一个React组件,返回一个Dom元素。
其他:
对于编辑器,还需要定义如何显示所有按钮。按钮表可以分组
[ xx , xx , "|" , xx , xx ]
编辑器会提供一个toolbox组件,至于如何使用这个组件就看用户了
在编辑过程中,对于抽象节点,需要创建一个新的编辑器来维护其hidden
在渲染过程中,则是由渲染器自行决定如何渲染hidden。
关于编辑器界面
对于每个节点,需要留一个槽来编辑参数
对于工具栏,编辑器只提供按钮列表,而工具栏需要用户自己定义
抽象节点的样式只有一种,但是可以有参数。
因此用户需要确定一系列抽象节点样式,给出名称、参数原型,以及如何渲染
每种样式有两种功能,一是把选中区域转换为对应样式,二是添加对应节点,默认是一。
关于约束
1 任何组,如果其relation不是黏接,则前面必有一个paragraph
2 任何组前后必有新建自然段的辅助工具
关于非文本
非文本节点实现为特殊的组
比如图片,则用参数控制url,不渲染自然段
编码规范:
关于命名
所有组件用 ThisIsAComponent 这样命名
所有类用 ThisIsAComponent 这样命名
所有其他函数和其他变量用下划线命名法 this_is_a_function
所有接口,如果是函数的参数, _Parameters(函数参数)或者 _Props(组件参数)命名,否则直接用 ThisIsAInterface命名