在rails app中支持Markdown编辑

时间:2017-04-23 12:21:01

标签: ruby-on-rails markdown

我允许我的用户创建作业并将其分发给员工。分配具有称为描述的属性。而不是用户填写纯文本字段来创建描述我想给他们一个可编辑的降价支持框来填写。完全像我现在填写的那个。我之前从未构建过这样的东西,但我想知道是否有一个Ruby gem或插件可以帮我解决这个问题?

2 个答案:

答案 0 :(得分:1)

我建议您使用github的宝石:https://github.com/github/markup

首先安装几个宝石:

  • 的github /标记
  • HTML的管道
  • 引入nokogiri
  • 引入nokogiri-DIFF

然后尝试以下方法:

require "github/markup"
require 'html/pipeline'
require 'nokogiri'
require 'nokogiri/diff'

filename = ARGV.first
puts GitHub::Markup.render(filename, File.read(filename)).strip.force_encoding("utf-8")

答案 1 :(得分:1)

我可以推荐你SimpleMDE javascript markdown编辑器。在这种情况下,您不需要ruby gem用于markdown,因为SimpleMDE可以为您生成html版本。您需要在数据库中保存两个版本 - markdown和html。

我们的表格assignments包含两个字段description以保留降价版本,description_html用于保留问题的html版本。到目前为止,您创建了共同的轨道分配'将simplemde实例形成并绑定到description textarea。对于description_html创建隐藏字段标记:

<%= f.hidden_field :description_html %>
<%= f.textarea :description %>

在任何更改上,simplemde会将html版本保存到description_html隐藏字段:

var simplemde = new SimpleMDE({ element: $("#MyID")[0] });
  simplemde.codemirror.on("change", function(){
  # set a html to a hidden field 
  $('#description_html_id_CHANGE_IT').val(simplemde.getHtmlValue());
});