Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将文本突出显示从Javascript编码到API_Javascript_Text_Highlight_Encode - Fatal编程技术网

如何将文本突出显示从Javascript编码到API

如何将文本突出显示从Javascript编码到API,javascript,text,highlight,encode,Javascript,Text,Highlight,Encode,我正在开发一个应用程序,使用户能够在文本文章上进行协作(通常通过突出显示/注意文本的特定跨度) 我将有一个API,它以某种形式提供文档(它们现在是.doc格式的,但我希望以降价之类的方式提供它们)。我可以放心地假设文章的内容不会改变 我现在被这些亮点的编码格式所困扰。问题是这些文章有一些格式(例如,作者引用另一篇外部文章的块引号,以及典型的换行符和段落间距),因此客户端对格式的解释与服务器不同 例如,Markdown使用字符表示块引号中的内容,而HTML使用——因此在这种情况下,当用户突出显示中

我正在开发一个应用程序,使用户能够在文本文章上进行协作(通常通过突出显示/注意文本的特定跨度)

我将有一个API,它以某种形式提供文档(它们现在是.doc格式的,但我希望以降价之类的方式提供它们)。我可以放心地假设文章的内容不会改变

我现在被这些亮点的编码格式所困扰。问题是这些文章有一些格式(例如,作者引用另一篇外部文章的块引号,以及典型的换行符和段落间距),因此客户端对格式的解释与服务器不同

例如,Markdown使用
字符表示块引号中的内容,而HTML使用
——因此在这种情况下,当用户突出显示
中的文本时,我的Javascript代码需要进行一些混乱的计算以获得正确的字符偏移量

最后,我希望始终在服务器上处理角色偏移,如下所示:

// e.g.
// from the 55th character to the 58th character
// offset = [55, 3]
我简要考虑了其他几种方法:

  • 用HTML将文章发送到客户端,尽管这会产生同样的问题,因为我需要向HTML标记中添加CSS类等
  • 以字符串数组的形式发送文章内容(在文章中的每一行分隔符上拆分),并为每个项目指定一个类型(例如,“普通”或“blockquote”)——尽管这似乎是解决此问题的简单方法
是否有其他更干净的方式来编码我所缺少的客户机的这些亮点


编辑:为了更清晰-这将是一个客户端应用程序(需要现代浏览器)。

这是一个具有挑战性的问题;没有一个简单的答案。您需要想出一些易于使用的不变量,理想情况下允许您使用不同的格式化标记语言。我建议将偏移量存储到文档文本中(忽略标记)。当然,从编辑器中获取文本偏移量可能并不容易。如果您在浏览器中工作,我认为内容将是HTML,并且您将从浏览器的选择对象获得偏移量,这不会提供理想情况下所需的文本偏移量。不过,您可以使用一些奇特的XPath计算它。即使这样做,如果将文档转换为另一种格式,也可能会出现问题,因为可能会转换或删除换行符

所以我认为答案是:不,没有灵丹妙药,你走在正确的轨道上