Middleware in my Node.js
functions.editorPreview = function (req, res) {
var data = req.body.text;
fs.writeFile(__dirname + '/message.txt', data, function (err) {
if (err) throw err;
child = exec('kramdown ' + __dirname + '/message.txt', function (error, stdout, stderr) {
if (error) {
return res.json(500, error.message);
}
return res.json(200, {
text: stdout
});
});
});
};
$.post method in index.html
$(function() {
$('#kramdown-input').keyup(function() {
$.post('/editor/preview', { text: $(this).val() }, function(data) {
$('#output').html(data.text);
$('pre code').each(function(i, e) { hljs.highlightBlock(e) });
MathJax.Hub.Queue(['Typeset', MathJax.Hub]);
});
});
$('#kramdown-input').trigger('keyup');
});
所以我正在用 Node.js 编写名为Spectrum的开源 CMS ,我一直在寻找一个好的 Markdown 编辑器,但没有一个能真正让我印象深刻的是用 JavaScript 编写的。
我遇到了这个 Kramdown,我真的很喜欢它。
我对 CMS 的了解为零Ruby
,但我已经达到了它现在可以与我的 CMS 一起使用的地步,但是我在这里关心的一个问题。
上面的代码我已经让 Kramdown 在预览面板上进行交互,但这真的有效吗?
因为这就像我们在每次用户计时一个字符时向服务器发送一个 GET/POST 请求。
我试图检查是否有更好的方法来解析数据而不必编写文件然后执行Kramdown
解析文件然后发回数据。
有一个更好的方法吗?我对这里的解决方案感觉不太好:(