私は、ユーザーがテキスト記事で共同作業できるようにするアプリに取り組んでいます (通常、テキストの特定のスパンを強調表示/メモすることによって)。
ドキュメントを何らかの形式で提供する API を用意します (現在は .doc 形式ですが、Markdown などで配信したいと考えています)。記事の内容は変わらないと思います。
私は現在、これらのハイライトのエンコード形式にこだわっています。問題は、これらの記事にはいくつかの書式 (つまり、著者が別の外部記事から引用するブロック引用、および典型的な改行と段落間隔) があるため、クライアントはその書式をサーバーとは異なる方法で解釈することです。 .
たとえば、Markdown は引用符>
内のコンテンツを表すために文字を使用しますが、HTML は文字を<blockquote>
使用します。つまり、この場合、私の Javascript コードは、ユーザーが にあるテキストをハイライトしたときに<blockquote>
、正しい文字オフセットを取得するために面倒な計算を行う必要があります。
最終的には、次のようにサーバー上で常に文字オフセットを操作したいと考えています。
// e.g.
// from the 55th character to the 58th character
// offset = [55, 3]
他のいくつかの方法を簡単に検討しました。
- 記事を HTML でクライアントに送信しますが、HTML マークアップに CSS クラスなどを追加する必要があるため、同じ問題が発生します。
- 記事のコンテンツを文字列の配列として送信し (記事の改行ごとに分割)、各項目にタイプを指定します (例: 'normal' または 'blockquote') - これはこの問題に取り組む単純な方法のようですが
私が見逃しているクライアントからのこれらのハイライトをエンコードする他のクリーンな方法はありますか?
EDIT:より明確にするために、これはクライアント側のアプリになります(最新のブラウザが必要です)。