富文本处理方法与编辑器、设备及存储介质与流程

文档序号:21037385发布日期:2020-06-09 20:29阅读:292来源:国知局
富文本处理方法与编辑器、设备及存储介质与流程

本申请涉及数据处理技术领域,尤其涉及一种富文本处理方法与编辑器、设备及存储介质。



背景技术:

富文本编辑器(richtexteditor,rte)是一种可内嵌于浏览器,所见即所得的文本编辑器。富文本编辑器可对文本进行不同的格式化处理,采用富文本编辑器编辑的富文本通常带有丰富的格式设置,可读性更强。

利用富文本编辑器,用户可以轻松编辑各种格式的富文本。但是,用户的富文本编辑需求不断增多,富文本编辑器逐渐不能满足用户增多的文本编辑需求。



技术实现要素:

本申请的多个方面提供一种富文本处理方法与编辑器、设备及存储介质,用以提供一种更加灵活的富文本处理方法,满足不断增多的富文本编辑需求。

本申请实施例提供一种富文本处理方法,包括:接收业务端发送的富文本模板标识;根据所述富文本模板标识,从至少一个富文本模板中确定目标富文本模板;根据所述目标富文本模板得到所述业务端所需的富文本;将所述富文本发送给所述业务端,以供所述业务端使用。

本申请实施例还提供另一种富文本处理方法,包括:展示编辑界面,所述编辑界面包括编辑区和至少一种行内组件的组件图标;响应于至少一次组件图标拖入操作,确定被拖入所述编辑区内的至少一个目标组件图标;将所述至少一个目标组件图标对应的至少一个目标行内组件渲染至所述编辑区内;根据所述编辑区内的至少一个目标行内组件生成富文本模板;其中,所述至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。

本申请实施例还提供一种设备,包括:存储器、处理器和通信组件;

所述通信组件,用于接收业务端发送的富文本模板标识;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:根据所述富文本模板标识,从至少一个富文本模板中确定目标富文本模板;根据所述目标富文本模板得到所述业务端所需的富文本;所述通信组件还用于,将所述富文本发送给所述业务端,以供所述业务端使用。

本申请实施例还提供另一种设备,包括:存储器、处理器以及显示屏;

所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以用于:通过所述显示屏展示编辑界面,所述编辑界面包括编辑区和至少一种行内组件的组件图标;响应于至少一次组件图标拖入操作,确定被拖入所述编辑区内的至少一个目标组件图标;将所述至少一个目标组件图标对应的至少一个目标行内组件渲染至所述编辑区内;根据所述编辑区内的至少一个目标行内组件生成富文本模板;其中,所述至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。

本申请实施例还提供一种富文本编辑器,包括:编辑界面,所述编辑界面包括编辑区和至少一种行内组件的组件图标;所述编辑界面被配置成,响应于至少一次组件图标拖入操作,确定被拖入所述编辑区内的至少一个目标组件图标;将所述至少一个目标组件图标对应的至少一个目标行内组件渲染至所述编辑区内;根据所述编辑区内的至少一个目标行内组件生成富文本模板;其中,所述至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,用于实现本申请上述实施例提供的一种富文本处理方法中的步骤。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,用于实现本申请上述实施例提供的另一种富文本处理方法中的步骤。

在本申请实施例中,在富文本域中增加新的文本内容,即行内组件,行内组件作为富文本域中的文本内容,其取值和/或样式可动态变化,基于行内组件预先生成富文本模板,进而基于富文本模板生成富文本。其中,结合行内组件的样式可动态变化的特点,可灵活调整富文本模板中行内组件的样式,而结合行内组件的取值可动态变化的特点,可以根据相同的富文本模板生成不同的富文本,这些使富文本编辑更加灵活,有利于满足不断增多的富文本编辑需求。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a为本申请示例性实施例提供一种富文本处理方法的流程示意图;

图1b为本申请示例性实施例提供的一种编辑界面的样式图;

图1c为本申请示例性实施例提供的另一种编辑界面的样式图;

图2a为本申请示例性实施例提供的又一种编辑界面的样式图;

图2b为本申请示例性实施例提供的将行内组件渲染至编辑区内的样式图;

图3为本申请示例性实施例提供另一种富文本处理方法的流程示意图;

图4为本申请示例性实施例提供的一种设备400的结构示意图;

图5为本申请示例性实施例提供的一种设备500的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

针对现有富文本编辑需求不断增多的技术问题,在本申请一些实施例中,在富文本域中增加新的文本内容,即行内组件,行内组件作为富文本域中的文本内容,其取值和/或样式可动态变化,基于行内组件预先生成富文本模板,进而基于富文本模板生成富文本。其中,结合行内组件的样式可动态变化的特点,可灵活调整富文本模板中行内组件的样式,而结合行内组件的取值可动态变化的特点,可以根据相同的富文本模板生成不同的富文本,这些使富文本编辑更加灵活,有利于满足不断增多的富文本编辑需求。

