7

私はスタック オーバーフローのコメント UI がとても気に入っています。同じことを自分の Web サイトに実装することを検討しています。コードを調べたところ、ここでの主なツールはWMDであり、JQuery TextArea Resizerが補助的な役割を果たしているようです。

WMD は、クライアント側で Markdown を HTML に変換します。プレビューに役立つのでとてもいいのですが、それをサーバーに送信するときに問題が発生します。検証エラーが発生した場合 (たとえば、ユーザーがコメント フォームの他の部分に無効な電子メール アドレスを入力したか、名前を入力しなかったなど)、サーバーはエラー メッセージを含むフォームを再表示して応答します。フォーム フィールドは事前入力されています。サーバーが Markdown を見たことがないため、コメント テキストは Markdown ではなく HTML になりました。しかし、それはユーザーが入力していたものなので、Markdown にしたいと思います。

ここに何かアイデアはありますか?

私はさまざまなアイデアを検討しました:

  • サーバー側でHTML から Markdown への変換を行います。このアイデアについてはそれほど興奮していません。Markdown から HTML を再び Markdown に変換するのはばかげているように思えます。ユーザーとして、ソフトウェアがテキスト/コードを再フォーマットするときはいつもイライラします。
  • クライアント側の検証 (もちろん保持するサーバー側の検証を強化するため)。現在、コメントフォームでreCAPTCHAを使用していますが、合理的な方向のように思えます。つまり、少なくともreCAPTCHA部分をサーバーに投稿する必要があります。
  • WMD を失い、MarkdownJ を使用てサーバー上で Markdown を HTML に変換します。プレビュー機能を実現するための他のメカニズムを探す必要がありますが、これは維持したいと考えています。

理想的には、テキストの Markdown バージョンを取得し、それを HTML に加えてサーバーに送信する方法があればよいのですが、それが実際に可能かどうかを知るには、私は JavaScript の専門家ではありません。

任意の提案をいただければ幸いです。

4

3 に答える 3

5

この質問を参照してください: wmd で編集するために、HTML を Markdown に変換します(右側のナビゲーションの [関連] ボックスに賛成です!)。

于 2008-12-27T20:35:56.373 に答える
5

データをマークダウンとして送信し、検証に合格したときにサーバーがデータを html に変換できるようにします。WMD には、サーバーに送信するデータの形式を指定するオプションがあります。追加するだけ

wmd_options = {
        //Markdown or HTML
        output: "Markdown"
    };

wmd の呼び出し前

于 2008-12-28T08:03:58.810 に答える
3

私は大雑把なレベルで WMD を見ただけですが、テキストエリアをサーバーに送信するのは非常に簡単に思えます。実際、テキストエリアがフォームの一部である場合、それを回避する方法はほとんどわかりません。私が理解しているように、テキストエリアにはマークアップが含まれており、WMD はそれを HTML に変換してページの別の部分に表示します。送信されるフォームにテキストエリアを含めるだけで、サーバー側に表示されます。

于 2008-12-27T19:20:41.673 に答える