3

軽くマークアップされたテキストからスタイル付きテキストへの書式設定ライブラリ (つまり、Markdown# や Textile.NET など) を知っている人はいますか? WebBrowser の使用を避けるために、WPF アプリに直接表示されますか?

軽いものにはボーナスポイント。ソーステキストの非常に頻繁な更新に耐えられるものを期待しています.

または、WPF で使用できる軽量の HTML レンダリング コントロールはありますか? (私は、標準の WebBrowser が軽量であるとは考えていません。)

4

1 に答える 1

1

そのようなライブラリが事前に構築されているかどうかはわかりませんが、役立つと思われるいくつかの考えがあります。

私の頭に浮かぶ最初の大きな疑問は、RichTextBox を使用できるのに、なぜ Markdown のような原始的なものを使用したいのかということです。ブラウザの制限により、StackOverflow などのサイトでは Markdown が必要です。ただし、アプリが WPF の場合、これは問題ではありません。

これを行う理由についての 1 つの推測は、ドキュメントを WPF と最小公分母の Web アプリケーションの両方で編集可能にしたいということです。その場合、とにかくマークダウンを HTML にレンダリングするエンジンが必要になるので、同じエンジンを利用してマークダウンを XAML に変換してみませんか?

任意の HTML を XAML に変換するのは非常に困難ですが、Markdown コンバーターが吐き出すような HTML を変換することは、まったく別の問題です。ほとんどの Markdown スタイルのコンバーターは、いくつかの単純な HTML タグのみを吐き出し、それらはすべて同等の XAML に簡単に変換できます。

Markdown から HTML へのコンバーターを使用すると、非常に面倒な作業 (テキストの解析など) がすべて行われ、比較的解析しやすい XML に似たドキュメント (正確には HTML) が作成されます。 . また、Markdown-to-HTML コンバーターを別の場所で使用している場合、Markdown パーサーは HTML と XAML の両方で使用する Markdown 構文をまったく同じように解析することを確信できます。これは、どちらの場合も同じパーサーであるためです。

だから基本的に私が考えていることは次のとおりです。

string html = MarkdownEngine.MarkdownToHtml(markdown);
string xaml = MarkdownHtmlToXamlTranslator.HtmlToXaml(html);

MarkdownHtmlToXamlTranslator の実装を、マークダウン エンジンが実際に吐き出すものに合わせて設計する場所。非常に単純な XSLT にすることも、LINQ to XML を XDocument 構築手法と共に使用することもできます。いずれにせよ、それは非常に小さなコードである必要があります。

于 2010-07-16T07:39:39.810 に答える