以下结合附图,详细说明本申请各实施例提供的技术方案。

在本申请实施例中,提供一种富文本编辑器,该富文本编辑器可嵌入浏览器中依赖浏览器实现,当然,也可以作为一款独立的软件产品实现。本申请实施例提供的富文本编辑器不仅支持普通文本内容,还支持至少一种行内组件。

其中,行内组件是本申请实施例为富文本域中新增的文本内容。行内组件与富文本域中的普通文本内容不同,有点类似于前端组件,存在属性、方法和事件,但又可以像普通文本内容一样存在于富文本编辑器中,而且其取值和/或样式可动态变化,可由富文本编辑器来修改其样式和位置。

在富文本域中增加了既能像普通文本内容一样被编辑,又具有类似于前端组件的属性、方法和事件的行内组件之后,在编辑富文本过程中,若碰到人员姓名、年龄、序号等内容时便可满足动态变化的需求,而且若有必要调整一些内容的样式时也可以满足样式变化需求,可以极大地丰富富文本的编辑方式和灵活性。

值得说明的是,在使用行内组件之前,可以结合富文本应用场景实现所需的行内组件。根据富文本应用场景对行内组件的需求,可以实现一种或多种行内组件,不同种类的行内组件属于富文本域中不同的文本内容。例如,在一些富文本应用场景中,可以定义变量组件、序号组件、引用序号组件、图片组件以及链接组件等中的至少一种行内组件。关于这些行内组件的详细描述可参见后续实施例,在此暂不详述。

本申请实施例并不限定用于实现行内组件的方式,凡是能够实现可被富文本编辑器编辑的行内组件的方式均适用于本申请实施例。下面本申请实施例给出一种实现行内组件的方式,即利用超文本标记语言(hypertextmarkuplanguage,html)标签实现至少一种行内组件。可选地,可以利用html标签定义至少一种行内组件的名称和属性,并基于定义出的至少一种行内组件的名称和属性实现至少一种行内组件的方法和事件,从而得到至少一种行内组件。其中,可以采用任意html标签实现行内组件。例如,可以利用input标签或div标签,定义至少一种行内组件的名称和属性。

以input标签为例,行内组件的名称和属性等数据可以放到input标签的data-props属性中。通过input标签实现行内组件的视图(view)层,将行内组件的名称和属性转化成json字符串绑定在input标签的data-props属性上,这样在行内组件在富文本中进行复制、剪切、粘贴等操作后,仍然能够保持数据的完整性。另外,行内组件的视图层是用input标签来实现的,所以其支持所有input标签的原生事件以及自定义事件,基于此可以实现行内组件支持的事件;同时,通过行内组件的构造器实现行内组件的方法,每个行内组件的构造器是一个含有大量静态方法(用于模拟事件和方法)的类,从而更好地分离view层和控制(control)层,这使得能够在富文本编辑器中插入行内组件,并且能够通过行内组件构造器动态改变行内组件在富文本编辑器中的展现形式。再者,行内组件之间也能够相互通信和联动。

无论采用何种方式,在实现至少一种行内组件之后,可基于至少一种行内组件进行富文本编辑。在本申请实施例中,为了充分利用行内组件的取值和/或样式可动态变化的特点,可首先基于行内组件生成富文本模板,进而根据富文本模板生成富文本。其中,结合行内组件的样式可动态变化的特点,可灵活调整富文本模板中行内组件的样式,而结合行内组件的取值可动态变化的特点,可以根据相同的富文本模板生成不同的富文本,这些使富文本编辑更加灵活,有利于满足不断增多的富文本编辑需求。

下面将分别对富文本编辑器生成富文本模板和基于富文本模板生成富文本的过程进行详细说明。

图1a为本申请示例性实施例提供一种富文本处理方法的流程示意图。图1a所示方法主要描述富文本编辑器生成富文本模板的过程。如图1a所示,该方法包括以下步骤:

101、展示编辑界面,该编辑界面包括编辑区和至少一种行内组件的组件图标。

102、响应于至少一次组件图标拖入操作,确定被拖入编辑区内的至少一个目标组件图标。

103、将至少一个目标组件图标对应的至少一个目标行内组件渲染至编辑区内。

104、根据编辑区内的至少一个目标行内组件生成富文本模板。

