Mat*_*rce 0 markdown laravel laravel-5.2
我不愿意发布这个,但我无法理解markdown如何实际"保存"到数据库.
当我创建迁移时,我将添加列并指定值的类型(即整数,文本,字符串等),并且在网站上的操作过程中,用户将输入不同的信息,然后保存在D B.没问题.
我似乎无法绕过降价过程.我已经阅读了关于保存HTML或保存markdown文件,在运行时呈现,利弊所有这些.
所以,假设我使用像Tiny MCE这样的编辑器,它将自己附加到textarea.当我点击表单上的"提交"时,它是如何运作的?验证如何工作?您可以直接回答我的问题或提供一些资源来帮助我进一步理解.我有一个基于Laravel的应用程序,所以我猜我需要使用像https://github.com/GrahamCampbell/Laravel-Markdown这样的软件包以及一个编辑器(即Tiny MCE).
谢谢!
让我们从一个更基本的例子开始:StackOverflow.在编写/编辑问题或答案时,您在textarea字段中键入Markdown文本.下面textarea是预览,显示转换为HTML的Markdown文本.
它的工作方式(简化了一点)是StackOverflow使用JavaScript库将Markdown解析为HTML.这种解析完全发生在客户端(在浏览器中),并且没有任何内容发送到服务器.由于textarea服务器没有来回,因此预览中的每个按键都会快速更新.
但是,当您提交问题/答案时,预览中的HTML将被丢弃,并且来自其的Markdown文本将textarea转发到StackOverflow服务器,其中将保存到数据库中.在某些时候,服务器还将Markdown转换为HTML,以便当另一个用户独自出现并请求查看该问题/答案时,该文档将由服务器以HTML格式发送给用户.我说"在某些时候",因为这是你必须决定转换何时发生的地方.您有两种选择:
如果服务器在将HTML保存到数据库时转换HTML,则它将保存为两列,一列用于Markdown,另一列用于HTML.稍后,当用户请求查看文档时,将从数据库中检索HTML文档并将其返回给用户.但是,如果用户请求编辑文档,则将从数据库中检索Markdown文档并将其返回给用户,以便她可以编辑它.
如果服务器只存储文本降价到数据库中,那么当用户请求查看该文档时,文档降价会从数据库中检索,转换为HTML,然后返回给用户.但是,如果用户请求编辑文档,则将从数据库中检索Markdown文档并将其返回给用户(跳过转换步骤),以便她可以编辑它.
请注意,在任一选项中,服务器都在转换为HTML.转换发生的唯一时间客户端(在浏览器中)是用于预览.但"预览"转换不用于在编辑模式之外显示文档或将文档存储在数据库中.
StackOverflow和TinyMCE之间的唯一区别在于,在TinyMCE中,预览也是编辑器.在幕后,仍然会发生相同的过程,当您提交时,它是发送到服务器的Markdown.用于预览的HTML仍然被丢弃.
实现此类系统时的主要问题是,如果用于预览的Markdown实现与服务器使用的实现不同,则预览可能不是非常准确.因此,通常最好选择两个非常相似的实现,或者如果可用,则对两者使用相同的实现.
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |