diff --git a/Gemfile b/Gemfile index 82c2ea2a..2591a053 100644 --- a/Gemfile +++ b/Gemfile @@ -128,4 +128,4 @@ group :test do gem 'hashie', '~> 3.4.6', require: false # https://github.com/westfieldlabs/apivore/issues/114 end -gem "redcarpet" +gem "redcarpet", "~> 3.6" diff --git a/Gemfile.lock b/Gemfile.lock index f4d3ed09..dbac6fba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -653,7 +653,7 @@ DEPENDENCIES rails_tokeninput ransack recurring_select! - redcarpet + redcarpet (~> 3.6) resque roo roo-xls diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 2f281022..de207901 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -263,26 +263,4 @@ module ApplicationHelper stylesheet_link_tag foodcoop_css_path, media: 'all' end end - - # renders html from markdown input - def markdown(text) - options = { - filter_html: true, - hard_wrap: true, - link_attributes: { rel: 'nofollow', target: "_blank" }, - fenced_code_blocks: true - } - extensions = { - autolink: true, - superscript: true, - disable_indented_code_blocks: true, - tables: true, - strikethrough: true, - footnotes: true - } - - renderer = ::Redcarpet::Render::HTML.new(options) - markdown = ::Redcarpet::Markdown.new(renderer, extensions) - markdown.render(text).html_safe - end end diff --git a/plugins/messages/app/models/message.rb b/plugins/messages/app/models/message.rb index 08913d8d..d4ec609e 100644 --- a/plugins/messages/app/models/message.rb +++ b/plugins/messages/app/models/message.rb @@ -132,6 +132,11 @@ class Message < ApplicationRecord user.role_admin? end + def render_markdown + markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true, strikethrough: true, footnotes: true) + return markdown.render(body) + end + private def create_salt diff --git a/plugins/messages/app/views/messages/show.haml b/plugins/messages/app/views/messages/show.haml index 7a845c68..975c7c09 100644 --- a/plugins/messages/app/views/messages/show.haml +++ b/plugins/messages/app/views/messages/show.haml @@ -33,7 +33,7 @@ - if @message.can_toggle_private?(current_user) = link_to t('.change_visibility'), toggle_private_message_path(@message), method: :post, class: 'btn btn-mini' %hr/ - = markdown(@message.body) + = raw @message.render_markdown %hr/ %p = link_to t('.reply'), new_message_path(:message => {:reply_to => @message.id}), class: 'btn' diff --git a/plugins/messages/app/views/messages/thread.haml b/plugins/messages/app/views/messages/thread.haml index 181bbd4a..4bc36bcb 100644 --- a/plugins/messages/app/views/messages/thread.haml +++ b/plugins/messages/app/views/messages/thread.haml @@ -9,7 +9,7 @@ .panel-heading %b= h(message.sender_name) = format_time(message.created_at) - .panel-body= markdown(message.body) + .panel-body= simple_format(h(message.body)) %p = link_to t('.reply'), new_message_path(:message => {:reply_to => thread_message.id}), class: 'btn' diff --git a/plugins/messages/app/views/messages_mailer/foodsoft_message.html.haml b/plugins/messages/app/views/messages_mailer/foodsoft_message.html.haml index 4577c76e..48824acf 100644 --- a/plugins/messages/app/views/messages_mailer/foodsoft_message.html.haml +++ b/plugins/messages/app/views/messages_mailer/foodsoft_message.html.haml @@ -1,4 +1,4 @@ -= markdown(@message.body) += raw @message.render_markdown %hr/ %pre - if @message.group