在本实施例中,富文本编辑器提供编辑界面,该编辑界面是富文本编辑器与用户进行交互的接口,便于用户使用富文本编辑器编辑所需的富文本或富文本模板。如图1b和图1c所示,该编辑界面包括编辑区和至少一种行内组件的组件图标。在图1b中,至少一种行内组件的组件图标与编辑区呈左右排布,且组件图标位于编辑界面的左侧,编辑区位于编辑界面的右侧。在图1c中,至少一种行内组件的组件图标与编辑区呈上下排布,且组件图标位于编辑界面的上部,编辑区位于组件图标下方。值得说明的是。组件图标与编辑区之间的布局样式并不限于图1b和图1c所示。凡是能够展示至少一种行内组件的组件图标和编辑区的界面形式均适用于本申请实施例。

可选地,可以以列表的方式组织至少一种行内组件的组件图标,如图1b和图1c所示。一种组件图标代表一种行内组件,不同行内组件的组件图标之间应该有差异,以便于用户能够通过组件图标区分不同的行内组件。组件图标可以是图片、图形、数字、动画等。进一步,行内组件的组件图标上可以带有行内组件的名称等标记性信息,以便于用户快速识别出组件图标所代表的行内组件。

例如,用户打开富文本编辑器时,或者,富文本编辑器从后台进入前台运行时,富文本编辑器可以向用户展示其编辑界面。在此说明,该编辑界面上除了包括编辑区和至少一种行内组件的组件图标之外,还可以包括其它与富文本编辑有关的其它工具或组件,例如字体、字号、前进、后退等功能组件,对此本申请实施例不做说明。

其中,编辑界面上的组件图标支持拖动事件。当用户需要使用某个行内组件时,可以将该行内组件对应的组件图标拖入编辑区内,这样该组件图标对应的行内组件就会被富文本编辑器渲染至编辑区内。若用户需要使用多个行内组件时,可以分别将多个行内组件对应的组件图标拖入编辑区内,这样多个组件图标对应的行内组件就会被富文本编辑器渲染至编辑区内。值得说明的是,用户向编辑区拖入的是组件图标,但在编辑区内实际展示的是组件图标对应的行内组件。

基于上述,在生成富文本模板时,用户可以执行至少一次组件图标拖入操作,将富文本模板中所需的至少一个行内组件对应的组件图标拖入编辑区内,以便富文本模板所需的至少一个行内组件被渲染至编辑区内。对富文本编辑器来说,可响应于至少一次组件图标拖入操作,确定被拖入编辑区内的至少一个组件图标;进而可以将所确定的被拖入编辑区内的至少一个组件图标对应的至少一个行内组件渲染至编辑区内。为便于描述,将被拖入编辑区内的组件图标称为目标组件图标,并将目标组件图标对应的行内组件称为目标行内组件。其中,一个目标组件图标代表一个目标行内组件。

在一可选实施方式中,用户执行一次组件图标拖入操作,富文本编辑器响应一次组件图标拖入操作,将该组件图标对应的行内组件渲染至编辑区内;然后,用户再执行下一次组件图标拖入操作,依次下去,直至富文本模板中所需的行内组件均被渲染至编辑区内为止。

在另一可选实施方式中,用户可以连续执行组件图标拖入操作,在执行下一次组件图标拖入操作时,无需考虑上一次组件图标拖入操作对应的行内组件的渲染结果。对富文本编辑器而言,可以记录连续发生的组件图标拖入操作,然后依次响应各个组件图标拖入操作,将对应的行内组件逐个渲染至编辑区内,或者,启动多线程并行响应各个组件图标拖入操作,并行地将对应的行内组件渲染至编辑区内。

需要说明的是,上述至少一个目标行内组件中,可以包含相同种类的行内组件,即同种行内组件被多次拖入编辑区内。例如,若富文本模板需要多次使用同一种行内组件,则用户可以多次将该种行内组件的组件图标拖入编辑区内,这样该种行内组件就会被多次渲染至编辑区内。当然,同一种类下几个行内组件在编辑区内的位置不同,渲染出的样式可以相同,也可以不同。同理,若该种行内组件需要赋值,那么该种类下几个行内组件在后续生成富文本时的取值可以相同,也可以不相同。当然,上述至少一个目标行内组件可以是完全不同种类的行内组件,也可以全部是同一种类的行内组件。

在将富文本模板所需的至少一个目标行内组件渲染至编辑区后,可以根据至少一个目标行内组件生成富文本模板。

在不同应用场景中,富文本模板包含的内容会有所不同。例如,在一些应用场景中,富文本模板只包括至少一个目标行内组件,则可以直接将编辑区内的至少一个目标行内组件保存为富文本模板即可。又例如,在另一些应用场景中,富文本模板中除了包括至少一个目标行内组件之外,可能还包括其它文本内容,其它文本内容主要是指普通文本内容,这些普通文本内容可由用户手动输入、拷贝粘贴或插入至编辑区内。基于此,可以将编辑区内至少一个目标行内组件连同编辑区内的其它文本内容保存为富文本模板。

