【问题标题】:MarkdownSharp/Markdown.NET: How to retrieve non-formatted text from markdown?MarkdownSharp/Markdown.NET:如何从 Markdown 中检索非格式化文本?
【发布时间】:2011-01-06 01:50:25
【问题描述】:

有时将 markdown 转换为纯文本可能很有用(例如,用于通过电子邮件发送)。

这些库是否支持此功能? (其实我对 MarkdownSharp 更感兴趣)

编辑

回应乔恩的评论。我将澄清我对这种转换的期望:
Markdown 具有特殊字符,根据上下文,它们仅具有格式含义。例如 **,=,- 字符。如果我能从格式化字符中清除文本就好了。

我不确定什么是最好的方法以及应该删除哪些字符,例如我也不知道如何处理链接,但我认为以前可能有人做过这种意义上的事情。

编辑 2

找到了一个很好的例子:Stackoverflow 在“问题”列表中使用了这种降价清除。我很确定它会在呈现问题内容简短之前清除 markdown 格式,否则它将包含换行符、强项、H1 等。

编辑 3

我同意约翰。最好的解决方案似乎是从 markdown 转换为 HTML,然后剥离生成的 HTML。

而这个任务似乎已经解决了:How Can I strip HTML from Text in .NET?

【问题讨论】:

  • Markdown 背后的整个想法不就是输入是“纯文本”吗?您希望库在“Markdown 到纯文本”的转换中进行什么样的转换?
  • @Jorn:我编辑了关于您的评论的问题。
  • 我仍然相信,即使在纯文本环境中,Markdown 中的“标记”(没有双关语)也应该是人类可读和增值的。 A *big* bowl of petunias - 例如,这实际上就是我在电子邮件中强调单词的方式。
  • 如果您对 Markdown 中使用的语法不满意,您可能需要考虑其中一个竞争对手,例如 Textile:en.wikipedia.org/wiki/Textile_(markup_language)
  • @Jorn:感谢您的关注,但我不太同意。我对降价非常满意。但碰巧在特定情况下,我想从中清除文本。请参阅我的 EDIT 2 了解一个众所周知的示例。

标签: c# .net markdown


【解决方案1】:

如果你只是想保留原始文本,那么就不要将它传递给 Markdown。

Markdown 仅用于一件事:将 Markdown 格式的文本转换为 HTML。如果您希望 Markdown 使用一组不同的转换规则将其格式化为 HTML 以外的其他内容,那么您将不得不编写自己的转换器。

如果你想获得已经是 HTML 格式的 Markdown 的“纯文本”版本,你可以去掉 HTML 标签。这就是 StackOverflow 所做的。

【讨论】:

  • 我的问题是原始文本是最终用户作为markdown传入的
  • 虽然这个解决方案在今天可能是一个实用的解决方案,但它似乎完全不是最理想的。 Markdown 库应该可以选择生成纯文本。所有这些性能基准测试的意义何在最终人们必须转到 HTML 然后对其进行清理以获得他们想要的东西
猜你喜欢
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2020-02-26
  • 1970-01-01
  • 2012-08-25
相关资源
最近更新 更多