在我看来,Markdown的一个更大的目标是防止用户直接键入格式可能错误的HTML。
好吧,在MarkdownSharp,这对我来说不太合适。
当您在“abc”之后有额外的行中断时,此示例工作正常.

但当断线不存在的时候,我认为应该还是HtmlEncoded,但这不是发生在这里.

在幕后,呈现的标记来自iframe。这就是它背后的密码..。
<%
var md = new MarkdownSharp.Markdown();
%>
<%= md.Transform(Request.Form[0]) %>我肯定遗漏了什么。哦,我使用的是v1.13 (本文的最新版本)。
编辑(这是对StackOverflow实现的测试)
abc
这不应该是红色的
发布于 2011-02-16 21:04:44
由于StackOverflow实现包含了相当多的自定义,因此测试和计算可能会花费时间,因此我决定转向另一个方向。
我创建了自己的简化标记语言,这是Markdown的一个子集。开放源码项目位于http://ultralight.codeplex.com/,您可以在http://www.bucketsoft.com/ultralight/上看到一个工作示例。
该项目是一个完整的ASP.NET MVC解决方案和一个Javascript编辑器。与MarkdownSharp不同的是,安全的HTML是得到保证的。Javascript解析器同时使用客户端和服务器端来保证一致的标记(特别感谢侏罗纪Javascript编译器)。只需为该解析器维护一个代码基是一件很好的事情。
虽然这个项目还在测试阶段,但我已经在我自己的网站上使用了它,而且到目前为止它似乎运行得很好。
发布于 2011-03-17 20:19:48
对于那些不想使用Steve的自定义解决方案的人,我已经向MarkdownSharp guys:http://code.google.com/p/markdownsharp/issues/detail?id=43提交了一个问题和一个拟议的解决方案。
如果您下载我附加的Markdown.cs文件,您将找到一个新的选项,您可以设置。它将阻止MarkdownSharp在代码块中重新编码文本。
只是不要忘记在将输入传递给标记之前,而不是之后,对其进行HTML编码。
另一种解决方案是像堆栈溢出一样使用白名单HTML标记。当你把你的内容传递给减价后,你就会这样做。
有关更多信息,请参见此:http://www.CodeTunnel.com/blog/post/24/mardownsharp-and-encoded-html
发布于 2011-02-01 20:29:42
也许我不理解?如果你要在Markdown中启动一个新的代码块,在它的所有类型中,您确实需要一个双换行和四个空格缩进--在我需要处理的任何渲染器中,一个换行符都不能用。
abc -- Here comes a code block:
<div style="background-color: red"> This is code</div>屈服:
abc --这里有一个代码块:
<div style="background-color: red"> This is code</div>从您所说的话来看,MarkdownSharp似乎对这条规则做得很好,所以只有一个换行符(但缩进):
abc -- Here comes a code block:
<div style="background-color: red"> This should be code</div>我们搞得一团糟,而不是代码块:
这里有一个代码块:这应该是代码
我认为StackOverflow正在剥离<div>标记,因为他们认为评论不应该有分割和类似的东西。(?)(一般来说,他们必须做很多其他的处理,不是吗,例如得到语法高亮显示等等?)
编辑:,我认为人们对Markdown实现的期望是错误的。例如,正如我下面所说的, 没有“无效标记”这样的东西。它不是一种编程语言,也不是任何类似的语言。我已经验证了,我从命令行中获得的所有三个标记实现都可以毫无差别地‘转换’随机的.js和.c文件,或者插入到其他合理的标记中的那些--还有内插的zip文件和其他胡说八道--变成浏览器根本不介意显示的有效html --尽管它是鸡抓痕。如果您想排除某些东西,例如在wiki程序中,您当然要做一些进一步的事情,当然,就像大多数使用wiki程序的标记程序所做的那样。
https://stackoverflow.com/questions/4864255
复制相似问题