在本实施例中,富文本模板可以是结构化格式的,也可以是非结构化格式的。可选地,在生成富文本模板时,可以单独生成结构化的富文本模板,也可以单独生成非结构化的富文本模板,还可以同时生成结构化的富文本模板和非结构化的富文本模板。

以富文本模板同时包括至少一个目标行内组件和其它文本内容为例,则可以将至少一个目标行内组件的名称和属性值保存至一个数组字段内,将其它文本内容保存至另一个数组字段内,从而得到结构化的富文本模板。这样,便于对目标行内组件进行动态修改。

以富文本模板同时包括至少一个目标行内组件和其它文本内容为例,则可以将至少一个目标行内组件连同其它文本内容一并保存为字符串,得到非结构化的富文本模板。

值得说明的是,对于包含至少一个目标行内组件的富文本模板,建议同时生成结构化的富文本模板和非结构化的富文本模板。当然,若只能生成一种富文本模板,则对于至少一个目标行内组件中包含需要赋值的行内组件的情况,优选考虑生成结构化的富文本模板。

在本申请一种实施例中,富文本编辑器支持至少一种行内组件,每种行内组件对应一个组件图标,并且具有名称、方法、属性和事件。其中,行内组件具有默认属性值。为了将界面上的组件图标与行内组件关联起来,在实现时可以将每种行内组件的组件图标与该种行内组件的组件名称和组件类型进行关联。这里的组件类型主要分为行内组件和非行内组件。

基于上述,当富文本编辑器被启动,或者从后台进入前台运行时,可以向用户展示编辑界面,该编辑界面包括编辑区和至少一种行内组件的组件图标。用户生成富文本模板时,可以将富文本模板所需的行内组件对应的组件图标向编辑区内拖入,即用户可以发出至少一次组件图标拖入操作。富文本编辑器可响应至少一次组件图标拖入操作,确定被拖入编辑区内的至少一个目标组件图标;根据至少一个目标组件图标各自关联的组件名称和组件类型,确定与至少一个目标组件图标对应的至少一个目标行内组件;进而,根据至少一个目标行内组件的默认属性值,将至少一个目标行内组件渲染至编辑区内;然后根据编辑区内至少一个目标行内组件生成富文本模板。该实施例相对简单,可以直接基于目标行内组件的默认属性值渲染出目标行内组件,无需对目标行内组件的属性值进行修改。

可选地,在确定被拖入编辑区内的至少一个目标组件图标之后,可以获取至少一个目标组件图标各自关联的组件名称和组件类型;然后,根据至少一个目标组件图标各自关联的组件类型,确定至少一个目标组件图标对应的组件是否是行内组件(即判断是不是行内组件被拖入编辑区内);若确定至少一个目标行内组件图标对应的组件是行内组件(即确定是行内组件被拖入编辑区内),则可以根据至少一个目标组件图标各自关联的组件名称,确定至少一个目标组件图标各自对应的目标行内组件(即确定被拖入编辑区内的目标行内组件)。之后,可以调用被拖入编辑区内的目标行内组件对应的渲染方法,将目标行内组件渲染至编辑区内。不同行内组件,其对应的渲染方法会有所不同。

另外,本申请实施例中的行内组件具有事件属性,可以支持各种事件,例如点击事件、长按事件、鼠标悬停事件、双击事件等等。这些事件可与修改行内组件的属性值的操作相关联。基于此,在生成富文本模板时,若需要修改行内组件的属性值,则可以通过指定事件触发富文本编辑器修改行内组件的属性值。

在一可选实施例中,富文本编辑器可响应至少一次组件图标拖入操作,确定被拖入编辑区内的至少一个目标组件图标;根据至少一个目标组件图标各自关联的组件名称和组件类型,确定与至少一个目标组件图标对应的至少一个目标行内组件;进而,根据至少一个目标行内组件的默认属性值,将至少一个目标行内组件渲染至编辑区内。在生成富文本模板之前,用户可以通过指定事件对至少一个目标行内组件中任意行内组件的属性值进行修改,被修改的行内组件可以是一个或多个。

为便于描述,假设用户需要对第一目标行内组件的属性值进行修改,第一目标行内组件是至少一个目标行内组件中的任意行内组件。则,用户可以针对编辑区内第一目标行内组件发出指定事件,例如点击事件、双击事件或鼠标悬停事件等。对富文本编辑器来说,可响应针对第一目标行内组件的指定事件,显示第一目标行内组件的可修改属性项。结合图1b和图1c,编辑界面上显示行内组件的属性区,该属性区显示有第一目标行内组件的可修改属性项。

