0

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してファイルを解析し、データを送り返しました。

これを行うより良い方法はありますか?ここでのソリューションにはあまり気分が良くありません:(

4

1 に答える 1

1
  • rubyLearning.comから Ruby を学ぶことができます。
  • Javascript マークダウン パーサーを使用してブラウザーで直接レンダリングする:
于 2013-07-28T22:51:08.737 に答える