2

私は Stack Exchange サイトを開始していますが、マークダウン スクリプトが到達する前後に質問テキストを傍受できるようにしたいと考えています。

質問ウィンドウに入力できるようにして[custom-tag]stuff to be altered[/custom-tag]から、変更するものを削除して(標準のマークダウンエンジンでは解釈できないため)保存してから、出力のタグを私自身の(サーバー側の)エンジンによって処理された後に変更されるもの。

最初のステップで失敗しています。マークダウン JavaScript が見つかりません。のどこかに隠されてい/content/js/master.jsますか?

編集:私が達成しようとしていることの例を使用して、これを少し明確にしようとします。

ポーカー向けの SE サイトを運営しています。プレイヤーはポーカー ハンドについて議論しますが、ハンドで何が起こったかを平文で書き起こしたものを入力する代わりに、コンバーターを使用して読みやすくします。

したがって、これをフォーラムに投稿する代わりに:

PokerStars ゲーム #29112867044: オマハ ポット リミット ($100/$200) - 2009/06/07 19:51:27 ET
テーブル 'Thomsen' 9-max 座席 #2 がボタンです
シート 2: メアリー & ジョーイ (チップで $14729)
シート 4: William (チップで $28306)
Mary & Joey: スモール ブラインド $100 をポスト
William: ビッグブラインド $200 をポスト
*** ホールカード ***
Mary & Joey: $400 を $600 に調達
ウィリアム: $400 にコール
*** フロップ *** [6d Td 3c]
ウィリアム:小切手
メアリー&ジョーイ:小切手
*** ターン *** [6d Td 3c] [Kc]
ウィリアム:小切手
メアリー&ジョーイ:小切手
*** リバー *** [6d Td 3c Kc] [7d]
ウィリアム: ベット $600
メアリー&ジョーイ:フォールド
呼び出されなかった賭け ($600) がウィリアムに返還されました
William はポットから $1198 を集めました
ウィリアム: 手を出さない
*** まとめ ***
合計ポット $1200 | レーキ $2
ボード [6d Td 3c Kc 7d]
シート 2: Mary & Joey (ボタン) (スモール ブラインド) がリバーでフォールド
シート 4: William (ビッグ ブラインド) が獲得 ($1198)

最初にサードパーティの Web サイトにアクセスし、次のように変換します。

PokerStars ポットリミット オマハ、$200.00 BB (2 ハンド)
SB ($14729)
BB ($28306)

プリフロップ:
SB ベット $600、BB コール $400

フロップ: ($1200) 6 、 10 、 3 (2 人のプレイヤー)
BB チェック、SB チェック

ターン: ($1200) K (2 プレイヤー)
BB チェック、SB チェック

リバー: ($1200) 7 (2 プレイヤー)
BB ベット $600、1フォールド

合計ポット: $1200 | レーキ: $2

ユーザーがサードパーティの Web サイトにアクセスし、手に貼り付けて、HTML 出力を選択し、結果をコピーして質問に貼り付ける手順を省略したいと思います。代わりに、生のハンド テストを [hand][/hand] タグでラップできるようにするだけで、変換は自動的に処理されます。

編集2:

さらに調査すると、これは不可能のようです (多くのハッキーな JS がなければ)。外部サービスを使用して変換を行うには、最初に Ajax クロスドメインの問題を回避する必要があります。

次に、WMD プレビューをオーバーライドできた場合、実際の回答が正常にレンダリングされたときに何をすべきかを検討する必要があります。これを行う 1 つの方法は、質問または回答がレンダリングされるたびに JS にタグを検索させ、変換されたバージョンで DOM を更新することです。

私は待つ必要があると思います.SEがこれをオーバーライドするための他の方法を許可してくれることを願っています.

4

1 に答える 1

1

WMD は、入力時にプレビュー要素を自動的に入力しますよね? まあ、これを行うにはどこかにコンバーターが必要です。そのコンバーターが Showdown です (こちらから入手できます)。その使用法は次のとおりです(ソースファイルから取得):

// Showdown usage:

var text = "Markdown *rocks*.";

var converter = new Showdown.converter();
var html = converter.makeHtml(text);

これは、提供されているプレビュー要素を使用することはできず、自分で入力する独自の要素を優先することを意味します。keypressさらに、テキストエリアのイベントを自分でリッスンし、テキストの解析を行ってから、Showdown を呼び出す必要があります。出力が思いどおりになったら、それを独自のプレビュー要素に投入します。

于 2009-10-15T20:29:27.890 に答える