用户可以对第一目标行内组件的可修改属性项进行修改。富文本编辑器响应于对第一目标行内组件的可修改属性项的修改操作,获取第一目标行内组件的新属性值;然后,根据第一目标行内组件的新属性值,重新将第一目标行内组件渲染至编辑区内;然后可以根据重新渲染至编辑区内的第一目标行内组件以及其它未重新渲染的目标行内组件生成富文本模板。

进一步可选地,第一目标行内组件的属性值被修改之后,富文本编辑器还需要将其默认属性值替换为新属性值,例如将新属性值写入input标签的data-props属性中。该实施例相对灵活,允许用户根据需求对行内组件的属性进行修改,从而得到符合用户需求的富文本模板。

值得说明的是,根据不同种类的行内组件,其可修改属性项也会有所不同。不论是哪种类型的行内组件,可以将其可修改属性项划分为样式属性和非样式属性。样式属性是指与行内组件的展示样式相关的属性,非样式属性是指与行内组件的展示样式无关的属性。行内组件的展示样式包括其大小、形状、颜色、位置、边框等等。

基于上述,若第一目标行内组件的可修改属性项中包括样式属性,则第一目标行内组件的新属性值会包括样式属性值,基于此,第一目标行内组件在重新渲染前后的样式会不同。例如,重新渲染之前,第一目标行内组件的边框是红色;重新渲染之后,第一目标行内组件的边框是绿色。

值得说明的是,在生成富文本模板过程中,可以对富文本模板所需的至少一个目标行内组件的属性值进行修改,以满足富文本编辑需求。除此之外,在生成富文本模板之后,也可以打开富文本模板重新对富文本模板进行编辑,在重新编辑富文本模板的过程中,也可以对富文本模板包含的至少一个目标行内组件的属性值进行修改。富文本模板被打开之后,其包含的至少一个目标行内组件会被重新渲染至编辑界面的编辑区内,对此,用户可以针对需要修改的目标行内组件(这里也以第一目标行内组件为例)发出指定事件,富文本编辑器响应对第一目标行内组件的指定事件,显示第一目标行内组件的可修改属性项,如图1b和图1c所示;进而,响应用户对第一目标行内组件的可修改属性项的修改操作,获取第一目标行内组件的新属性值;根据第一目标行内组件的新属性值,重新将第一目标行内组件渲染至编辑区内,进而完成对富文本模板的重新编辑。

值得说明的是,无论是在富文本模板生成过程中,还是在重新编辑富文本模板的过程中,当对第一目标行内组件的可修改属性项进行修改时,在当前富文本模板或其它富文本模板中可能存在与第一目标行内组件关联的其它行内组件,这些相互关联的行内组件之间的属性值会相互影响。例如,以当前富文本模板中的序号组件为例,当某个位置的序号的边框颜色改变之后,其它位置的序号的边框颜色需要适应性修改,以保持序号样式的一致性。又例如,仍以当前富文本模板中的序号组件为例,当某个位置的序号所属层级发生变化时,与该需要属于相同层级的其它位置的序号的层级也需要适应性变化,如序号3.1.1变成了序号3.1,相应地,序号3.1.2需要变成序号3.2。

基于上述分析,响应于对第一目标行内组件的可修改属性项的修改操作,除了需要获取第一目标行内组件的新属性值并根据第一目标行内组件的新属性值重新将第一目标行内组件渲染至编辑区之外,还可以对第一目标行内组件所属富文本模板或其它富文本模板中与第一目标行内组件关联的其它行内组件的属性值进行关联修改,以实现行内组件之间的联动。

以一种富文本应用场景为例,假设采用input标签定义了以下几个行内组件:变量组件、序号组件、引用序号组件、图片组件以及链接组件等。下面对每个行内组件的含义及其属性进行简单说明:

变量组件:用于实现富文本域中需因情况不同而动态变化的内容,例如员工姓名、薪资等。变量组件可以具有别名、显示的值、为空隐藏、显示条件等属性。别名:默认使用属性中“显示的值”作为变量这个行内组件的显示文字,但是填写别名后会优先使用别名作为显示文字。显示的值:是变量组件的取值,可通过公式编辑器将业务端提供的参数值赋值给变量组件,建立起两者之间的关联。为空隐藏:该属性可选择激活或不激活,若该属性不被激活,默认显示变量名称。显示条件:当满足某个条件时,该变量组件的渲染结果才会显示至编辑区内。不成立时显示:当不满足“显示条件”时,将该变量组件的渲染结果显示至编辑区内,和满足“显示条件”时相反。

