0

我有一个问题,这个问题甚至可能不相关,但我想知道这是否可能。

我正在构建一个用 Node.js 编写的名为Spectrum的开源 CMS 。我遇到了这个很棒的 Markdown 解析器,叫做Kramdown这个解析器的美妙之处在于它可以与 Markdown、Markup 和其他很酷的东西一起使用,我真的很想在我的 Node.js 应用程序中使用它。

我对此有所zero了解Ruby,这是我第一次接触它。

我终于按照这个Demo运行了应用程序。

现在我希望这个编辑器能够与我的 node.js 应用程序进行交互。

如果用户访问这条路线:

http://localhost:3000/new-post

编辑器将被渲染,用户可以输入一些内容并直接发布。

如果用户访问这条路线:

http://localhot:3000/hello-world/edit

它应该使用一些内容呈现编辑器,并且该内容是由从数据库中检索的 node.js 发送的。

我能做这样疯狂的事吗?

kramdown我希望在我的 CMS 上使用它的原因。

我一直在为我的 CMS 寻找最好的 Markdown 编辑器/解析器,实际上我已经花了很多时间进行研究,但从未发现任何真正可以告诉我这就是我想要的东西,直到我找到Kramdown.

我试过Pagedown

很好,但是缺少很多功能,所以我发现

PageDown Extra,它仍然缺少一些我真正想要的东西。

我找到了最好的“编辑器” Stackedit 之一,但这太重了,而且功能太多,真的让我的编辑器运行得太慢而无法使用。

Regex然后我开始使用来自这篇博文的热情编写我自己的 Markdown 解析器,但这确实需要我很多次,因为我不是专家,Regex但我已经掌握了它。

我也试过标记

所以我现在真正想要的是。任何可以做类似于我的应用程序Kramdown并且可以与我的node.js应用程序集成的编辑器/解析器。

4

1 回答 1

3

Kramdown是一个解析器 gem,和 bundler 一样,它可以从命令行调用。

Kramdown 将 markdown 或其任何超集作为输入参数,并将 html/latex/kramdown 作为 o/p 输出。

如果没有任何选项,默认输出是 HTML,在这种情况下,这是所需的 o/p。所以我们只需要从 node.js 应用程序的 shell 调用 kramdown(如果安装了 kramdown gem,如果没有$gem install kramdown)。

这是我猜应该在 node.js 中完成的。(我对 node.js 的了解为零,如果有类似 ffi 的东西可用于与 ruby​​ 交互?如果是这样,它是比从 shell 调用它更好的选择)。

   var util = require('util'),
   exec = require('child_process').exec,
   child;

   child = exec('kramdown '+markdownFile, // command line argument directly in string
   function (error, stdout, stderr) {      // one easy function to capture data/errors
   if (error !== null) {
     //use stdout var, it contains the desired o/p
    }
   });

这个脚本的礼貌是:Node.js Shell Script And Arguments

了解 kramdown 中可用的其他选项

$kramdown --help
于 2013-07-19T17:32:20.793 回答