19

medium.comqz.comによって実装されているような、段落ごとのコメント システム (「注釈システム」とも呼ばれる) の新たな傾向に非常に興味があり、それを開発するアイデアを検討しています。私の。

質問: それらは主に、id 属性 (または、Medium の場合は name 属性) によって一意に識別されるテキストの html 段落を実行する javascript を介して実装されているようです。彼らの CMS は実際に各段落をデータベースに個別のエントリとして保存するということですか? 私には非常に複雑に思えますが、それ以外の場合、テキスト全体で段落を削除、編集、または移動できるという事実をどのように管理していますか? 作成者が段落を変更した場合、一意の ID はどのように保持されますか? その一意の ID は論理的にどのように構成されていますか? (post_id + position_in_post)?

あなたの洞察をありがとう...

4

6 に答える 6

14

メディア側と話すことはできませんが、Quartz の開発者の 1 人として、qz.com アノテーションがどのように機能するかについて洞察を与えることができます。

注釈コードはカスタム php コードであり、記事を公開するための CMS とは独立しています (wordpress VIP)。実際、記事の内容に対する更新を追跡するために、各段落への参照をデータベースの行として保存しています。これを注釈スレッドと呼び、ユーザーが注釈を保存すると、threadId が注釈と共に保存されます。

各段落の wordpress 側に一意の ID を保存するのではなく、その記事内の段落の相対位置を保存します (nodeIndex “3” および nodeSelector “p” == 特定のコンテンツ本文の 3 番目の p タグ)。 wordpress 側での複雑なカスタマイズを避けるためにこの方法を採用しましたが、CMS によっては、CMS コードで直接これに対処し、一意の ID をhtml をクライアントに送信する前に。

記事の更新が公開されるたびに、更新された記事の各段落が、その記事の注釈スレッドで以前に保存されたものと比較されます。位置と段落テキストが一致しない場合は、最も近い段落を見つけて、そのスレッドの行を更新しようとします。新しいスレッドが作成され、必要に応じて削除されます。これらはすべて、変更が記事に公開されるたびにサーバー側で処理されます。

Gawker の Kinja テキスト注釈 (現在 Jalopnik で使用中) と rapgenius.com の単語ごとの注釈も、検討する価値のある 2 つの別の意味です。

于 2013-11-04T01:26:45.863 に答える
5

(免責事項: 私はファクトリンクの開発者です。)

私は、任意のサイトで段落ごと (またはフレーズごと) にコメントできるようにしようとしている会社で働いています。基本的に、コメントのアンカーを識別するには 2 つの選択肢があります。

  1. ページの構造 (例: ルートから段落へのパス) を覚えておいて、次回は同じ位置にコメントを配置してください。
  2. 段落の内容を特定し、次回は同一または類似の内容の近くにコメントを配置します。

どちらのシステムにも欠点がありますが、堅牢なシステムが必要な場合は、オプション 2 を使用する必要があります。構造の変化に直面すると、構造の同定は脆弱です。テーマや使用される正確な html タグなどの特に無関係な変更は、「パス」に大きな影響を与える可能性があります。それが起こった場合、実際には修正できません-コンテンツを検査しない限り、つまりオプション(2)。

Sam は、彼の回答で、サーバー側のコンテンツ ベースに何が帰着するかを説明しています。純粋にクライアント側のコンテンツ ベースのマッチングは、ファクトリンクと (IIRC)仮説使用するものです。window.findほとんどのブラウザは、 または のいずれかを使用して、ページ コンテンツ内の非標準ですが高速な部分文字列検索をサポートしていますTextRange.findText。または、DOM をウォークすることもできます。これは低速ですが、(たとえば) ファジー マッチングを柔軟に実装できます。

クライアント側のマッチングはやり過ぎか複雑に思えるかもしれませんが、実際にはもっと簡単です。これは、コンテンツ管理をコメントから分離するための非常に堅牢な方法です。どちらもそれほど単純ではないため、これらの懸念を切り離すことが勝利につながる可能性があります。

于 2014-03-27T08:41:48.207 に答える
2

長い間存在する「commentpress」と呼ばれるもう 1 つのワードプレス プラグインがあります。このプラグインの古いバージョンをブログに使用していますが、非常にうまく機能しています。

行ごとまたは段落ごとにコメントすることを選択でき、人間工学は本当に考えています!

デモはこちら:
http://futureofthebook.org/
で、すべてのコードは github にあります:
https://github.com/IFBook/commentpress-core

コードをざっと見てみると、@Eamon Nerbonneが彼の回答で説明しているように、2番目のアプローチを使用しているようです。各段落を解析して、各単語の最初の文字に基づいて署名を作成します。これを行う関数は次のとおりです。

于 2014-05-24T01:53:43.280 に答える