序号组件:用于为富文本域中的内容添加序号。序号组件可以具有分组、层级、格式、字母大写、引用名、显示条件等属性。分组:限定序号所属的分组,可以将多个序号设置为同一分组,这样序号之间可进行联动,例如点击某个序号时,该分组内的所有序号同时高亮。层级:限定序号的层级,例如层级为1,序号显示为1,层级为2,序号显示为1.1,等等。格式:限定序号的格式,例如序号可以采用阿拉伯数字、罗马数字、英文序号等格式。字母大写:用于在选择英文序号的情况下,限定序号的大小写;如果激活字母大写属性,序号会采用大写字母,例如a,a.b等;如果未激活字母大写属性,序号会采用小写字母,例如a,a.b等。引用名:是序号的唯一标识,主要用于和引用序号组件进行关联。显示条件:当满足设定条件时,序号组件的渲染结果才会显示至编辑区内。

引用序号组件:和序号组件关联,是对序号组件中序号的引用。例如,“章节1.1”中的1.1是一个序号,而“如上述章节1.1”这是引用序号。引用序号会根据引用名去关联所引用的序号,引用序号的渲染结果会显示为所引用的序号的值。引用序号组件可以具有引用名、显示条件等属性。引用名:用于与引用的序号关联,是所引用的序号的引用名。

图片组件:用于在富文本域中添加图片,也会具有自己的一些属性,例如图片格式、大小等。链接组件:用于在富文本域中添加链接,也会具有自己的一些属性,例如链接地址的格式等。

在上述行内组件的基础上,当富文本编辑器被启动时,其面向用户提供的一种编辑界面的样式如图2a所示。如图2a,该编辑界面包括:基本工具区、编辑区、组件区以及属性区。基本工具区位于编辑界面的顶部,主要包括字体、字号、行高、缩进等基本文本编辑工具。编辑界面的中部是编辑区,编辑区左侧是组件区,编辑区的右侧是属性区。如图2a所示,在该实施例中,组件区包括块级组件和行内组件,块级组件是指限定文本格式的组件,主要包括容器、表格、富文本、分页符等;行内组件是一种文本内容,主要包括变量组件、序号组件、引用序号组件、图片组件以及链接组件等图标。属性区主要展示用户需要修改的行内组件的可修改属性项。在图2a中,以用户需要修改的行内组件是变量组件为例,属性区展示有变量组件的别名、为空隐藏选项、显示的内容、显示条件等属性项。

以生成招聘offer模板时,用户可以从左侧的行内组件中选择所需行内组件的组件图标,将其拖入编辑区内。如图2b所示,假设用户将变量组件的图标拖入了编辑区,富文本编辑器确定被拖入编辑区内的组件图标对应的行内组件是变量组件,然后调用变量组件的渲染方法将变量组件渲染至编辑区内,该变量组件包括员工姓名。接着,如图2b所示,假设用户将另一变量组件的图标拖入了编辑区,富文本编辑器确定被拖入编辑区内的组件图标对应的行内组件是变量组件,然后调用变量组件的渲染方法将变量组件渲染至编辑区内,该变量组件包括签约公司的英文名称。接着,假设用户将序号组件的图标拖入了编辑区,富文本编辑器确定被拖入编辑区内的组件图标对应的行内组件是序号组件,然后调用序号组件的渲染方法将序号组件渲染至编辑区内,该变量组件包括序号1:x,序号2:xx,序号3:x等。这些序号下面是一些普通文本内容,是具有共性的内容,例如入职说明、公司制度、保密原则等。在此期间,用户可以通过图2b所示编辑界面右侧的属性区,对序号组件的属性值进行修改。如图2b所示,可以通过右侧的属性区对序号组件的分组、层级、格式、引用名等属性项进行修改。

当将offer模板所需的行内组件以及其它普通文本内容均输入编辑区并调整好行内组件的属性值之后,可以将编辑区内的行内组件和其它普通文本内容分别保存至不同的数组字段中,得到结构化的offer模板。

在生成富文本模板之后,可以对外发布富文本模板,以便于业务端使用富文本模板。例如,可以将招聘offer模板发布给公司人事部分,这样人事部门的同事可以直接调用该招聘offer模板,快速针对不同应聘人员生成不同的offer文档。为了便于业务端使用富文本模板,在生成富文本模板之后,可以为富文本模板分配名称或id等标识,对外发布时,可以将富文本模板的标识、简介、入参等信息发布出去即可。

