我对 Rails 比较陌生,最近完成了 Hartl 的 Rails 教程,现在正在着手我的第一个成熟的项目。我有兴趣添加到我的网络应用程序中的是类似于 SO 中的文本输入功能,您可以在其中键入,并直接查看文本的结果。之后some digging around因此,我决定使用 gem bluecloth
,它是用 Ruby 实现的 Markdown,但现在有以下问题:
- 我不确定如何将
bluecloth
输出绑定(bind)到form_for
帮助器。我的理解是,您可以通过函数html = BlueCloth.new(str).to_html()
转换为字符串,但我不确定当您有一个文本字段作为的一部分时该怎么做>form_for
,我应该在哪里插入蓝牙部分?换句话说,我仍然对在一个框中输入内容并看到该项目显示在页面其他位置的魔力感到有点困惑。 - WMD 栏按钮项目和功能是否包含 Markdown 编辑器(例如 bluecloth),还是我必须手动构建?如果是这样,我如何才能在您键入时在编辑器中显示诸如粗体按钮之类的内容?
感谢您的帮助!
最佳答案
正如评论所指出的,Markdown 是一种像 HTML 一样的标记语言,所以它不容易做到所见即所得。
可能有两种方法可以获得这种功能。
服务器端
将 Markdown 文本发布到服务器并让服务器返回 HTML。我在 Python 中做过很多这样的事情,但对于 Ruby this SO answer建议maruku 。这种方法的缺点是,每次您想要查看预览时,都需要向服务器发出请求,然后通过某种方式将其集成回 UI 中,而不会干扰用户。 Stackoverflow 使用此方法 WMD editor and some C# on the server .
客户端
另一种选择是使用客户端库来获取您的 Markdown“代码”并生成 html,然后您可以使用 javascript 将其集成到您的页面中。一个例子是 dillinger 。这使用文本区域和类似 showdown 的东西在浏览器中呈现 HTML。我在我正在开发的名为 demarcate.js 的 WYSIWYG Markdown 编辑器中进一步采用了这种方法。
或者...放弃 Markdown
评论已经建议了替代的 WYSIWYG 编辑器...其中大多数不是 Markdown 编辑器,而是在最后生成 HTML 的富文本编辑器。 TinyMCE和 wysihtml5都是不错的选择,我也使用过 CKeditor之前取得了一些成功 - 它在最新版本中有一个很酷的“就地”功能,这启发了我上面的 Markdown 编辑器。
关于ruby-on-rails - 在 Rails 中制作一个基本的类似 SO 的 WYSIWYG 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570443/