Подтвердить что ты не робот

Синтаксис MarkdownSharp & GitHub для кода С#

Есть ли способ получить MarkdownSharp (я использую пакет NuGet) для обработки GitHub приправленный Markdown (GFM) 'и особенно синтаксическая подсветка кода С#, которая (в GFM) написана следующим образом:

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

Итак, если я передаю отформатированный контент Markdown MarkDownSharp, содержащий код кода С# (как указано выше), я хочу, чтобы он генерировал выделенный синтаксис html для этого кода С#. Есть идеи? Я знаю, что могу использовать поддерживаемые 4 пробела, чтобы указать блок кода, но опять же, я ищу решение для его поддержки с поддержкой GitHub Markdown.

4b9b3361

Ответ 2

Я сделал некоторые легкие модификации 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>

Он обрабатывает случаи, которые мне нужны для использования, возможно, есть много крайних случаев, не стесняйтесь обращаться к fork/change/modify/pull. У Markdown sharp есть много комментариев, и это всего лишь один файл, поэтому не так уж плохо его изменять.

Ответ 3

Как можно прочитать в сообщении , GitHub полагается на RedCarpet, чтобы отобразить синтаксис Markdown.

Однако, Vicent Marti (Sundown (ex-Upskirt) и сопровождающий RedCarpet) указывает, что подсветка синтаксиса специально обрабатывается Pygments, библиотекой python.

Вернемся к вашей проблеме, я могу придумать несколько вариантов, чтобы извлечь выгоду из подсветки синтаксиса с С#:

  • Попробуйте создать скомпилированную управляемую версию Pyigs исходный код благодаря IronPython ( "API-интерфейсы IronPythons для хостинга могут использоваться для компиляции скриптов Python в библиотеки DLL, исполняемые файлы консоли или исполняемые файлы Windows".)
  • Port Pygment to С#
  • Используйте другой продукт подсветки синтаксиса (например, ColorCode, который используется Codeplex...)

Тогда либо:

  • Fork MarkDownSharp, чтобы заставить его принимать плагины
  • Аналогично тому, что делает GitHub, используйте управляемый синтаксис, выделяющий продукт и отправляющий процесс Html, сгенерированный MarkDownSharp

Кстати, в качестве альтернативы MarkDown вы можете рассмотреть Moonshine, управляемую оболочку поверх Sundown, которая называется быть "как минимум на 20 раз быстрее, чем MarkdownSharp при запуске с помощью собственного теста MarkdownSharp".