web-dev-qa-db-ja.com

C#コードのMarkdownSharp&GitHub構文

MarkdownSharpを取得する方法はありますか(私は NuGetパッケージ を使用して ' GitHubフレーバーMarkdown (GFM)'を処理し、特にc#コードの構文の強調表示を行います。 GFMでは)は次のように書かれています:

```c#
//my code.....
```

したがって、Markdown形式のコンテンツをMarkDownSharpに渡した場合、C#コードブロックを含め(上記のように)、そのc#コードの構文で強調表示されたhtmlを生成します。何か案は?サポートされている4つのスペースを使用してコードブロックを示すことができることはわかっていますが、ここでも、GitHubフレーバーマークダウンをサポートするためのソリューションを探しています。

25
Daniel
7
Daniel

MarkdownSharpにいくつかの簡単な変更を加えて、githubフレーバーのフェンス付きコードブロックを変換しました

https://github.com/KyleGobel/MarkdownSharp-GithubCodeBlocks

```cs
Console.WriteLine("Fenced code blocks ftw!");
```

なるだろう

<pre><code class='language-cs'>
Console.WriteLine("Fenced code blocks ftw!");
</code></pre>

私が使用する必要があるケースを処理しますが、おそらくEdgeのケースはたくさんありますが、リクエストをfork/change/modify/pullして自由に感じてください。マークダウンシャープにはたくさんのコメントがあり、すべて1つのファイルにすぎないので、変更してもそれほど悪くありません。

17
Kyle Gobel

この post を読むとわかるように、GitHubは RedCarpet を使用してMarkdown構文をレンダリングします。

ただし、Vicent Marti( Sundown (ex-Upskirt)およびRedCarpetメンテナ) states 構文の強調表示は特に Pygments 、pythonライブラリ。

あなたの懸念に戻って、C#からの構文強調表示から利益を得るいくつかのオプションを考えることができます。

  • コンパイルしてマネージバージョンのPygmentsをビルドしてみてください ソースコード おかげで IronPython "IronPythonのホスティングAPIを使用してPythonスクリプトをDLL、コンソール実行可能ファイル、またはWindows実行可能ファイルに変換します。 "
  • C#へのポートピグメント
  • 異なる構文強調表示製品を使用します(たとえば、Codeplexで使用される ColorCode )。

次に、いずれか:

  • MarkDownSharpをフォークしてプラグインを受け付けるようにする
  • GitHubと同様に、管理された構文強調表示製品を使用し、MarkDownSharpによって生成されたHTMLを後処理します。

ちなみに、MarkDownの代替案として、 Moonshine を検討することをお勧めします。これは、と言われるSundownの上にあるマネージラッパーで、少なくとも20倍高速です。 MarkdownSharp独自のベンチマークアプリに対して実行したときのMarkdownSharp。

3
nulltoken