Sha256: da1125fbcea87ed4b0bd2df35c8b49c0a73cc6b6f7b418bac253832004679302

Contents?: true

Size: 947 Bytes

Versions: 2

Compression:

Stored size: 947 Bytes

Contents

module Brief
  class Document
    module Rendering
      extend ActiveSupport::Concern

      def to_html
        self.class.renderer.render(content)
      end

      def css(*args, &block)
        parser.send(:css, *args, &block)
      end

      def at(*args, &block)
        parser.send(:at, *args, &block)
      end

      def parser
        @parser ||= Nokogiri::HTML.fragment(to_html)
      end

      module ClassMethods
        def renderer
          @renderer ||= begin
                          r = ::Redcarpet::Render::HTML.new(:tables => true,
                                            :autolink => true,
                                            :gh_blockcode => true,
                                            :fenced_code_blocks => true,
                                            :footnotes => true)

                          ::Redcarpet::Markdown.new(r)
                        end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
brief-1.1.0 lib/brief/document/rendering.rb
brief-1.0.0 lib/brief/document/rendering.rb