由上述示例可知,用户在编辑富文本模版(例如offer模版、邮件模版)时,往往需要在组件中有一些动态的变量,例如人员姓名、年龄等,这些信息都是因人而异的。又或是文章编号,用户在修改章节顺序时,编号往往需要动态改变。在本申请实施例中,利用行内组件的取值和/或样式可动态变化的特点,可轻松解决上述问题;另外,通过行内组件的属性、方法和事件还能处理一些复杂的逻辑,例如样式改变、联动、获取动态数据等等,极大地丰富了富文本编辑方式,提高了灵活性。

基于上述生成的富文本模板,本申请示例性实施例提供另一种富文本处理方法,该方法主要描述基于富文本模板生成富文本的过程。如图3所示,该方法主要包括以下步骤:

301、接收业务端发送的富文本模板标识。

302、根据富文本模板标识,从至少一个富文本模板中确定目标富文本模板。

303、根据目标富文本模板得到业务端所需的富文本。

304、将富文本发送给业务端,以供业务端使用。

在本实施例中,业务端是指需要使用富文本模板生成富文本的计算机设备,该计算机设备可以是手机、pc等。当需要使用富文本模板时,可以向富文本编辑器发送富文本模板标识,该富文本模板标识表示业务端所需的富文本模板。可选地,本实施例中至少一个富文本模板可以是预先基于至少一个行内组件生成的。其中,至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化,其详细介绍可参见前述实施例。

富文本编辑器接收到业务端发送的富文本模板标识之后,可以据此从至少一个富文本模板中确定目标富文本模板;然后根据目标富文本模板得到业务端所需的富文本;将该富文本发送给业务端,以供业务端使用。无论是业务端还是对富文本编辑器来说,该生成富文本的过程相对简单,效率较高。

在一可选实施例中,考虑到业务端支持的富文本格式,与目标富文本模板的格式可能不相同。基于此,富文本编辑器可以根据业务端支持的富文本格式,将目标富文本模板渲染成富文本。例如,将目标富文本模板渲染成html文档或pdf文档等。

在一些可选实施例中,目标富文本模板无需传入参数。在这种情况下,富文本编辑器在确定目标富文本模板之后,可以直接根据业务端支持的富文本格式,将目标富文本模板渲染成富文本。

在另一些可选实施例中,目标富文本模板需要传入参数,例如目标富文本模板包含变量组件。在这种情况下,富文本编辑器还会接收业务端发送的富文本模板参数,该富文本模板入参包括参数名称和参数值。这里的参数名称与目标富文本模板中行内组件的名称具有对应关系,例如参数名称就是行内组件的名称。之后,富文本编辑器可根据富文本模板入参中的参数名称,确定目标富文本模板中待赋值的行内组件;进而,根据富文本模板参数中的参数值,为待赋值的行内组件进行赋值。例如,以招聘0ffer模板为例,将员工名称赋值,将公司名称赋值。接着,富文本编辑器可以根据业务端支持的富文本格式,将赋值后的目标富文本模板渲染成富文本。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤104的执行主体可以为设备a;又比如,步骤101和103的执行主体可以为设备a,步骤104的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图4为本申请示例性实施例提供的一种设备400的结构示意图。如图4所示,该设备400包括:存储器41、处理器42以及通信组件43。

存储器41,用于存储计算机程序,并可被配置为存储其它各种数据以支持在设备上的操作。这些数据的示例包括用于在设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

通信组件43,用于接收业务端发送的富文本模板标识。

处理器42,与存储器41耦合,用于执行存储器41中的计算机程序,以用于:根据富文本模板标识,从至少一个富文本模板中确定目标富文本模板;根据目标富文本模板得到业务端所需的富文本。

通信组件43还用于,将富文本发送给业务端,以供业务端使用。

可选地,处理器42在根据目标富文本模板得到业务端所需的富文本时,具体用于:根据业务端支持的富文本格式,将目标富文本模板渲染成富文本。

进一步可选地,通信组件43还用于,接收业务端发送的富文本模板入参,富文本模板入参包括参数名称和参数值。基于此,处理器42还用于:在将目标富文本模板渲染成富文本之前,根据富文本模板入参中的参数名称,确定目标富文本模板中待赋值的行内组件;根据富文本模板参数中的参数值,为待赋值的行内组件进行赋值。

进一步可选地,处理器42还用于:基于至少一个行内组件生成至少一个富文本模板;其中,至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。其中,基于至少一个行内组件生成至少一个富文本模板的过程,可参见前述实施例中的描述,在此不再赘述。

进一步,如图4所示,该设备400还包括:显示屏44、电源组件45、音频组件46等其它组件。图4中仅示意性给出部分组件,并不意味着设备400只包括图4所示组件。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由图3所示方法实施例中的各步骤。

图5为本申请示例性实施例提供的一种设备500的结构示意图。如图5所示,该设备500包括:存储器51、处理器52以及显示屏53。

