From be93b7902410c9f868d311eb157e5a278476248b Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Wed, 5 Mar 2014 17:56:23 +0000 Subject: [PATCH] Add redcarpet for Markdown. Specs pass! --- Gemfile | 3 +-- Gemfile.lock | 4 ++-- app/controllers/pages_controller.rb | 2 +- app/models/page.rb | 3 --- app/presenters/page_presenter.rb | 9 +++++++++ app/views/pages/show.html.erb | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 app/presenters/page_presenter.rb diff --git a/Gemfile b/Gemfile index 3fe6145..d8d276e 100644 --- a/Gemfile +++ b/Gemfile @@ -71,9 +71,8 @@ gem 'formtastic' gem 'squeel' #gem 'mini_exiftool' gem 'will_paginate' -gem 'rdiscount' +gem 'redcarpet' gem 'paperclip' -#gem 'acts_as_markup' gem 'haml' gem 'slugtastic' diff --git a/Gemfile.lock b/Gemfile.lock index a3472cb..6723f1b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -156,7 +156,7 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.1.1) - rdiscount (2.1.7) + redcarpet (3.1.1) rspec-core (2.14.8) rspec-expectations (2.14.5) diff-lcs (>= 1.1.3, < 2.0) @@ -246,7 +246,7 @@ DEPENDENCIES powder pry rails (~> 4.0.0) - rdiscount + redcarpet rspec-rails ruby_parser sass-rails (~> 4.0.0) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 4535c83..22ab046 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,6 +1,6 @@ class PagesController < ApplicationController def show - @page = Page.find_by_name!(params[:name]) + @page = PagePresenter.new(Page.find_by_name!(params[:name])) @page_title = @page.title end end diff --git a/app/models/page.rb b/app/models/page.rb index 3e06acc..37ce9e7 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -1,5 +1,2 @@ -require 'rdiscount' - class Page < ActiveRecord::Base - acts_as_markdown :content, :markdown_options => [ :smart ] end diff --git a/app/presenters/page_presenter.rb b/app/presenters/page_presenter.rb new file mode 100644 index 0000000..6eabd08 --- /dev/null +++ b/app/presenters/page_presenter.rb @@ -0,0 +1,9 @@ +class PagePresenter < SimpleDelegator + def content_as_html + PagePresenter.markdown.render(content) + end + + def self.markdown + @markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, extensions = {}) + end +end diff --git a/app/views/pages/show.html.erb b/app/views/pages/show.html.erb index c76e06f..74252d1 100644 --- a/app/views/pages/show.html.erb +++ b/app/views/pages/show.html.erb @@ -8,7 +8,7 @@
- <%= raw(@page.content.to_html) %> + <%= raw(@page.content_as_html) %>