T. *_*one 13
退后一步并提出一些更大的问题可能会有所帮助.Markdown试图解决的问题是浏览器中的丰富编辑问题.考虑一下:在某些时候,对于任何支持富文本的软件,它必须以某种方式描述丰富性,但这可能是.
我们可以称之为丰富的描述(通过丰富的描述,我的意思是"这一点文字是大胆的"或"这一点文字是一个超链接),我们可以称之为丰富的"标记" - 它标记了具有元"丰富性"的文本.
富文本的实现可以采用两种方法,a.)隐藏用户的标记或b.)让他们可以访问标记.
对于那些选择隐藏它的人来说,最终的结果往往是WYSIWYG.用户无视幕后发生的事情.编辑负责细节.以MS Word为例.没有人将Word标记格式作为常规最终用户进行操作.
对于选择公开标记的实现,然后使用标记语言以允许用户与其交互.这样的标记语言就像HTML做的那样,<tag>或者像BB代码那样,做的事情就像[tag].
Markdown就是这些语言中的一种.
与我之前提到的类型相反,Markdown尝试设计自己,以便标记呈现常见的ASCII人已经使用.例如,人们通常会将其文本用星号设置*important*,并且Markdown中的这种表示法是斜体的指示.
关于存储,正如Stephan指出的那样,系统很可能存储原始降价,因为用户很可能需要有编辑的可能性,并且可以为此目的调用原始降价.
在我构建的大多数系统中,我存储了markdown,然后将其标准化为第二个字段,该字段缓存了markdown的HTML呈现.这样我就不必为每个markdown字段做markdown-> HTML呈现.它需要更多的空间,但我宁愿用户比使用更少的数据库存储空间有更快的响应.
从浏览器接受Markdown时也要小心,因为它可以很容易地包含<script>需要过滤掉的标签.大多数降价实现还会识别与Markdown格式混合的HTML,因此为了安全起见,您需要确保正确清理输入和缓存.