2

我现在正在构建一个简单的应用程序,其中包括编辑博客等内容。我有一些选择,例如 tinymc,一个很好的 html 编辑器,我打算使用它。但后来我发现了一些关于降价的东西,它很容易使用,现在也很流行。在 Markdown 支持的编辑器中,EpicEditor 是一个不错的选择。由于某些原因,WYSIWYGs 很糟糕而且很复杂。所以我决定使用降价编辑器。

然后在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保存到数据库的好处是,当用户想再次编辑内容时,客户端更容易编辑markdown内容。

4

1 回答 1

3

一般来说,最好保留原始输入,然后(按需)将其转换为目标视图。这使您可以将原始输入呈现回来以供以后编辑,并将原始输入转换为不同格式的不同视图(例如,如果您想将数据放入电子邮件中,您可以将降价保留为文本的纯文本电子邮件的版本)。

也就是说,Markdown 到 HTML 的成本可能很高(就 CPU 而言),因此您可能希望在输入时(或首次查看时)将其转换为 HTML,然后缓存结果(可能在与降价存储)。不过,您仍然应该保留原始输入。

于 2013-04-18T16:06:14.983 回答