【问题标题】:Convert rich MarkDown to plain text将富 MarkDown 转换为纯文本
【发布时间】:2019-08-07 22:50:40
【问题描述】:

如何将丰富的 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.

【问题讨论】:

  • 您需要自己实现吗?必须有几个转换器可用,最坏的情况是 markdown-to-html 和 html-to-text。
  • 我宁愿不@MiserableVariable :) 我也考虑过两步方法,但这听起来有很多开销 - 特别是因为我想为每个浏览量生成结果,而不是缓存它(还)在数据库中。
  • 您是否在寻找任何直接转换器?我确信它们存在,尽管我没有检查过自己。
  • 我尝试寻找它们,但在 C# 中没有找到它们。
  • alt 文本不应该在纯文本输出中吗?

标签: c# markdown markdownsharp


【解决方案1】:

你有几种可能性。

  1. 如评论中所述,您可以转换为 HTML,然后将 HTML 转换为纯文本。这可能是最可靠、最一致的跨平台解决方案了。

  2. 切换到可以在多种格式之间转换的库,包括您想要的格式。 Pandoc 就是这种工具的一个例子。

  3. 使用输出 AST 的 Markdown 解析器。虽然此类解析器通常提供 HTML 渲染器(接受 AST 作为输入并输出 HTML),但您可以创建自己的渲染器来输出您想要的任何格式。

实际上,Pandoc 也是#3 的一个例子。它恰好已经有一个现有的纯文本渲染器。当然,如果您正在寻找 C# 库,那么 Pandoc 可能无法满足您的需求。而且我不知道有任何满足该需求的 C# 库(参考实现使用正则表达式字符串替换,并且许多(大多数?)解析器都遵循了该示例)。也就是说,我不熟悉 C# 中的任何 Markdown 库,这不是提出建议的合适地方。然而,有一个冗长的,虽然不完整的解析器列表here。你可能会在那里找到一些有用的东西。

【讨论】:

  • 我希望有一个更现成的解决方案,但我认为目前这是最好的解决方案!谢谢你的回答:)
【解决方案2】:

存在一些可帮助您删除 markdown 语法的库,例如 removemarkdown 或 strip-markdown。

【讨论】:

    猜你喜欢
    • 2020-08-27
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多