题
Google Wave中使用的操作转换内容具有相当好奇的文档格式。文档基本上只是XML子集文档 - 字符,启动标签和结束标签。除此之外,该文档还具有“注释”,这些注释与范围相关联,例如开始位置和最终位置。白皮书证明了他们的存在:
波浪文档操作还支持注释。注释是与项目范围,即开始位置和最终位置相关的一些元数据。这对于描述文本格式和拼写建议特别有用,因为它并没有使基本结构化文档格式复杂化。
我当然可以看到,如果选择了文档的任意范围,例如粗体-XML标签嵌套是严格的,这将导致一堆开放和关闭的标签插入,这将在某种程度上很难。
但是,这是 真的 实践中的问题?我的意思是,如果不制作基本上模仿过去的文字处理范式而不是成为结构化编辑器的编辑器,是否必须支持这种操作?纯XML可以用文档结构作为HTML5的纯XML操作转换是如此可怕吗?是否会在文档中作为标签在文档中的性能问题?还是操作转换模型以文本格式的形式产生不满意的结果,如果它们用标签表示?
另外,一个问题 - 纯粹的“插入字符,删除字符,保留”操作转换模型在纯文本表示上有多好?例如,将HTML5编辑为文本或编辑Wikipedia文章?
解决方案
与OT一起使用层次标记语言存在基本问题。请参阅下面的工作示例:
其他提示
对于我来说,这种选择是在几个方面的优化:
- 基础文件仍然尽可能可读和解析
- 解析基础XML的算法保持尽可能简单(对于与非野狗尝试解析结果文档的兼容性和维护)
- 多次收集的垃圾在多次编辑后可能会导致大型性能 - 由于标签数量和/或文档上的其他通行证数量,以简化它。
不隶属于 StackOverflow