在我看来,Markdown 的更大目标之一是防止用户直接输入可能格式错误的 HTML。
嗯,这在 MarkdownSharp 中并不适合我。
当您在“abc”之后立即有额外的换行符时,此示例可以正常工作...
但是当那个换行符不存在时,我认为它仍然应该是 HtmlEncoded,但是这里没有发生这种情况......
在幕后,呈现的标记来自 iframe。这是它背后的代码......
<%
var md = new MarkdownSharp.Markdown();
%>
<%= md.Transform(Request.Form[0]) %>
肯定是我遗漏了什么。哦,我使用的是 v1.13(撰写本文时的最新版本)。
编辑(这是对 StackOverflow 实现的测试)
美国广播公司
这不应该是红色的最佳答案
对于那些不想使用 Steve Wortham 的定制解决方案的人,我已经向 MarkdownSharp 人员提交了一个问题和建议的修复:http://code.google.com/p/markdownsharp/issues/detail?id=43
如果您下载我附加的 Markdown.cs 文件,您会发现一个可以设置的新选项。它将阻止 MarkdownSharp 在代码块中重新编码文本。
只是不要忘记在将输入传递到 markdown 之前对输入进行 HTML 编码,而不是之后。
另一种解决方案是像 Stack Overflow 那样将 HTML 标记列入白名单。在将内容传递给 markdown 之后,您会执行此操作。
有关更多信息,请参阅:http://www.CodeTunnel.com/blog/post/24/mardownsharp-and-encoded-html
关于c# - 为什么 MarkdownSharp 不对我的 HTML 进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864255/