存储器51,用于存储计算机程序,并可被配置为存储其它各种数据以支持在设备上的操作。这些数据的示例包括用于在设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

处理器52,与存储器51耦合,用于执行存储器51中的计算机程序,以用于:

通过显示屏53展示编辑界面,该编辑界面包括编辑区和至少一种行内组件的组件图标;

响应于至少一次组件图标拖入操作,确定被拖入编辑区内的至少一个目标组件图标;

将至少一个目标组件图标对应的至少一个目标行内组件渲染至编辑区内;

根据编辑区内的至少一个目标行内组件生成富文本模板;其中,至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。

可选地,处理器52在将至少一个目标组件图标对应的至少一个目标行内组件渲染至编辑区内时,具体用于:根据至少一个目标组件图标各自关联的组件名称和组件类型,确定至少一个目标行内组件;根据至少一个目标行内组件的默认属性值,将至少一个目标行内组件渲染至编辑区内。

进一步,处理器52还用于,在根据编辑区内的至少一个目标行内组件生成富文本模板之前,或者,在生成富文本模板之后重新编辑富文本模板的过程中,响应针对第一目标行内组件的指定事件,通过显示屏53显示第一目标行内组件的可修改属性项;响应于对第一目标行内组件的可修改属性项的修改操作,获取第一目标行内组件的新属性值;根据第一目标行内组件的新属性值,重新将第一目标行内组件渲染至编辑区内;其中,第一目标行内组件是至少一个目标行内组件中的任意行内组件。

进一步,处理器52还用于,将第一目标行内组件的默认属性值替换为新属性值。

可选地,若第一目标行内组件的新属性值包括样式属性值,则第一目标行内组件在重新渲染前后的样式不同。

进一步,处理器52还用于,响应于对第一目标行内组件的可修改属性项的修改操作,对富文本模板或其它富文本模板中与第一目标行内组件关联的其它行内组件的属性值进行关联修改。

可选地,处理器52在根据至少一个目标组件图标各自关联的组件名称和组件类型,确定至少一个目标行内组件时,具体用于:根据至少一个目标组件图标各自关联的组件类型,确定至少一个目标组件图标对应的组件是否是行内组件;若至少一个目标组件图标对应的组件是行内组件,根据至少一个目标组件图标各自关联的组件名称,确定至少一个目标组件图标各自对应的目标行内组件。

可选地,处理器52在根据编辑区内的至少一个目标行内组件生成富文本模板时,具体用于:将编辑区内的至少一个目标行内组件连同编辑区内的其它文本内容保存为富文本模板。

进一步,处理器52在将编辑区内的至少一个目标行内组件连同编辑区内的其它文本内容保存为富文本模板时,具体用于:

将至少一个目标行内组件的名称和属性值保存至一个数组字段内,将其它文本内容保存至另一个数组字段内,得到结构化的富文本模板;

和/或

将至少一个目标行内组件连同其它文本内容保存为字符串,得到非结构化的富文本模板。

可选地,处理器52在通过显示屏53展示编辑界面之前,还用于:利用html标签定义至少一种行内组件的名称和属性,并基于至少一种行内组件的名称和属性实现至少一种行内组件的方法和事件,以得到至少一种行内组件。

例如,处理器52可以利用input标签或div标签,定义至少一种行内组件的名称和属性。

可选地,至少一种行内组件包括:变量组件、序号组件、引用序号组件、图片组件以及链接组件中的至少一种。

进一步,如图5所示,该设备500还包括:通信组件54、电源组件55、音频组件56等其它组件。图5中仅示意性给出部分组件,并不意味着设备500只包括图5所示组件。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由图1a所示方法实施例中的各步骤。

本申请实施例除了提供上述设备、方法以及存储介质之外,还提供一种富文本编辑器,该富文本编辑器包括:编辑界面,该编辑界面包括编辑区和至少一种行内组件的组件图标。其中,该编辑界面被配置成,响应于至少一次组件图标拖入操作,确定被拖入所述编辑区内的至少一个目标组件图标;将所述至少一个目标组件图标对应的至少一个目标行内组件渲染至所述编辑区内;根据所述编辑区内的至少一个目标行内组件生成富文本模板;其中,至少一种行内组件属于富文本域中的文本内容,且其取值和/或样式可动态变化。

除上述操作之外,该编辑界面还可以执行富文本模板生成过程中的其它操作,其它操作可参见前述实施例的描述,在此不再赘述。

上述图4和图5中的存储器,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

上述图4和图5中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(nfc)模块,射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术等。

上述图4和图5中的显示屏包括屏幕,其屏幕可以包括液晶显示屏(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

上述图4和图5中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

上述图4和图5中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1