Wiki マークアップを HTML に変換する最も簡単な方法は何ですか?
質問
非常に基本的なマークアップ機能を必要とする Web サイトを構築しています。サードパーティのプラグインは使用できないので、マークアップを HTML に変換する簡単な方法だけが必要です。合計で 3 つのタグを許可する可能性があります。
変換する最良の方法は何ですか ==Heading==
に <h2>Heading</h2>
, 、 または --bold--
に <b>bold</b>
?これは正規表現を使って簡単に行うことができますか、それとも誰かが簡単な関数を持っていますか?
私はこれを C# で書いていますが、他の言語の例もおそらく機能するでしょう。
フォローアップ:これは私の Web サイトのごく一部なので、単純な Regex 置換を使用するシンプルさが気に入りました。次のコードを使用して、これを C# で機能させました。
string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")
.NET が使用する $1 の代わりに表記 \1 他の言語で使用される表記法。
解決
これは実際には単純な問題ではありません。ユーザーに表示する場合は、入力をサニタイズして、何も作成しないようにする必要があるからです。 クロスサイトスクリプティング 脆弱性。
そうは言っても、正規表現置換を使用すると、おそらく最も簡単に説明したように、かなり単純なことを実行できるでしょう。
例えば
replace the pattern ==([^=]*)== with <h2>\1</h2>
他のヒント
私は Markdown (このサイトで使用されているものと同じ軽量マークアップ言語) を使用しています。C# については、非常に優れたソース コードが利用可能です。 ここ. 。Markdown は完全にサポートされていますが、メンテナンスされていないようです。しかし、今のところ、それは非常にうまく機能し、無料のオープンソースです。
最も良い点は、このソースをプロジェクトに含めると、すべての作業が自動的に行われることです。それはとても小さいです。基本的には、単一のメソッド呼び出しでテキストのチャンクを HTML に変換します。
Wiki にはいくつかの異なる構文があるため、これは実際に使用している Wiki 構文によって異なります。明らかに、wiki ソフトウェアのどこかにこの機能があります。これを行うソフトウェア パッケージが見つからない場合は、Wiki ソフトウェアで関連するコードを探し始めることができます。
多分 これ 必要なものです。
このページは、さまざまな代替 MediaWiki パーサー、つまり、MediaWiki のテキスト マークアップ構文を別のものに変換できる、または変換することを目的とした、MediaWiki 自体以外のプログラムおよびプロジェクトのリンク、説明、およびステータス レポートをまとめたものです。
おそらく 3 つのタグにはやりすぎですが、本格的なマークアップ言語になり、正規表現が怖く見え始めたら、次のことを検討するとよいでしょう。 アントラー
Joseph が言ったように、Markdown はテキストから HTML への問題を解決する最良の解決策です。
MarkdownSharp は軽量で使いやすく、stackoverflow 実装であるため十分にテストされています。
new Markdown().Transform("**markdown text**");
http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/
マークダウン構文の詳細 - http://en.wikipedia.org/wiki/Markdown