CN115079872A - 一种文档处理方法、装置、设备和介质 - Google Patents

一种文档处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN115079872A
CN115079872A CN202110227846.9A CN202110227846A CN115079872A CN 115079872 A CN115079872 A CN 115079872A CN 202110227846 A CN202110227846 A CN 202110227846A CN 115079872 A CN115079872 A CN 115079872A
Authority
CN
China
Prior art keywords
document
content
content block
editing
selection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110227846.9A
Other languages
English (en)
Other versions
CN115079872B (zh
Inventor
韦宗延
张恒宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202110227846.9A priority Critical patent/CN115079872B/zh
Priority to CN202311152865.5A priority patent/CN117170538A/zh
Priority to US18/548,693 priority patent/US20240152690A1/en
Priority to PCT/CN2022/078203 priority patent/WO2022184004A1/zh
Publication of CN115079872A publication Critical patent/CN115079872A/zh
Application granted granted Critical
Publication of CN115079872B publication Critical patent/CN115079872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本公开实施例公开了一种文档处理方法、装置、设备和介质。该方法包括:获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。本公开实施例的技术方案,通过设置选区内容块,允许用户在选区范围内,以选区内容块为编辑对象进行编辑操作,该编辑操作可以视为是对选区内容整体的操作,使得源文档和目标文档能够针对选取内容块整体进行同步更新。

Description

一种文档处理方法、装置、设备和介质
技术领域
本公开涉及计算机文档数据处理技术,尤其涉及一种文档处理方法、装置、设备和介质。
背景技术
目前人们已经大量使用计算机软件进行文档处理,且随着协同办公需求的增加,使得文档在线协同处理的技术逐步发展起来。
在线协同处理的文档,可能会存在多个用户需要查看、编辑、或相互引用内容的复杂需求,如何有效管理多个用户的各种操作,保持文档的准确性和一致性,是现有技术的研究方向之一。
发明内容
本公开实施例提供一种文档处理方法、装置、设备和介质,以使在线协同处理的文档满足多种可操作需求。
第一方面,本公开实施例提供了一种文档处理方法,所述方法包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
第二方面,本公开实施例还提供了一种基于树结构的文档处理方法,包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
第三方面,本公开实施例还提供了一种文档处理装置,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
内容更新模块,用于根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
第四方面,本公开实施例还提供了一种基于树结构的文档处理装置,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
树结构更新模块,用于根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
第五方面,本公开实施例还提供了一种文档处理设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开第一方面实施例所提供的文档处理方法或如本公开第二方面实施例所提供的基于树结构的文档处理方法。
第六方面,本公开实施例还提供了一种计算机存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如本公开第一方面实施例所提供的文档处理方法或如本公开第二方面实施例所提供的基于树结构的文档处理方法。
本公开实施例的技术方案,通过设置选区内容块,允许用户在选区范围内,以选区内容块为编辑对象进行编辑操作,该编辑操作可以视为是对选区内容整体的操作,使得源文档和目标文档能够针对选取内容块整体进行同步更新。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例提供的一种文档的树结构示意图;
图2为本公开实施例一提供的一种文档处理方法的流程图;
图3A为本公开实施例二提供的一种文档处理方法的流程图;
图3B为本公开实施例所适用的一种文档的界面示意图;
图4为本公开实施例所适用的另一种文档的界面示意图;
图5为本公开实施例三提供的一种基于树结构的文档处理方法的流程图;
图6为本公开实施例所适用的另一种文档的树结构示意图;
图7为本公开实施例所适用的再一种文档的树结构示意图;
图8为本公开实施例四提供的基于树结构的文档处理方法的流程图;
图9为本公开实施例五提供的一种文档处理装置的结构框图;
图10为本公开实施例六提供的一种基于树结构的文档处理装置的结构框图;
图11是本公开实施例七提供的一种文档处理设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施例适用于对在线文档的处理,可以由文档处理装置来执行,该装置可以采用硬件和/或软件的方式实现。该装置可配置于具有存储和计算能力的电子设备中,例如,可集成于服务端中,由服务端对在线文档进行处理,由此来响应用户通过客户端对在线文档的编辑操作。优选适用于由服务端为多个客户端提供在线文档编辑、查阅等服务的场景,文档的实体内容存储于服务端。该装置也可以配置在客户端中,或者由客户端与服务端相互配合,对文档进行处理。
为了清楚介绍本公开实施例的技术方案,首先介绍本公开实施例所适用的文档和内容块。文档和内容块的标识、版本以及文档和内容块之间的归属关系、引用关系等信息,可以采用多种形式进行记录,例如,可采用树结构的形式来记录,本公开实施例对此并不进行限制。
对于文档(Page),其可包括各种形式的文档内容,例如文字、图片、表格、链接和表格等各种多媒体实体内容,这些实体内容均归属于该文档。为了方便某些实体内容在多个地方被引用,因此将实体内容独立为内容块(Block),能够以内容块为单位方便地被其他文档或内容块引用。内容块是一份具有独立可协同、可记录能力的数据。所谓引用关系,是指源文档中的源内容块被其他目的文档或目的内容块所引用的关系,在目的文档或目的内容块中,可以复制源内容块的内容,同时可选的有或没有标记来向用户展示此引用关系。内容块的定义可以由在线文档软件预先设置,也可以由用户自定义设置,例如,可基于内容类型,区分内容块,如文字、图片、表格等为不同类型的内容;还可以基于预设的分隔符区分内容块,如“回车符”、“段落分隔符”、“分节符”等;还可以由用户操作设置内容块的分隔边界。
在本公开实施例中,提供了一种选区内容块,所谓选区内容块,是包括至少两个子内容块的特殊块,能够方便用户以多个内容块为对象进行操作,从而丰富前端处理功能,以及优化后端处理效率。下面分别通过实施例进行介绍。
实施例一
图2为本公开实施例一提供的一种文档处理方法的流程图,本实施例由通过硬件和/或软件方式实现的文档处理装置来实现,该装置优选可以为应用软件客户端,可配置于用户的电子设备终端中。当然,该装置也可以通过网页方式实现。应用软件或网页形式的客户端,均可以与服务端配合来实现文档处理。
如图2所示,该方法包括:
S210、获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
当前编辑文档是在客户端中用户正在打开并进行编辑操作的文档。选区内容块包括至少两个子内容块,至少两个子内容块的位置可以是连续的或间隔设置的。子内容块的区域长度、内容类型等不进行限制。用户可以通过选择多个子内容块后再进行设定操作来创建选区内容块,设定操作例如是右键菜单选项或快捷键等。
对于创建的选区内容块,可以保留在源文档中,并且也可以通过引用复制到目标文档中呈现,即选区内容块为从源文档引用至目标文档的内容。当前编辑文档可以是选区内容块所在的源文档,也可以是目标文档。源文档和目标文档可以是不同的文档,也可以是相同的文档。例如,在同一篇文档中,将一个位置的选区内容块引用至另一位置处,则该文档既为选区内容块的源文档,也是目标文档,所述一个位置可以称为源位置,所述另一个位置,可以称为目标位置,即,内容块在被引用前位于所述源文档中的位置可以称为源位置,在被执行引用操作后,被引用到所述目标文档的目标位置。
选区内容块具有其对应的选区范围,该选区范围通常即为各子内容块在文档中所占据的位置范围之和。如果所述选区范围内的子内容块连续设置,则所述选区范围的位置信息可以包括选区范围的起始位置信息和结束位置信息。或者,选区范围的位置信息也可以通过文档中的绝对坐标值或相对坐标值来记录。
选区范围可以以坐标值为单位,也可以以内容块的字符为单位,优选是以文档中的行为单位,方便用户在一定行的选区范围内进行操作,更为适应于用户对文档的编辑习惯。
S220、根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
对于选区范围内对选区内容块的编辑操作,可以作用于源文档和目标文档中的内容块,可进行同步更新。例如,都增加子内容块或删除子内容块等。
根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更的操作,具体可以包括:
根据所述编辑事件,在所述当前编辑文档中,对所述选区范围内的内容块进行内容更新;
将所述编辑事件或所述当前编辑文档中选区内容块的更新内容,通知服务端,以请求所述服务端对所述源文档和目标文档中的其他文档中的选区内容块进行同步变更。
上述操作过程,即可以先对当前编辑文档进行内容更新,而后通知服务端,以供服务端将该选区内容块的更新内容通知其他对应的客户端,以进行同步更新。例如,如果当前编辑文档是源文档,则服务端会通知引用该选区内容块的至少一个目标文档的客户端进行更新。如果当前编辑文档是目标文档,则服务端会通知该选区内容块的源文档和其他引用的目标文档的客户端进行更新。
本实施例的技术方案,通过设置选区内容块,允许用户在选区范围内,以选区内容块为编辑对象进行编辑操作,该编辑操作可以视为对选区内容块的整体操作,使得源文档和目标文档能够同步更新。避免了子内容块各自独立的情况下,只能以子内容块为编辑对象进行操作,例如新增子内容块的操作,将不会自动产生引用关系,由此不能产生源文档和目标文档同步更新的效果,导致用户的操作复杂不便。当设置有选区内容块的功能时,如果用户在目标文档的选区范围内操作,可认为是以选区内容块为操作对象的,则源文档中的选区内容块可同步于目标文档进行更新。若用户在源文档中将选区内容块进行修改,以使修改内容移动至选区范围外,则可以认为用户不希望修改后内容再作为选区内容块被引用,由此,目标文档中不再保留超出选区范围之外的内容。
实施例二
图3A为本公开实施例二提供的一种文档处理方法的流程图,本实施例以前述实施例为基础,具体说明选区内容块在文档中呈现效果的技术方案。该方法包括:
S310、在所述当前编辑文档中,对所述选区内容块的选区范围,以设定显示方式进行提示;
其中,所述设定显示方式包括在所述选区范围的上下边界显示边界线,或以设定背景颜色或透明度或排版样式显示所述选区范围。
为了让用户能直观看到选区范围,从而方便了解哪些是选区范围内的编辑事件,哪些是选区范围外的编辑事件,可以对选区范围进行区别显示。区别显示方式可以有多种。如果选区范围是连续的子内容块,则可以在选区范围的上边界处和下边界处分别显示边界线,例如,在起始子内容块的起始行上面显示一条虚线,在末尾子内容块的末尾行下面显示一条虚线,如图3B所示,上半部分为源文档呈现效果,下半部分为目标文档呈现效果。可以仅在引用选区内容块的目标文档中显示,也可以在源文档和目标文档中都进行选区范围的边界提示。在目标文档中,优选还可以显示选区内容块的源文档信息,以表明来源。
S320、获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
前述对选区范围以设定显示方式的提示,可以在获取编辑事件之前执行,以供用户在明确的选区范围内进行操作。或者,也可以在获取编辑事件的过程中进行提示。例如,通过鼠标悬停(hover)在选区范围、光标进入选区范围时,表明可以开始输入编辑事件,则以设定显示方式提示选区范围。
进一步可选的,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件的过程中,还可以包括:
将所述编辑事件对所述选区内容块更新后结果,在所述当前编辑文档中以设定预览方式进行提示。
上述操作,即将用户对选区内容块的编辑操作结果,预览展示给用户,以提示用户本次的编辑操作可能影响到哪些内容块。
其中,所述更新后结果可以包括子内容块的删除、移动或新增。预览提示方式可以有多种,例如,以半透明状态显示删除和新增子内容块等,或可以在选区范围内以高亮、常驻提示、hover提示等方式,提示会影响到选区范围内的哪些子内容块,还可以在引用的目标文档中,提示用户选区内容块有更新,以及具体的更新时间、更新作者等。
例如,在选区范围内移动子内容块的内容时,随着内容的移动会显示内容插入位置的提示线,当该提示线位于选区范围下边界之上、末尾子内容块之间时,将认为是对选区范围内部的顺序调整,则在源文档和目标文档中可同步显示移动后的选区内容块顺序,如图3B所示。
S330、根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
本实施例的技术方案,进一步在编辑选区内容块之前、过程中或之后,对选区范围及选区结果进行提示,以方便用户对选区内容块进行统一操作,也能避免用户的误操作。
下面介绍拖动子内容块操作的可选示例。在本示例中,获取用户在当前编辑文档的选区范围内删除子内容块的编辑事件,可以包括:
获取用户将所述选区范围内的子内容块进行拖动的操作,将所述拖动的操作识别为编辑事件。
上述拖动操作,可以是基于鼠标等控制手段,将选区范围内的一个或多个子内容块选中并进行拖动,以改变其位置。拖动后的结束位置可能位于选区范围内,也可能位于选区范围外。
上述方案中,可选的是,将所述拖动的操作识别为编辑事件包括:
基于所述拖动操作的结束位置,识别所述编辑事件的事件类型;
基于识别的事件类型,在所述源文档和目标文档中,对所述选区范围内的内容块进行更新。
在上述操作中,拖动后的结束位置不同,可能导致编辑事件的事件类型不同,由此可引起不同的文档处理效果。
具体的,基于所述拖动操作的结束位置,识别所述编辑事件的事件类型包括以下至少一项:
当所述拖动操作的结束位置位于选区范围外时,将所述拖动操作识别为删除拖动的子内容块;
当所述拖动操作的结束位置位于选区范围内时,将所述拖动操作识别为调整拖动的子内容块的显示位置。
当子内容块被拖动到选区范围之外,说明编辑者想从选区内容块中删除该子内容块。当子内容块被拖动到选区范围之内,说明编辑者仍想在选区内容块中保留该子内容块,而需要变更的是子内容块的显示位置。
在上述实施例的技术方案中,该方法还可以包括:
显示选区范围的边界信息,在执行所述拖动操作时,显示所述拖动操作的结束位置提示标识;基于结束所述拖动操作时所述结束位置提示标识与所述边界信息的位置关系,确定所述拖动操作的结束位置是否位于所述选区范围内。
由此,可以提示用户拖动操作结束后的文档处理效果,避免误操作。
对于典型的拆分操作,一可选示例可以包括:
获取用户在当前编辑文档的选区范围内拆分子内容块的编辑事件,可以具体包括:获取用户将所述选区范围内的末尾子内容块进行拆分的操作,将所述拆分的操作识别为编辑事件。相应的,根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更可以包括:
如果所述当前编辑文档为源文档,且所述拆分操作后的新建子内容块位于选区范围外,则在所述源文档中将所述新建子内容块从所述选区内容块中删除,且在所述目标文档中,将所述选区内容块的末尾子内容块拆分,并保留位于选区范围内的子内容块;
如果所述当前编辑文档为目标文档,且将所述目标文档和源文档中的所述选区范围均更新至保留所述拆分操作后的新建子内容块。
换言之,在对所述选区内容块的末尾子内容块进行拆分操作时,如果是在所述选区内容块的源位置执行所述拆分操作,则在引用所述选区内容块的目标位置显示被拆分的子内容块拆分后的前半部分内容、且不在显示拆分后的后半部分内容;和/或,是在引用所述选区内容块的目标位置中拆分末尾子内容块,在所述源位置和所述目标位置均显示拆分后的后半部分内容。
文档处理过程中的编辑事件可以有多种,可选是包括下述至少一项:
在所述选区范围内新增子内容块;
在所述选区范围内删除子内容块;
在所述选区范围内变更子内容块的内容;
在所述选区范围内变更两个以上子内容块的顺序。
当然,编辑事件不限于此,例如还可以包括整体移动所述选区范围的选区内容块。
下面通过实施例分别对各种编辑事件进行说明。
对于在所述选区范围内新增子内容块的编辑事件,可以是用户在选区范围内输入或复制拷贝内容,以产生新的子内容块。根据内容块的创建规则,还可以是通过“回车”等操作,将原有一个子内容块拆分为两个子内容块。由于该编辑操作位于选区范围内,所以新增的子内容块也可以作为选区内容块的一部分,包括与目标文档这件的引用关系,而用户不必重新建立新增子内容块与目标文档的引用关系。
对于在所述选区范围内删除子内容块的编辑时间,可以是用户在选区范围内直接删除某子内容块,可选的还可以包括:获取用户将所述选区范围内的子内容块拖动至选区范围外的操作,作为所述编辑事件。如图4所示,上半部分为源文档呈现效果,下半部分为目标文档呈现效果。当用户将选区范围内的子内容块拖动至选区范围外时,表明只在当前编辑文档中保留该子内容块,但从选区范围内删除,所以有引用关系的目标文档中,该选区范围中不再保留该删除的子内容块。如图4所示,如果该提示线移动到选区下边界线之下,则认为是将移动的内容块从选区内容块中删除,在目标文档中删除了“测试3”的子内容块,则源文档的选区范围内“测试3”的子内容块消除。反之,源文档拖动子内容块至选区范围外,目标文档也会产生删除的效果。
对于在所述选区范围内变更子内容块的内容的编辑事件,可以是对某子内容块的内容直接发生变更。
对选区内容块的编辑事件还可以包括:整体移动所述选区范围的选区内容块。该编辑事件也是以选区内容块为对象的操作,此时,在当前编辑文档中,选区范围可随之更新,但选区内容块的内容不发生更新。对应的源文档和目标文档中的选区范围中的内容不发生变化。
在一些实施例中,文档对应有树结构,服务端通过树结构来对文档进行管理。多个文档的树结构可通过引用等关联关系而结合在一起。图1是本公开实施例提供的一种文档的树结构示意图。参考图1所示,简单示出了一个文档的树结构。该文档包括两个内容块,一个为根内容块,另一个为非根节点的其他内容块。所谓根内容块,是文档创建时产生的基础内容,一篇文档可以只有一个根内容块。其他内容块是归属于文档的非根内容块,可以在创建时,基于模板与根内容块一起产生,也可以是创建后由用户逐步添加的内容块。如图1所示,树结构包括两类节点,即文档节点和内容块节点。文档节点(R节点)对应于文档,同时也对应于文档的根内容块。内容块节点(A节点)对应于内容块A。
在树结构中,所述文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系。即,A节点的父节点为R节点,R节点的子节点为A节点,两者之间存在父子关系。
所述文档节点记录有文档版本标识序列,所述内容块节点记录有内容块版本标识序列;所述文档版本标识用于表征归属于所述文档的每个内容块的更新。具体如图1所示,A节点包括内容块版本标识序列,即RV序列,内容块版本标识也称为版本记录(RecordVersion,简称RV),用于记录内容块内容发生变化的各个版本。归属于所述文档的内容块中包括一个根内容块,所述文档节点还记录有根内容块的内容块版本标识序列。如果R节点包括根内容块,因此也可以包括RV序列,当然,如果文档节点不包括根内容块,而将基础内容块也作为一个内容块子节点,则文档节点可以不包括RV序列。如图1所示,文档节点还记录有文档版本标识序列,即TV序列,TV用于表征归属于该文档的每个内容块的更新。例如,每个内容块节点的新增RV,均可以导致新增TV。
在树结构中,还可以进一步记录编辑操作标识(TID,Transaction ID),编辑操作代表一次事务操作,该事务操作可导致内容块的内容变化或其他树结构发生变化的操作。如图1所示,可选的,所述文档节点和所述内容块节点还记录有编辑操作标识序列,所述编辑操作标识用于表征更新内容块的编辑操作。TV可以与每个节点的RV一一对应记录;或者,当一个编辑操作导致多个内容块的RV发生变化时,也可以是一个TV记录一个TID对应的多个RV。
在树结构中,可以记录有树结构快照的表格,即对于每个TV,记录该TV状态下,该文档所有内容块的最新RV。树结构快照还可以记录该TV所对应的新增RV。
树结构的节点除了记录内容块和文档之间的关系,以及版本变化外,还对应记录内容块的实体内容,每个内容块节点可对应记录每个RV相当于前一个RV,该内容块的实体变化内容。内容块针对每个版本的增量实体内容,以及最新版本的实体内容,可对应于节点标识和版本标识进行存储,以方便读取。
实施例三
图5为本公开实施例三提供的一种基于树结构的文档处理方法的流程图,本实施例介绍基于树结构对文档中选区内容块的支持功能,该方法可以由基于树结构的文档处理装置来执行,该装置可以采用硬件和/或软件的方式来实现,可配置于电子设备中,例如用户终端设备,或服务端设备中。基于树结构的文档处理方法可以前述实施例提供的文档处理方法相互配合,来实现文档中选区内容块的功能。
如图5所示,该方法包括:
S510、获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
可参见前述实施例所介绍的文档、内容块、选区内容块和编辑事件的含义,此处不再赘述。当客户端获取到用户的编辑事件时,可以在客户端本地处理,也可以传输给服务端进行处理。对于在线协同处理的文档,可以由服务端对文档的内容和结构树进行集中存储,当客户端打开文档时,可以从服务端记载文档的数据和树结构,方便进行本地操作。当用户通过不同客户端打开文档,或通过不同文档加载同一个内容块时,均可从服务端获取一致的内容和树结构。
S520、根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
在本实施例中,文档的树结构中为选区内容块设置有专用的选区节点。选区节点为一类特殊的内容块节点。所述选区节点用于对应记录所述选区节点的父节点标识和选区范围信息。
如前所述,内容块节点用于对应记录内容块的实体内容、历史编辑版本的版本标识(RV序列)和历史编辑操作的操作标识(TID序列);
文档节点用于对应记录文档的根内容块的实体内容、历史编辑版本的块版本标识(RV序列)和历史编辑操作的操作标识(TID序列),还用于记录文档的历史编辑版本的文档版本标识(TV序列);
节点还用于记录父节点标识和/或子节点标识。
与普通内容块节点相比,选区节点还记录有选区范围信息,以及,选区节点表明所包括的子内容块,而选区内容块本身没有实体内容,所以选区节点可以不对应记录归属于文档的实体内容。
在文档的树结构中,每个节点有唯一的节点标识,节点之间是父子关系,每个节点记录有自身的父节点的节点标识。每个节点还记录有内容块在文档中的位置信息,位置信息可以包括文档中的坐标值,也可以是在文档中的所在行数据,例如,行1-行3,可以根据文档的编辑需求来设定。在父节点中,可以记录有子节点数组,用于记录父节点的所有子节点的节点标识和位置信息。例如,所述文档节点还用于对应记录子节点在文档中的位置。
节点可以记录或不记录自己的子节点的节点标识。例如,选区节点可以记录自己的父节点标识和子节点标识,以记录归属于哪个文档以及包括哪些子内容块。
或者,选区节点可以仅记录自己的父节点标识,而不记录子节点标识。当选区节点需要获知所包括的子节点时,可以基于选区范围信息,从所属的父节点中查询落入选区范围中的子节点包括哪些内容块节点。
在本实施例的上述操作中,如果编辑事件位于文档的选区范围内,则是以选区内容块为对象进行操作。则在所述当前编辑文档所对应树结构中,可以对节点和/或节点之间的父子关系进行更新。例如,增加子内容块的节点与选区节点之间的父子关系等。
所述选区节点还可以用于记录选区内容块的历史编辑版本的块版本标识和历史编辑操作的操作标识。选区节点的RV序列和TID序列,可以记录对选区内容块的整体更新,例如,当整体移动选区内容块位置时,选区范围被更新,选区节点的TID序列和RV序列即会产生新的版本。可以通过选区节点快照的方式记录选区节点下各RV所对应的子内容块节点的最新版本,从而以选区节点为对象,进行整体操作。通常,选区节点的选区范围或者选区范围的父元素发生变化时,选区节点的RV会变化,可以基于选区节点的RV进行协同操作,比如引用范围发生变化时,对于所述选区节点有关联关系的其他节点进行对应更新。可选的,RV可以包括两部分,一部分用于记录选区范围或者选区范围的父元素的变化情况,另一部分用于记录选区节点所关联的各个子节点的变化情况,相应地,上述该整体操作可以是以选区内容块为对象的更新监听、版本回退等。从而使服务端管理文档的逻辑更清晰,减少冲突,也能提高服务端的监听效率和降低数据交互成本。
本实施例的技术方案,通过设置选区内容块,允许用户在选区范围内,以选区内容块为编辑对象进行集中编辑操作,避免了子内容块各自独立的情况下,只能以子内容块为编辑对象进行操作。基于树结构的选区节点,对选区内容块与文档和子内容块节点之间的关系进行管理,使得节点之间的逻辑关系清晰,方便统一操作。可以将选区内容块作为一个整体,在树结构中更新与文档节点之间的父子关系。
下面结合附图6介绍树结构中选区节点与其他节点的关系。如图6所示,包括两个文档节点R0和R1,一个选区节点S1,一个引用节点C,以及两个内容块节点A和B。内容块节点A和B归属于文档节点R0。内容块节点A和B作为选区节点S1的子节点。文档节点R0的文档是选区节点S1的源文档,文档节点R1是选区节点S1的引用文档,即文档节点R1的文档中引用了包括子内容块A和B的选区内容块,引用关系通过文档节点R1的引用节点C来表征。对于内容块的节点A、B、S1和C,均分别记录有TID序列和RV序列,文档节点R0和R1还记录有TV序列。图6中,节点之间的实线表示节点之间的父子关系,虚线表示TV和RV版本之间的映射关系。基于选区节点,可实现引用多个内容块时,能够统一操作,例如,基于TID为t7的编辑操作,可以一次性删除文档节点R1对内容块节点A和B的引用关系。类似的,在选区范围内的变更,以及与内容块同构的协同模式时,采用选区节点S1可统一操作,比单独操作内容块更便捷。
另以图7所示的简化树结构为例,文档节点R有三个内容块节点D1、D2和D3,内容块节点D1又包括内容块节点A和B,内容块节点A和B组成选区节点S,可被其他文档引用。如果在连续的兄弟节点A和B中增删节点,选区节点要同步变化,例如在源文档的内容块A和B中间插入内容块C,则在树结构中增加内容块节点C,同时,选区节点S增加了子节点C。目标文档可直接引用内容块节点A、C和B。
在上述各实施例的基础上,进一步详细介绍选区范围信息的内容和记录方式。选区节点的选区范围信息,表征选区内容块的子内容块在文档中的位置。至少两个子内容块在所述当前编辑文档中的位置可以连续或相互间隔。当子内容块连续设置时,选区范围是一个连续的整体区域。
所述选区范围信息可以包括选区的起始位置信息和结束位置信息,或者,
所述选区范围信息可以包括该选区节点所包含的选区内容块的节点标识信息。
当选区范围通过起始位置和结束位置记录时,则可以计算出起始位置和结束位置之间的区域,作为选区范围。当选区范围通过节点标识记录时,可从父节点或子节点中查询节点标识的位置信息,从而算出这些节点构成的区域范围。
可选的是,当选区范围以文档中的行,作为最小单位时,所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块的起始行和末尾子内容块的末尾行。即,在起始子内容块的起始行之前的操作,或在末尾子内容块的末尾行之后的操作,相当于选区范围外的操作。
或者,所述选区范围信息的起始位置信息和结束位置信息还可以为,起始子内容块之前的起始标记线和末尾子内容块之后的结束标记线,所述起始标记线和所述结束标记线根据所述当前编辑文档中显示的边界线位置进行确定。如前述实施例所述,为了用户能够在文档中直观看到选区范围,可以在文档中显示边界线,该边界线位置,即为起始标记线和结束标记线的位置,选区节点中可记录标记线的操作,从而判断用户的编辑操作是否落入起始标记线和结束标记线之间的选区范围,可参考图4所示的边界线。
实施例四
图8为本公开实施例四提供的基于树结构的文档处理方法的流程图,本实施例以前述实施例为基础,进一步介绍获取编辑事件的具体情况。该方法包括:
S810、获取用户在当前编辑文档中执行的编辑操作;
该编辑操作可以有多种,可以是针对文档内容的增删改、位置移动、引用关系的增删改等。用户输入编辑操作的方式可以是键盘键入、鼠标拖动内容、或复制拷贝等。本申请对此不进行限制。该编辑操作所针对文档内容的位置可以在选区范围内或选区范围外。
S820、如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件;
基于选区范围信息所记录的位置信息,可以用于确定编辑操作的操作位置,是否落入选区范围内。编辑操作的操作位置可以为编辑操作所需要变更内容在文档中的位置,例如可以字符或图片、表格所占区域为操作位置。可以设定,操作位置部分或全部落入选区范围内,即确定为落入选区范围;或可以设定操作位置部分或全部落入选区范围外,即确定为未落入选区范围。
确定操作位置是否落入选区范围的具体方式可以有多种,主要如下:
第一、确定操作位置所占文档的行,是否全部落入选区范围的起始行和末尾行之间;若是,则确定为落入选区范围,否则确定为未落入选区范围。
例如,对于选区范围内的最后一个子内容块,如果通过回车操作将子内容块拆分为两个子内容块;拆分后位于前面的子内容块将作为选区内容块的末尾子内容块,其最后一行为选区范围的末尾行。那么拆分后位于后半部的子内容块,已经超出了末尾行,落入选区范围外。因此,拆分编辑得到前半部子内容块的动作落入选区范围内,相当于更改了前半部子内容块的内容;拆分编辑得到的后半部子内容块的动作落入选区范围外,在选区范围外新建一子内容块,不属于该选区内容块。在一些实施例中,若是在所述选区内容块的源位置(例如源文档中)中拆分末尾子内容块,则由此带来的变更可以是,在引用的目标文档中(即引用所述选区内容块的目标位置,当源文档和目标文档为同一个文档时,选区内容块在该同一个文档中的源位置和引用的目标位置不同),将不再显示新建的子内容块。反之在目标文档中也可以有类似效果。在另一些实施例中,若是在引用所述选区内容块的目标位置中拆分末尾子内容块,则由此带来的变更可以是,在所述源位置和目标位置中,都显示新建的子内容块。
第二、确定操作位置所占文档的行,是否全部落入选区范围的起始标记线和末尾标记线之间;若是,则确定为落入选区范围,否则确定为未落入选区范围。
仍以前述拆分末尾子内容块为例,若拆分时产生的后半部子内容块仍然落入末尾标记线之内,则后半部子内容块仍属于选区内容块,该拆分编辑操作均落入选区范围内。
S830、根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
根据编辑事件是否落入选区范围内,对树结构进行更新。选区内容块与子内容块之间的所属关系若发生变更,则节点之间的父子关系发生更新。
根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新可具体包括如下情况:
如果所述编辑事件为在选区范围内新增子内容块,则在所述树结构中,新增归属于文档节点的内容块节点,并建立新增内容块节点与所述选区节点之间的父子关系。
如果根据所述编辑事件删除选区内容块中的子内容块,则在所述当前编辑文档所对应树结构中,将选区节点与删除子内容块节点之间的父子关系删除。
如果根据编辑事件调整了选区内容块中的子内容块的位置顺序,则子内容块的父节点应相应变更子节点的位置信息,例如文档节点和/或选区节点中可变更子节点的位置信息。
如果所述编辑事件为整体移动选区范围的选区内容块,则在所述树结构中,更新所述选区节点的选区范围。
本实施例的技术方案,能够通过确定编辑事件是否发生与选区范围内,从而实现对选区范围内文档内容的集中操作,为用户提供了丰富功能。
在上述实施例的基础上,还可以包括:
获取用户在当前编辑文档中执行的编辑操作;
如果所述编辑操作的操作位置落入非选区范围,则执行所述编辑操作,并根据所述编辑操作对所述选区范围的起止位置进行更新。
非选区范围,可以是选区范围之前或之后,如果在选区位置前增加内容,可导致选区的起始位置和终止位置同时后移。如果在选区位置后增加内容,则可能不影响选区位置。选区范围的位置信息变化后,可变更在选区节点中的记录。
本实施例中,所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档,则对节点和/或节点之间的父子关系进行更新之后,还可以包括:根据更新后的树结构,对所述选区内容块关联的源文档或目标文档进行同步更新。
上述技术方案,具体可以是通过在服务端中维护文档的树结构,当树结构发生更新时,可以基于树结构通知存在引用关系的源文档和目标文档进行同步更新,以简单、清楚的文档内容块关系逻辑,保持内容同步。
本公开实施例的技术方案,通过对选区内容块的引用,底层技术实现上,不论选区范围内的内容是承载在多个内容块内,还是单个内容块内,都会作为引用内容在引用位置上更新。因此当在选区范围内由于换行等操作导致选区范围内的内容由承载在一个内容块内变成承载在多个内容块时,既能保持对原内容块的引用,还能自动根据选区范围的变更,对应变化所引用的内容块的个数,例如增加对新增内容块的引用。使用户的操作更加简便,底层处理逻辑也更加清晰,减低了发生冲突和不一致的可能性。
在本公开所提供的实施例基础上,进一步介绍对子内容块进行拆分的典型操作。具体是:
所述编辑操作为针对所述选区范围内的末尾子内容块进行的拆分操作,则如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件,可以包括:
如果所述拆分操作后前部分子内容块位于选区范围内,后部分子内容块位于选区范围,确定为针对选区内容块的编辑事件。
对末尾子内容块的拆分操作,例如可以是在末尾子内容块的中间,通过回车等设定操作将一个内容块拆分为两段,以形成两个子内容块。当然,根据独立内容块的定义,也可以是通过其他操作将一个内容块拆分为前部分内容块和后部分内容块。
可选的是,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述当前编辑文档为源文档,则根据所述拆分操作,在所述源文档的树结构中更新所述前部分子内容块的内容块版本标识,并新建所述后部分子内容块的内容块节点,所述新建内容块节点与所述选区节点无父子关系;在所述目标文档的树结构中更新所述前部分子内容块的内容块版本标识。
如果所述当前编辑文档为目标文档,则根据所述拆分操作,将所述目标文档和源文档的树结构中新建所述后部分子内容块的内容块节点,并建立所述新建内容块节点与所述选区节点之间的父子关系,且在所述源文档和目标文档的树结构中更新所述前部分子内容块的内容块版本标识。
上述操作可见,在目标文档和源文档中执行拆分操作,可带来不一样的更新效果,以符合作者用户对选区内容块的编辑操作需求。
实施例五
图9为本公开实施例五提供的一种文档处理装置的结构框图。该文档处理装置包括:编辑事件获取模块910和内容更新模块920。其中,编辑事件获取模块910,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;内容更新模块920,用于根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
在上述实施例的基础上,所述编辑事件包括下述至少一项:
在所述选区范围内新增子内容块;
在所述选区范围内删除子内容块;
在所述选区范围内变更子内容块的内容;
在所述选区范围内变更两个以上子内容块的顺序。
在上述实施例的基础上,可选的是,内容更新模块包括:内容更新单元和更新通知单元。其中,内容更新单元,用于根据所述编辑事件,在所述当前编辑文档中,对所述选区范围内的内容块进行内容更新;更新通知单元,用于将所述编辑事件或所述当前编辑文档中选区内容块的更新内容,通知服务端,以请求所述服务端对所述源文档和目标文档中的其他文档中的选区内容块进行同步变更。
在上述实施例的基础上,可选的是,所述选区范围内的子内容块连续设置,则所述选区范围的位置信息包括选区范围的起始位置信息和结束位置信息。
在上述实施例的基础上,可选的是,所述选区范围以文档中的行为单位。
在上述实施例的基础上,可选的是,该装置还包括:选区范围提示模块,用于在获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件之前或过程中,在所述当前编辑文档中,对所述选区内容块的选区范围,以设定显示方式进行提示;其中,所述设定显示方式包括在所述选区范围的上下边界显示边界线,或以设定背景颜色或透明度或排版样式显示所述选区范围。
在上述实施例的基础上,可选的是,编辑事件获取模块具体用于获取用户将所述选区范围内的子内容块进行拖动的操作,将所述拖动的操作识别为编辑事件。
在上述实施例的基础上,可选的是,编辑事件获取模块具体包括:
事件类型确定单元,用于基于所述拖动操作的结束位置,识别所述编辑事件的事件类型;
内容更新单元,用于基于识别的事件类型,在所述源文档和目标文档中,对所述选区范围内的内容块进行更新。
在上述实施例的基础上,可选的是,事件类型确定单元具体用于执行以下至少一项:
当所述拖动操作的结束位置位于选区范围外时,将所述拖动操作识别为删除拖动的内容块;
当所述拖动操作的结束位置位于选区范围内时,将所述拖动操作识别为调整拖动的子内容块的显示位置。
在上述实施例的基础上,可选的是,该装置还包括:
边界提示单元,用于显示选区范围的边界信息,在执行所述拖动操作时,显示所述拖动操作的结束位置提示标识;
边界位置确定单元,用于基于结束所述拖动操作时所述结束位置提示标识与所述边界信息的位置关系,确定所述拖动操作的结束位置是否位于所述选区范围内。
在上述实施例的基础上,可选的是,该装置还包括:结果预览模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件的过程中,将所述编辑事件对所述选区内容块更新后结果,在所述当前编辑文档中以设定预览方式进行提示;其中,所述更新后结果包括子内容块的删除、移动或新增。
本公开实施例所提供的文档处理装置可用于执行本公开实施例所提供的文档处理方法,具备相应的功能和有益效果。
实施例六
图10为本公开实施例六提供的一种基于树结构的文档处理装置的结构框图。该装置包括:编辑事件获取模块1010和树结构更新模块1020。其中,编辑事件获取模块1010,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;树结构更新模块1020,用于根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
在上述实施例的基础上,可选的是,所述选区节点用于对应记录所述选区节点的父节点标识和选区范围信息。
在上述实施例的基础上,可选的是,所述选区范围信息包括选区的起始位置信息和结束位置信息,或者,
所述选区范围信息包括该选区节点所包含的选区内容块的节点标识信息。
在上述实施例的基础上,可选的是:
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块的起始行和末尾子内容块的末尾行;或
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块之前的起始标记线和末尾子内容块之后的结束标记线,所述起始标记线和所述结束标记线根据所述当前编辑文档中显示的边界线位置进行确定。
在上述实施例的基础上,可选的是,所述选区节点还用于记录选区内容块的历史编辑版本的块版本标识和历史编辑操作的操作标识。
在上述实施例的基础上,可选的是,内容块节点用于对应记录内容块的实体内容、历史编辑版本的版本标识和历史编辑操作的操作标识;
文档节点用于对应记录文档的根内容块的实体内容、历史编辑版本的块版本标识和历史编辑操作的操作标识,还用于记录文档的历史编辑版本的文档版本标识;
节点还用于记录父节点标识和/或子节点标识。
在上述实施例的基础上,可选的是,所述文档节点还用于对应记录子节点在文档中的位置。
在上述实施例的基础上,可选的是,所述至少两个子内容块在所述当前编辑文档中的位置连续或相互间隔。
在上述实施例的基础上,可选的是,编辑事件获取模块1010包括:
第一编辑操作获取单元,用于获取用户在当前编辑文档中执行的编辑操作;
选区范围内操作单元,用于如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件。
在上述实施例的基础上,可选的是,所述编辑操作为针对所述选区范围内的末尾子内容块进行的拆分操作,则选区范围内操作单元具体用于如果所述拆分操作后前部分子内容块位于选区范围内,后部分子内容块位于选区范围,确定为针对选区内容块的编辑事件。
在上述实施例的基础上,可选的是,树结构更新模块具体用于:
如果所述当前编辑文档为源文档,则根据所述拆分操作,在所述源文档的树结构中更新所述前部分子内容块的内容块版本标识,并新建所述后部分子内容块的内容块节点,所述新建内容块节点与所述选区节点无父子关系;在所述目标文档的树结构中更新所述前部分子内容块的内容块版本标识;
如果所述当前编辑文档为目标文档,则根据所述拆分操作,将所述目标文档和源文档的树结构中新建所述后部分子内容块的内容块节点,并建立所述新建内容块节点与所述选区节点之间的父子关系,且在所述源文档和目标文档的树结构中更新所述前部分子内容块的内容块版本标识。
在上述实施例的基础上,可选的是,该装置还包括:
第二编辑操作获取单元,用于获取用户在当前编辑文档中执行的编辑操作;
选区范围外操作单元,用于如果所述编辑操作的操作位置落入非选区范围,则执行所述编辑操作,并根据所述编辑操作对所述选区范围的起止位置进行更新。
在上述实施例的基础上,可选的是,树结构更新模块具体用于:如果所述编辑事件为在选区范围内新增子内容块,则在所述树结构中,新增归属于文档节点的内容块节点,并建立新增内容块节点与所述选区节点之间的父子关系。
在上述实施例的基础上,可选的是,树结构更新模块具体用于:如果所述编辑事件为整体移动选区范围的选区内容块,则在所述树结构中,更新所述选区节点的选区范围。
在上述实施例的基础上,可选的是,所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档,该装置还包括:文档同步更新模块,用于对节点和/或节点之间的父子关系进行更新之后,根据更新后的树结构,对所述选区内容块关联的源文档或目标文档进行同步更新。
本公开实施例所提供的文档处理装置可用于执行本公开实施例所提供的文档处理方法,具备相应的功能和有益效果。
实施例七
图11是本公开实施例七提供的一种文档处理设备的结构框图。下面参考图11,其示出了适于用来实现本公开实施例的电子设备(例如包括终端设备或服务端设备)的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图11示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100可以包括处理装置(例如中央处理器、图形处理器等)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储装置1106加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有电子设备1100操作所需的各种程序和数据。处理装置1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
通常,以下装置可以连接至I/O接口1105:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1106;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1107;包括例如磁带、硬盘等的存储装置1106;以及通信装置1109。通信装置1109可以允许电子设备1100与其他设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的电子设备1100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1109从网络上被下载和安装,或者从存储装置1106被安装,或者从ROM 1102被安装。在该计算机程序被处理装置1101执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种文档处理方法,所述方法包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
上述方法中,所述编辑事件包括下述至少一项:
在所述选区范围内新增子内容块;
在所述选区范围内删除子内容块;
在所述选区范围内变更子内容块的内容。
上述方法中,根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更包括:
根据所述编辑事件,在所述当前编辑文档中,对所述选区范围内的内容块进行内容更新;
将所述编辑事件或所述当前编辑文档中选区内容块的更新内容,通知服务端,以请求所述服务端对所述源文档和目标文档中的其他文档中的选区内容块进行同步变更。
上述方法中,所述选区范围内的子内容块连续设置,则所述选区范围的位置信息包括选区范围的起始位置信息和结束位置信息。
上述方法中,所述选区范围以文档中的行为单位。
上述方法中,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件之前或过程中,还包括:
在所述当前编辑文档中,对所述选区内容块的选区范围,以设定显示方式进行提示;其中,所述设定显示方式包括在所述选区范围的上下边界显示边界线,或以设定背景颜色或透明度或排版样式显示所述选区范围。
上述方法中,获取用户在当前编辑文档的选区范围内删除子内容块的编辑事件,包括:
获取用户将所述选区范围内的子内容块进行拖动的操作,将所述拖动的操作识别为编辑事件。
上述方法中,将所述拖动的操作识别为编辑事件包括:
基于所述拖动操作的结束位置,识别所述编辑事件的事件类型;
基于识别的事件类型,在所述源文档和目标文档中,对所述选区范围内的内容块进行更新。
上述方法中,基于所述拖动操作的结束位置,识别所述编辑事件的事件类型包括以下至少一项:
当所述拖动操作的结束位置位于选区范围外时,将所述拖动操作识别为删除拖动的内容块;
当所述拖动操作的结束位置位于选区范围内时,将所述拖动操作识别为调整拖动的子内容块的显示位置。
上述方法中,还包括:
显示选区范围的边界信息,在执行所述拖动操作时,显示所述拖动操作的结束位置提示标识;
基于结束所述拖动操作时所述结束位置提示标识与所述边界信息的位置关系,确定所述拖动操作的结束位置是否位于所述选区范围内。
上述方法中,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件的过程中,还包括:
将所述编辑事件对所述选区内容块更新后结果,在所述当前编辑文档中以设定预览方式进行提示;
其中,所述更新后结果包括子内容块的删除、移动或新增。
根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法,包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
上述方法中,所述选区节点用于对应记录所述选区节点的父节点标识和选区范围信息。
上述方法中,所述选区范围信息包括选区的起始位置信息和结束位置信息,或者,
所述选区范围信息包括该选区节点所包含的选区内容块的节点标识信息。
上述方法中:
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块的起始行和末尾子内容块的末尾行;或
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块之前的起始标记线和末尾子内容块之后的结束标记线,所述起始标记线和所述结束标记线根据所述当前编辑文档中显示的边界线位置进行确定。
上述方法中,所述选区节点还用于记录选区内容块的历史编辑版本的块版本标识和历史编辑操作的操作标识。
上述方法中,内容块节点用于对应记录内容块的实体内容、历史编辑版本的版本标识和历史编辑操作的操作标识;
文档节点用于对应记录文档的根内容块的实体内容、历史编辑版本的块版本标识和历史编辑操作的操作标识,还用于记录文档的历史编辑版本的文档版本标识;
节点还用于记录父节点标识和/或子节点标识。
上述方法中,所述文档节点还用于对应记录子节点在文档中的位置。
上述方法中,所述至少两个子内容块在所述当前编辑文档中的位置连续或相互间隔。
上述方法中,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件包括:
获取用户在当前编辑文档中执行的编辑操作;
如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件。
上述方法中,所述编辑操作为针对所述选区范围内的末尾子内容块进行的拆分操作,则如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件,包括:
如果所述拆分操作后前部分子内容块位于选区范围内,后部分子内容块位于选区范围,确定为针对选区内容块的编辑事件。
上述方法中,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述当前编辑文档为源文档,则根据所述拆分操作,在所述源文档的树结构中更新所述前部分子内容块的内容块版本标识,并新建所述后部分子内容块的内容块节点,所述新建内容块节点与所述选区节点无父子关系;在所述目标文档的树结构中更新所述前部分子内容块的内容块版本标识;
如果所述当前编辑文档为目标文档,则根据所述拆分操作,将所述目标文档和源文档的树结构中新建所述后部分子内容块的内容块节点,并建立所述新建内容块节点与所述选区节点之间的父子关系,且在所述源文档和目标文档的树结构中更新所述前部分子内容块的内容块版本标识。
上述方法中,还包括:
获取用户在当前编辑文档中执行的编辑操作;
如果所述编辑操作的操作位置落入非选区范围,则执行所述编辑操作,并根据所述编辑操作对所述选区范围的起止位置进行更新。
上述方法中,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述编辑事件为在选区范围内新增子内容块,则在所述树结构中,新增归属于文档节点的内容块节点,并建立新增内容块节点与所述选区节点之间的父子关系。
上述方法中,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述编辑事件为整体移动选区范围的选区内容块,则在所述树结构中,更新所述选区节点的选区范围。
上述方法中,所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档,则对节点和/或节点之间的父子关系进行更新之后,还包括:
根据更新后的树结构,对所述选区内容块关联的源文档或目标文档进行同步更新。
根据本公开的一个或多个实施例,提供了一种文档处理装置,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
内容更新模块,用于根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理装置,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
树结构更新模块,用于根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
根据本公开的一个或多个实施例,提供了一种文档处理设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例所提供的文档处理方法或如本公开实施例所提供的基于树结构的文档处理方法。
根据本公开的一个或多个实施例,提供了一种计算机存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如本公开实施例所提供的文档处理方法或如本公开实施例所提供的基于树结构的文档处理方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (30)

1.一种文档处理方法,其特征在于,所述方法包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
2.根据权利要求1所述的方法,其特征在于,所述编辑事件包括下述至少一项:
在所述选区范围内新增子内容块;
在所述选区范围内删除子内容块;
在所述选区范围内变更子内容块的内容;
在所述选区范围内变更两个以上子内容块的顺序。
3.根据权利要求1所述的方法,其特征在于,根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更包括:
根据所述编辑事件,在所述当前编辑文档中,对所述选区范围内的内容块进行内容更新;
将所述编辑事件或所述当前编辑文档中选区内容块的更新内容,通知服务端,以请求所述服务端对所述源文档和目标文档中的其他文档中的选区内容块进行同步变更。
4.根据权利要求1所述的方法,其特征在于,所述选区范围内的子内容块连续设置,则所述选区范围的位置信息包括选区范围的起始位置信息和结束位置信息。
5.根据权利要求1所述的方法,其特征在于,所述选区范围以文档中的行为单位。
6.根据权利要求1或2所述的方法,其特征在于,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件之前或过程中,还包括:
在所述当前编辑文档中,对所述选区内容块的选区范围,以设定显示方式进行提示;其中,所述设定显示方式包括在所述选区范围的上下边界显示边界线,或以设定背景颜色或透明度或排版样式显示所述选区范围。
7.根据权利要求1所述的方法,其特征在于,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件,包括:
获取用户将所述选区范围内的子内容块进行拖动的操作,将所述拖动的操作识别为编辑事件。
8.根据权利要求7所述的方法,其特征在于,将所述拖动的操作识别为编辑事件包括:
基于所述拖动操作的结束位置,识别所述编辑事件的事件类型;
基于识别的事件类型,在所述源文档和目标文档中,对所述选区范围内的内容块进行更新。
9.根据权利要求8所述的方法,其特征在于,基于所述拖动操作的结束位置,识别所述编辑事件的事件类型包括以下至少一项:
当所述拖动操作的结束位置位于选区范围外时,将所述拖动操作识别为删除拖动的内容块;
当所述拖动操作的结束位置位于选区范围内时,将所述拖动操作识别为调整拖动的子内容块的显示位置。
10.根据权利要求9所述的方法,其特征在于,还包括:
显示选区范围的边界信息,在执行所述拖动操作时,显示所述拖动操作的结束位置提示标识;
基于结束所述拖动操作时所述结束位置提示标识与所述边界信息的位置关系,确定所述拖动操作的结束位置是否位于所述选区范围内。
11.根据权利要求1所述的方法,其特征在于,
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件的过程中,还包括:将所述编辑事件对所述选区内容块更新后结果,在所述当前编辑文档中以设定预览方式进行提示;其中,所述更新后结果包括子内容块的删除、移动或新增;
或者,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件包括:在对所述选区内容块的末尾子内容块进行拆分操作时,如果是在所述选区内容块的源位置执行所述拆分操作,则在引用所述选区内容块的目标位置显示被拆分的子内容块拆分后的前半部分内容、且不在显示拆分后的后半部分内容;和/或,是在引用所述选区内容块的目标位置中拆分末尾子内容块,在所述源位置和所述目标位置均显示拆分后的后半部分内容。
12.一种基于树结构的文档处理方法,其特征在于,包括:
获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
13.根据权利要求12所述的方法,其特征在于,所述选区节点用于对应记录所述选区节点的父节点标识和选区范围信息。
14.根据权利要求13所述的方法,其特征在于,
所述选区范围信息包括选区的起始位置信息和结束位置信息,或者,
所述选区范围信息包括该选区节点所包含的选区内容块的节点标识信息。
15.根据权利要求14所述的方法,其特征在于:
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块的起始行和末尾子内容块的末尾行;或
所述选区范围信息的起始位置信息和结束位置信息为,起始子内容块之前的起始标记线和末尾子内容块之后的结束标记线,所述起始标记线和所述结束标记线根据所述当前编辑文档中显示的边界线位置进行确定。
16.根据权利要求13所述的方法,其特征在于,所述选区节点还用于记录选区内容块的历史编辑版本的块版本标识和历史编辑操作的操作标识。
17.根据权利要求12所述的方法,其特征在于,内容块节点用于对应记录内容块的实体内容、历史编辑版本的版本标识和历史编辑操作的操作标识;
文档节点用于对应记录文档的根内容块的实体内容、历史编辑版本的块版本标识和历史编辑操作的操作标识,还用于记录文档的历史编辑版本的文档版本标识;
节点还用于记录父节点标识和/或子节点标识。
18.根据权利要求17所述的方法,其特征在于,所述文档节点还用于对应记录子节点在文档中的位置。
19.根据权利要求12所述的方法,其特征在于,所述至少两个子内容块在所述当前编辑文档中的位置连续或相互间隔。
20.根据权利要求12-19任一所述的方法,其特征在于,获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件包括:
获取用户在当前编辑文档中执行的编辑操作;
如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件。
21.根据权利要求12-19任一所述的方法,其特征在于,所述编辑操作为针对所述选区范围内的末尾子内容块进行的拆分操作,则如果所述编辑操作的操作位置落入选区范围内,则确定为针对选区内容块的编辑事件,包括:
如果所述拆分操作后前部分子内容块位于选区范围内,后部分子内容块位于选区范围,确定为针对选区内容块的编辑事件。
22.根据权利要求21所述的方法,其特征在于,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括以下至少一项:
如果所述当前编辑文档为源文档,则根据所述拆分操作,在所述源文档的树结构中更新所述前部分子内容块的内容块版本标识,并新建所述后部分子内容块的内容块节点,所述新建内容块节点与所述选区节点无父子关系;在所述目标文档的树结构中更新所述前部分子内容块的内容块版本标识;
如果所述当前编辑文档为目标文档,则根据所述拆分操作,将所述目标文档和源文档的树结构中新建所述后部分子内容块的内容块节点,并建立所述新建内容块节点与所述选区节点之间的父子关系,且在所述源文档和目标文档的树结构中更新所述前部分子内容块的内容块版本标识。
23.根据权利要求12-19任一所述的方法,其特征在于,还包括:
获取用户在当前编辑文档中执行的编辑操作;
如果所述编辑操作的操作位置落入非选区范围,则执行所述编辑操作,并根据所述编辑操作对所述选区范围的起止位置进行更新。
24.根据权利要求12-19任一所述的方法,其特征在于,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述编辑事件为在选区范围内新增子内容块,则在所述树结构中,新增归属于文档节点的内容块节点,并建立新增内容块节点与所述选区节点之间的父子关系。
25.根据权利要求12-19任一所述的方法,其特征在于,根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新包括:
如果所述编辑事件为整体移动选区范围的选区内容块,则在所述树结构中,更新所述选区节点的选区范围。
26.根据权利要求12-19任一所述的方法,其特征在于,所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档,则对节点和/或节点之间的父子关系进行更新之后,还包括:
根据更新后的树结构,对所述选区内容块关联的源文档或目标文档进行同步更新。
27.一种文档处理装置,其特征在于,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;所述选区内容块为从源文档引用至目标文档的内容,所述当前编辑文档为源文档或目标文档;
内容更新模块,用于根据所述编辑事件,在所述源文档和目标文档中,对所述选区范围内的内容块进行内容同步变更。
28.一种基于树结构的文档处理装置,其特征在于,包括:
编辑事件获取模块,用于获取用户在当前编辑文档的选区范围内对选区内容块的编辑事件;其中,所述选区内容块包括至少两个子内容块;
树结构更新模块,用于根据所述编辑事件,在所述当前编辑文档所对应树结构中,对节点和/或节点之间的父子关系进行更新;
其中,所述树结构中包括文档节点和内容块节点,所述文档节点与文档对应,所述内容块节点与内容块对应,各节点之间的父子关系表征在文档中的归属关系,所述选区内容块的选区节点与至少两个子内容块各自的内容块节点之间为父子关系,用于表征归属关系。
29.一种文档处理设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11任一项所述的文档处理方法或如权利要求12-26任一项所述的基于树结构的文档处理方法。
30.一种计算机存储介质,其特征在于,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11任一项所述的文档处理方法或如权利要求12-26任一项所述的基于树结构的文档处理方法。
CN202110227846.9A 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质 Active CN115079872B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110227846.9A CN115079872B (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质
CN202311152865.5A CN117170538A (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质
US18/548,693 US20240152690A1 (en) 2021-03-01 2022-02-28 Document processing method and apparatus, and device and medium
PCT/CN2022/078203 WO2022184004A1 (zh) 2021-03-01 2022-02-28 一种文档处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110227846.9A CN115079872B (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311152865.5A Division CN117170538A (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN115079872A true CN115079872A (zh) 2022-09-20
CN115079872B CN115079872B (zh) 2023-09-19

Family

ID=83153671

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311152865.5A Pending CN117170538A (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质
CN202110227846.9A Active CN115079872B (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311152865.5A Pending CN117170538A (zh) 2021-03-01 2021-03-01 一种文档处理方法、装置、设备和介质

Country Status (3)

Country Link
US (1) US20240152690A1 (zh)
CN (2) CN117170538A (zh)
WO (1) WO2022184004A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023078201A1 (zh) * 2021-11-04 2023-05-11 北京字跳网络技术有限公司 内容更新方法、装置、电子设备、介质及程序产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868706B1 (en) * 2021-12-13 2024-01-09 Notion Labs, Inc. System, method, and computer program for syncing content across workspace pages

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036027A (zh) * 2014-06-27 2014-09-10 吴涛军 一种电子文档的位置之间建立连接和传输信息的方法及系统
CN104462036A (zh) * 2013-09-25 2015-03-25 北大方正集团有限公司 一种同步编辑文档的格式信息的方法及系统
EP3018578A1 (en) * 2014-11-04 2016-05-11 Displaynote Technologies Limited Method of synchronising multimedia content across a plurality of devices
CN109543163A (zh) * 2018-10-30 2019-03-29 天津字节跳动科技有限公司 文档修订记录获取方法、装置、存储介质及电子设备
CN110502488A (zh) * 2019-08-14 2019-11-26 北京字节跳动网络技术有限公司 在线文档的处理方法、装置、终端及存储介质
CN110909521A (zh) * 2019-11-14 2020-03-24 北京字节跳动网络技术有限公司 在线文档信息的同步处理方法、装置及电子设备
CN111858518A (zh) * 2020-07-09 2020-10-30 北京字节跳动网络技术有限公司 一种引用文档的更新方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697805B1 (en) * 2000-04-14 2004-02-24 Microsoft Corporation XML methods and systems for synchronizing multiple computing devices
CN103795813B (zh) * 2014-03-10 2021-05-07 上海亦存网络科技有限公司 文件锁定、解锁方法及系统
CN107656930A (zh) * 2016-07-25 2018-02-02 上海颐为网络科技有限公司 一种在信息点结构中的信息点引用方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462036A (zh) * 2013-09-25 2015-03-25 北大方正集团有限公司 一种同步编辑文档的格式信息的方法及系统
CN104036027A (zh) * 2014-06-27 2014-09-10 吴涛军 一种电子文档的位置之间建立连接和传输信息的方法及系统
EP3018578A1 (en) * 2014-11-04 2016-05-11 Displaynote Technologies Limited Method of synchronising multimedia content across a plurality of devices
CN109543163A (zh) * 2018-10-30 2019-03-29 天津字节跳动科技有限公司 文档修订记录获取方法、装置、存储介质及电子设备
CN110502488A (zh) * 2019-08-14 2019-11-26 北京字节跳动网络技术有限公司 在线文档的处理方法、装置、终端及存储介质
CN110909521A (zh) * 2019-11-14 2020-03-24 北京字节跳动网络技术有限公司 在线文档信息的同步处理方法、装置及电子设备
CN111858518A (zh) * 2020-07-09 2020-10-30 北京字节跳动网络技术有限公司 一种引用文档的更新方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CN#PBQPGKFAV: "Word如何实现引用Excel数据并保持同步更新", pages 1 - 7, Retrieved from the Internet <URL:《https://jingyan.baidu.com/article/fcb5aff7880d4eedaa4a71a3.html》> *
ROAMEDIT: "008块引用和块嵌入", pages 1, Retrieved from the Internet <URL:《https://www.bilibili.com/video/BV1154y1C7fr/?spm_id_from=333.337.search-card.all.click》> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023078201A1 (zh) * 2021-11-04 2023-05-11 北京字跳网络技术有限公司 内容更新方法、装置、电子设备、介质及程序产品

Also Published As

Publication number Publication date
CN117170538A (zh) 2023-12-05
CN115079872B (zh) 2023-09-19
US20240152690A1 (en) 2024-05-09
WO2022184004A1 (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
JP6854041B2 (ja) コンテンツ管理システムにおけるプロジェクトの管理
US9009108B2 (en) Minimal extensions required for multi-master offline and collaboration for devices and web services
US9626383B2 (en) Managing digital images
RU2675046C2 (ru) Автоматизированная система для организации слайдов презентации
US20110239158A1 (en) Method and apparatus for providing soft reminders
US20240152690A1 (en) Document processing method and apparatus, and device and medium
CN111444139A (zh) 一种文件管理方法、装置、设备及存储介质
CN109491742B (zh) 页面表格渲染方法及装置
US11282008B2 (en) Managing projects in a content management system
US20190121786A1 (en) Method for Data Migration and Terminal
US20220374588A1 (en) View display method and device of form and electronic equipment
US10430504B1 (en) Presenting document versions
US20190250780A1 (en) Selective user notification of actions taken to content by other users
CN115061601B (zh) 电子文档的处理方法、装置、终端和存储介质
KR102103015B1 (ko) 인스턴트 메신저 어플리케이션의 동작 방법 및 장치
CN115174509A (zh) 一种信息处理方法、装置、设备及介质
CN115526953A (zh) 生成视图的方法、装置、电子设备及存储介质
CN112507670A (zh) 一种文本编辑方法、装置、电子设备及存储介质
US10545646B2 (en) Enabling and disabling one-click clauses
CN111552705A (zh) 基于图表的数据处理方法、装置、电子设备及介质
US20240143555A1 (en) Page content connection method, apparatus and device, document synchronization method, apparatus and device, and document processing method, apparatus and device
US20240005586A1 (en) Systems and methods for animating transition of an object
US20240037139A1 (en) Identifying similar digital assets from results of a multi-user search of digital assets, comparing digital assets and providing persistent search results of the multi-user search
CN106777161B (zh) 一种备忘录设置方法、装置和移动终端
KR102181579B1 (ko) 환자정보 스티커 서비스 제공방법 및 이를 위한 치과용 보험청구 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant