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');
});

所以我正在用 Node.js 编写名为Spectrum的开源 CMS ,我一直在寻找一个好的 Markdown 编辑器,但没有一个能真正让我印象深刻的是用 JavaScript 编写的。

我遇到了这个 Kramdown,我真的很喜欢它。

我对 CMS 的了解为零Ruby,但我已经达到了它现在可以与我的 CMS 一起使用的地步,但是我在这里关心的一个问题。

上面的代码我已经让 Kramdown 在预览面板上进行交互,但这真的有效吗?

因为这就像我们在每次用户计时一个字符时向服务器发送一个 GET/POST 请求。

我试图检查是否有更好的方法来解析数据而不必编写文件然后执行Kramdown解析文件然后发回数据。

有一个更好的方法吗?我对这里的解决方案感觉不太好:(

4

1 回答 1

1
  • 您可以从 ruby​​learning.com 学习ruby ​​。
  • 使用 Javascript markdown 解析器直接在浏览器上呈现:
于 2013-07-28T22:51:08.737 回答