我正在开发一个应用程序,该应用程序使用户能够在文本文章上进行协作(通常通过突出显示/注意特定的文本范围)。
我将有一个 API 以某种形式提供文档(它们现在是 .doc 格式,但我想以 Markdown 之类的形式提供它们)。我可以放心地假设文章的内容不会改变。
我目前停留在这些亮点的编码格式上。问题是这些文章有一些格式(即,作者将从另一篇外部文章中引用的块引用,以及典型的换行符和段落间距),因此客户端会以不同于服务器的方式解释该格式.
例如,Markdown 使用>
字符来表示块引用中的内容,而 HTML 使用<blockquote>
- 所以在这种情况下,我的 Javascript 代码 - 当用户突出显示位于 a 中的文本时<blockquote>
- 需要进行一些混乱的计算来获得正确的字符偏移量。
最终,我希望始终在服务器上使用字符偏移量,如下所示:
// e.g.
// from the 55th character to the 58th character
// offset = [55, 3]
我简要地考虑了其他几种方法:
- 将文章以 HTML 格式发送到客户端,尽管这会产生相同的问题,因为我需要将 CSS 类等添加到 HTML 标记中
- 将文章内容作为字符串数组发送(在文章中的每个换行符处拆分)并为每个项目指定一个类型(例如,'normal' 或 'blockquote')——尽管这似乎是处理这个问题的一种天真的方法
是否有其他更简洁的方法可以对我缺少的客户端的这些亮点进行编码?
编辑:为了更清楚 - 这将是一个客户端应用程序(需要现代浏览器)。