2

テキストエリアへの入力は、どの段階でこの生のテキストからHTMLに変わりますか?たとえば、4つのスペースをインデントするとします

like this

次に、WMD Showdown.jsは、入力したこのテキストエリアの下に適切にレンダリングします。ただし、テキストエリアには文字通り含まれています。

    like this

では、PHPサーバー側は、showdown.jsがSoFデータベースで永続的にHTMLになるように行うのと同じことをすべて変換する責任がありますか?

4

2 に答える 2

8

これについては他にもいくつかの投稿がありますが、基本的にはこのように機能します。または、少なくともこれは、WMDを使用して自分のWebサイトでそれを行う方法です。私のWMD実装をチェックすることに興味がある場合は、私のプロファイルを参照してください。

  1. ユーザーはクライアントでMarkdownを入力showdown.jsし、ブラウザーでリアルタイムに実行して(純粋なクライアント側のJavaScript、AJAXなどはありません)、ユーザーにプレビューを提供します。
  2. 次に、ユーザーがサーバーに投稿すると、WMDはマークダウンを送信します(ただし、これを行うようにWMDを構成する必要があります。デフォルトでは、WMDはHTMLを送信します)。
  3. showdown.jsサーバーサイドを実行して、MarkdownをHTMLに変換します。理論的には他の方法を使用することもできますが、サーバー側で実行するHTMLタグのフィルタリングを除いて、ユーザーがクライアントで表示するのと同じ変換をサーバーで取得しようとするのは理にかなっています。
  4. 先ほど述べたように、クロスサイトスクリプティング(XSS)の問題を回避するには、適切なHTMLタグフィルタリングを実行する必要があります。これは重要であり、重要であるため、注意が必要です。
  5. マークダウンとHTMLの両方をデータベースに保存します。ユーザーが投稿を編集する場合は、マークダウンとHTMLを指定して、回答を表示するたびにマークダウンをHTMLに変換する必要がないためです。

ここにいくつかの関連する投稿があります。

于 2009-02-06T06:35:38.390 に答える
1

まず第一に、StackOverflowはASP.NET上に構築されていますが、基本的にリッチテキストボックス内の文字は前後に翻訳されます。

于 2009-02-06T06:35:01.603 に答える