将富文本Markdown转换为纯文本

13
如何将丰富的Markdown转换为纯文本? 以便例如用于Facebook OpenGraph描述。
我正在使用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。 - Miserable Variable
我宁愿不这样做,@MiserableVariable :) 我也考虑过两步方法,但听起来很繁琐 - 特别是因为我想要每个页面视图都生成结果,而不(暂时)将其缓存到数据库中。 - Dirk Boer
你有找过任何直接转换器吗?虽然我自己没有检查过,但我相信它们存在。 - Miserable Variable
我尝试寻找它们,但是还没有在C#中找到它们。 - Dirk Boer
替代文本不应该在纯文本输出中吗? - Jon Hanna
嗨Jon,最好不要在这种情况下。你可能会对此提出异议,但我认为这种讨论可能会分散问题的注意力 :) - Dirk Boer
2个回答

8
你有几个选择。
1. 如评论中所述,您可以将其转换为HTML,然后将HTML转换为纯文本。这可能是跨平台最可靠和一致的解决方案。
2. 切换到可以在多种格式之间转换的库,包括您需要的格式。Pandoc 就是这样一个工具的例子。
3. 使用 Markdown 解析器输出 AST。虽然这些解析器通常提供 HTML 渲染器(接受 AST 作为输入并输出 HTML),但您可以创建自己的渲染器,以输出任何您想要的格式。
实际上,Pandoc也是第三种情况的一个例子。它恰好已经有了现有的纯文本渲染器。当然,如果你正在寻找一个C#库,那么Pandoc可能无法满足你的需求。我不知道有任何满足这个需求的C#库(参考实现使用正则表达式字符串替换,许多(大多数?)解析器都遵循这个例子)。话虽如此,我对C#中的Markdown库不熟悉,这不是一个适当的推荐场所。然而,这里有一个漫长但不完整的解析器列表here。你可能会在那里找到有用的东西。

我本希望有一个更现成的解决方案,但我认为目前这是最好的解决方案!感谢您的回答 :) - Dirk Boer

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接