2

我对 Rails 比较陌生,最近完成了 Hartl 的 Rails 教程,现在正在着手我的第一个完整项目。我有兴趣添加到我的 Web 应用程序中的是类似于 SO 中的文本输入功能,您可以在其中输入,并直接查看您的文本将如何输出。在对SO进行了一些 研究之后,我决定使用 gem ,它是用 Ruby 实现的 Markdown,但现在有以下问题: bluecloth

  1. 我不确定如何将bluecloth输出与form_for助手联系起来。我的理解是您可以通过函数转换为字符串html = BlueCloth.new(str).to_html(),但是我不确定当您有一个文本字段作为其中的一部分时该怎么办form_for,我应该在哪里插入蓝布部分?换句话说,我仍然对在一个框中输入并看到该项目显示在页面上的其他地方的魔力感到有些困惑。
  2. WMD 栏按钮项目和功能是否包含 Markdown 编辑器(例如 bluecloth),还是我必须手动构建?如果是这样,当您键入时,我将如何在编辑器中获得类似粗体按钮以显示“** **”的内容?

谢谢你的帮助!

4

1 回答 1

4

正如评论所指出的,Markdown 是一种类似于 HTML 的标记语言,所以它不容易做到所见即所得。

获得这种功能可能有两种方法。

服务器端

将您的降价文本发布到服务器并让服务器返回 HTML。我在 Python 中做了很多,但对于 Ruby,这个 SO 答案建议maruku。这种方法的缺点是每次您想要查看预览时都需要一个服务器请求,然后通过某种方式将其集成回您的 UI 中而不会干扰用户。Stackoverflow 将这种方法与WMD 编辑器和服务器上的一些 C# 一起使用

客户端

另一种选择是使用客户端库来获取您的降价“代码”并生成 html,然后您可以使用 javascript 将其集成到您的页面中。一个例子是dillinger。这使用 textarea 和类似showdown的东西在浏览器中呈现 HTML。我在我正在开发的名为demarcate.js的 WYSIWYG Markdown 编辑器中进一步采用了这种方法

或者...抛弃 Markdown

评论已经建议了替代的所见即所得编辑器......其中大多数不是降价编辑器,而是最终生成 HTML 的富文本编辑器。TinyMCEwysihtml5是不错的选择,我之前也使用过CKeditor并取得了一些成功——它在最新版本中有一个很酷的“就地”功能,这激发了我上面的 Markdown 编辑器。

于 2013-01-30T13:49:10.803 回答