C # /. NET библиотека для форматирования исходного кода, как та, которую использует Stack Overflow? - PullRequest
3 голосов
/ 24 января 2010

Я пишу инструмент командной строки для преобразования текста Markdown в вывод html, что кажется достаточно простым.

Однако мне интересно, как получить красивую синтаксическую раскраску для встроенных блоков кода, например, используемую в Stack Overflow.

Кто-нибудь знает либо:

  • Какая библиотека использует StackOverflow
  • или если есть библиотека, которую я могу легко использовать?

По сути, ему понадобится найти тот же «интеллект», что и тот, который использует переполнение стека, в основном, стараясь выяснить используемый язык, чтобы выбрать правильные ключевые слова.

По сути, я хочу, чтобы моя собственная программа обрабатывала блок, подобный следующему:

if (a == 0) return true;
if (a == 1) return false; // fall-back

Markdown Sharp, библиотека, которую я использую, по умолчанию выводит вышеуказанное в виде простого блока html pre / code без цветовой подсветки синтаксиса.

Мне бы хотелось, чтобы тот же тип обработки, что и при форматировании в Stack Overflow, приведенный выше содержит синие ключевые слова "return", например.

Или, хм, после проверки источника этой страницы переполнения стека после добавления примера кода, я заметил, что он тоже отформатирован как простой блок pre / code. Является ли это чистым волшебством javascript здесь, так что, возможно, такой библиотеки нет?

Если нет библиотеки, которая бы автоматически определяла возможный язык по используемым ключевым словам, будет ли работать такая, если я явно скажу ей язык? Поскольку это «мой» инструмент markdown-commandline-tool, я могу легко добавить синтаксис, если потребуется.

1 Ответ

7 голосов
/ 24 января 2010

Упс - я полностью упустил тот факт, что вы уже используете Markdown Sharp - но равно , которое использует переполнение стека процессора Markdown.

Однако также использует Google Code Prettify - и это бит, который обеспечивает цвета. Это то, чего вам не хватало?

...