rails Bootstrap markdown gem在保存时未解析为html



我正在使用bootstrap markdown为我的页面添加一个markdown编辑器,并将解析为html的内容保存在数据库中。问题是(尽管我认为应该)它不保存html结果,而是保存原始文本。

这是我的代码:

 <div class="well col-md-10 col-md-offset-1">
 <%= form_for(:post, :url => {:action => 'create'}) do |f| %>
    <%= f.text_field(:title, class: 'form-control')%>
    <%= f.text_field(:description, class: 'form-control')%>
    <%= f.text_area(:content, rows: 15, "data-provide" => "markdown")%>
    <%= f.button "Submit", type: 'submit', class: 'btn col-md-4 col-md-offset-4 btn-large btn-success' %>
<% end %>
</div>  

我添加了如下库:

//= require jquery
//= require bootstrap-sprockets
//= require jquery_ujs
//= require turbolinks
//= require markdown.js
//= require to-markdown.js
//= require bootstrap-markdown-bundle
//= require_tree .

 *= require_tree .
 *= require_self
 *= require bootstrap-markdown

这是html输出:

<button class="btn col-md-4 col-md-offset-4 btn-large btn-success" name="button" type="submit">Submit</button>

这个插件的主要目的是提供Markdown编辑器

它并不打算将任何内容转换为HTML(从/转换为HTML和Markdown是由包含在该捆绑包中的第三方插件完成的)。这只是Markdown编辑器,而不是HTML编辑器。

不保存HTML的原因:

1) 如果不破坏布局(在没有关闭标记的情况下)或使用第三方libs来修复这些块,就无法输出HTML的一部分;

2) 如果您使用Markdown编辑器编辑Markdown,请使用Markdown作为编辑源,否则总有一天您会在将所有内容转换为HTML和Markdown时遇到问题,这也会导致数据丢失+并非所有内容都可以转换回(此说明写在-to-Markdown.js插件网站上)。

3) 您需要防止可能的XSS攻击,因此您必须在存储HTML后做额外的工作,因为插件无法将您从中拯救出来(存储易受攻击的代码块不是一个好主意,因为您必须将其输出为raw HTML)任何人都可以绕过您的编辑器,向您发送不安全的内容,这些内容稍后将在您的网站上输出。

等等。。。

最新更新