本技术涉及终端,尤其涉及一种富文本处理方法及装置。
背景技术:
1、随着智能终端的发展,用户在通过备忘录等软件记录信息时,除了基本的文字外,还希望能够记录表格、图片等其他包含更多信息的内容,因此需要借助富文本编辑器编辑富文本内容。
2、其中富文本编辑器除了可以向用户提供自己输入富文本内容的功能之外,还可以提供将从别处复制来的富文本内容粘贴到富文本编辑器中的功能。其中富文本编辑器在处理复制粘贴的富文本内容时,目前通常的做法是只保留基本的文本信息,而无法保留复制内容的段落信息,进而导致针对复制并粘贴的富文本数据的处理缺乏全面性。
技术实现思路
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、第三方面,本技术实施例提供一种终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
73、该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行如第一方面的方法。
74、第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现如第一方面的方法。
75、第五方面,本技术实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。
76、第六方面,本技术实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面所述的方法。
77、应当理解的是,本技术的第二方面至第五方面与本技术的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
78、本技术提供一种富文本处理方法及装置,该方法通过解析得到待粘贴内容的第一描述文本对应的数据结构,并且针对第一数据结构进行深度优先搜索,在此过程中,确定每一个叶子节点的指示信息,以确定叶子节点和其前一个叶子节点是否对应于同一段落,之后将对应于同一段落的叶子节点划分到一个数组中,从而得到各个自然段所分别对应的数据,然后再基于多个数组,生成第一描述文本所对应的第一富文本数据,其中第一富文本数据中的文本分段信息和第一描述文本中的文本分段信息就是一致的,最终再渲染得到第一富文本数据对应的富文本内容,从而可以有效的实现粘贴后的富文本内容和原本的待粘贴内容所表现出的分段情况是一致的,进而可以有效的提升复制粘贴的数据处理场景中的处理全面性。
1.一种富文本处理方法,其特征在于,应用于第一应用程序中的富文本编辑器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述数据结构进行深度优先搜索,确定所述数据结构中的各叶子节点各自对应的指示信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述分岔节点以及各所述中间节点的节点信息,确定所述第一叶子节点对应的指示信息,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述属性信息中包括至少一种子属性;
6.根据权利要求5所述的方法,其特征在于,所述数组中的各个叶子节点携带有各自的节点属性;
7.根据权利要求1-6任一项所述的方法,其特征在于,所述富文本编辑器中包括插件单元;
8.根据权利要求1-7任一项所述的方法,其特征在于,所述富文本编辑器中还包括第一渲染单元;
9.一种富文本处理装置,其特征在于,应用于第一应用程序中的富文本编辑器,所述装置包括:
10.一种终端设备,其特征在于,包括:处理器和存储器;
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1-8任一项所述的方法。