2015-12-26 3 views
7

Как конвертировать богатый Markdown в простой текст? Таким образом, его можно использовать, например, для описания OpenGraph в Facebook.Конвертировать богатый MarkDown в обычный текст

Я использую MarkdownSharp и, похоже, не имеет этой функции. Прежде чем я собираюсь изобретать велосипед, я подумал сначала спросить здесь.

Любые намеки на реализацию стратегии очень ценятся!

Пример

The Monorailcat 
--------------- 
![Picture of a Lolcat](https://media1.giphy.com/media/c7goDcMPKjw6A/200_s.gif) 
One of the earliest pictures of **monorail cat** found is from the website [catmas.com’s blog][1] section, dated from November 2, 2006. 
[1]: http://catmas.com/blog 

должны быть преобразованы в:

The Monorailcat 
One of the earliest pictures of monorail cat found is from the website catmas.com’s blog section, dated from November 2, 2006. 
+1

Вам нужно реализовать это самостоятельно? Должно быть доступно несколько конвертеров, худший код markdown-to-html и html-to-text. –

+0

Я бы предпочел не @MiserableVariable :) Я также подумал о двухэтапном подходе, но это звучит как много накладных расходов - особенно потому, что я хочу сгенерировать результат на просмотр страницы и не кэшировать его (пока) в базе данных. –

+0

Вы искали какие-либо прямые преобразователи? Я уверен, что они существуют, хотя я не проверял себя. –

ответ

4

У вас есть несколько возможностей.

  1. Как указано в комментарии, вы можете преобразовать в HTML и преобразовать HTML в обычный текст. Это, вероятно, самое надежное и последовательное решение кросс-платформенного.

  2. Перейти к библиотеке, которая может конвертировать несколько форматов, включая желаемые форматы. Pandoc был бы примером такого инструмента.

  3. Использовать маркерный анализатор, который выводит AST. Хотя такие синтаксические анализаторы обычно предоставляют средство визуализации HTML (принимают AST как входные данные и выводят HTML), вы можете создать свой собственный рендерер, который выводит любой формат, который вы хотите.

На самом деле, оказывается, что Pandoc также является примером №3. Просто уже существует существующий простой текстовый рендеринг. Конечно, если вы ищете C# lib, то Pandoc может не соответствовать вашим потребностям. И я не знаю о каких-либо C# libs, которые удовлетворяют эту потребность (эталонная реализация использует замену строки regex, и многие (большинство?) Парсеров следовали этому примеру). Тем не менее, я не знаком с какой-либо из библиотек Markdown в C#, и это не подходящее место для составления рекомендаций. Тем не менее, существует длинный, хотя и неполный, список парсеров here. Вы можете найти там что-то полезное.

+0

Я надеялся на более готовое решение, но я думаю, что на этом этапе это лучшее решение! Спасибо за Ваш ответ :) –

Смежные вопросы