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');
});
そこで私は、Spectrumという Node.js でオープンソースの CMSを作成しています。優れた Markdown エディターを探していましたが、JavaScript で作成されたものに感心するものはありませんでした。
私はこのクラムダウンに出会い、本当に気に入りました。
についてRuby
の知識はまったくありませんが、CMS で動作するようになりましたが、ここで懸念される問題が 1 つあります。
上記のコードでは、Kramdown をプレビュー パネルで操作できるようにしていますが、これは本当に効率的ですか?
これは、ユーザーが文字を入力するたびに GET/POST リクエストをサーバーに送信しているようなものだからです。
ファイルを書き込まずにデータを解析するより良い方法があるかどうかを確認してから、実行Kramdown
してファイルを解析し、データを送り返しました。
これを行うより良い方法はありますか?ここでのソリューションにはあまり気分が良くありません:(