使用 Rails5 在文本区域中的 return 按键处应用 p html-tag

Applying p html-tag at return key press in textarea with Rails5

我有一个文本输入框供人们写一个非常基本的描述,这个描述可以是段落。当前,当用户点击 return(输入)键时,它不会创建新段落,除非用户手动编写

HTML 标签。但并非所有用户都知道 html-tags。当用户点击 return 键时,我如何将其应用为默认值。

我正在使用 simple_form gem:

  <%= simple_form_for @post, html: {multipart: true} do |f| %>
  <%= f.input :description, label: "Description:", input_html: { cols: 66, rows: 5, maxlength: 1500 }, as: :text  %>

我在显示时使用了清理 gem

  <%= Sanitize.fragment(@post.description, Sanitize::Config::BASIC).html_safe %>

谢谢!

我建议在呈现 @post.description 时使用像 redcarpet 这样的降价解析器。我以前就是这样处理这种事情的。

根据文档安装 redcarpet 后,创建一个这样的辅助方法(根据需要进行调整):

def markdown(text)
  return "" unless text.present?
  options = {
    filter_html:     true,
    hard_wrap:       true,
    link_attributes: { rel: 'nofollow', target: "_blank" },
    space_after_headers: true,
    fenced_code_blocks: true
  }

  extensions = {
    autolink:           true,
    superscript:        true,
    disable_indented_code_blocks: true
  }

  renderer = Redcarpet::Render::HTML.new(options)
  markdown = Redcarpet::Markdown.new(renderer, extensions)

  markdown.render(text).html_safe
end

然后您可以在您的视图中使用它 <%= markdown(@post.description) %> 以您想要的方式呈现描述。