我现在正在构建一个简单的应用程序,其中包括编辑博客等内容。我有一些选项,比如tinymc,一个很好的html编辑器,我打算用它。但后来我找到了一些关于降价的东西,它很容易使用,也很受欢迎。在降价支持的编辑中,EpicEditor是一个不错的选择。由于某些原因,所见即所得很糟糕而且很复杂。所以我决定使用markdown编辑器。
然后在node.js服务器端,我有两个选择来存储内容,在markdown或html中,就像在cod中一样,它首先将markdown解析为html,然后将其保存到数据库中。
app.post('/post', function(req, res){
var currentUser = req.session.user,
html = markdown.makeHtml(req.body.post),
post = new Post(currentUser.name, req.body.title, html);
post.save(function(err){
if(err){
req.flash('error', err);
return res.redirect('/');
}
req.flash('success', 'scc!');
res.redirect('/');
});
});
将html保存到数据库的优点是,加载内容时,应用程序不需要从markdown解析为html。 保存markdown到数据库的优点是,当用户想要再次编辑内容时,客户端更容易编辑降价内容。
答案 0 :(得分:3)
一般来说,最好保留原始输入,然后对目标视图进行转换(按需)。这样您就可以将原始输入显示回来供以后编辑,并将原始输入转换为不同视图的不同格式(例如,如果您想将数据放入电子邮件中,则可以将标记保留为文本的纯文本电子邮件的版本。)
也就是说,Markdown to HTML可能代价很高(就CPU而言),因此您可能希望在输入时(或首次查看时)转换为HTML,然后缓存结果(可能在同一数据库的另一列中)表格作为降价存储)。你仍然应该保留原始输入。