c# – 为什么MarkdownSharp编码我的HTML?

前端之家收集整理的这篇文章主要介绍了c# – 为什么MarkdownSharp编码我的HTML?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我看来,Markdown的一个更大的目标就是防止用户直接键入潜在的畸形 HTML.

那在MarkdownSharp中并不完全符合我的要求.

当您在“abc”之后立即有额外的换行符时,此示例正常工作…

但是当那个换行不在那里的时候,我认为它仍然是HtmlEncoded,但是这并没有发生

在幕后,渲染的标记来自一个iframe.这是它背后的代码

<% 
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

原文链接:/csharp/94687.html

猜你在找的C#相关文章