在我看来,Markdown的一个更大的目标就是防止用户直接键入潜在的畸形
HTML.
那在MarkdownSharp中并不完全符合我的要求.
当您在“abc”之后立即有额外的换行符时,此示例正常工作…
但是当那个换行不在那里的时候,我认为它仍然是HtmlEncoded,但是这并没有发生
<% var md = new MarkdownSharp.Markdown(); %> <%= md.Transform(Request.Form[0]) %>
当然我一定是错过了一些东西.哦,我正在使用v1.13(这篇文章的最新版本).
编辑(这是StackOverflow实现的测试)
ABC
这不应该是红色的
解决方法
对于那些不想使用Steve Wortham定制解决方案的用户,我已经向MarkdownSharp的用户提交了一个问题和一个提议的修复:
http://code.google.com/p/markdownsharp/issues/detail?id=43
如果您下载我附加的Markdown.cs文件,您将找到一个可以设置的新选项.它会停止MarkdownSharp重新编码代码块中的文本.
不要忘记HTML编码您的输入之前,您将它传递到降价,而不是之后.
另一个解决方案是白名单HTML标签,如Stack Overflow.在您将内容传递给降价后,您将会执行此操作.
有关详细信息,请参阅:http://www.CodeTunnel.com/blog/post/24/mardownsharp-and-encoded-html