Wiki マークアップを HTML に変換する最も簡単な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/45991

  •  09-06-2019
  •  | 
  •  

質問

非常に基本的なマークアップ機能を必要とする 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>

他のヒント

もあります。 Perlモジュール そして PHPプロジェクト これをする。いずれかのソース コードは、独自のソリューションの開発に役立つ可能性があります。

私は 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top