Sha256: bcf0ccb54079e4b0ce314228a9a1d679080b1dedd6b270811d443e16f3abf834

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

# Markdown renderer
module Middleman::Renderers::Markdown
  
  # Setup extension
  class << self
    
    # Once registered
    def registered(app)
      # Require redcarpet gem
      require "redcarpet"
      
      # Forcably disable Redcarpet1 support.
      # Tilt defaults to this if available, but the compat
      # layer disables extensions.
      Object.send(:remove_const, :RedcarpetCompat) if defined? ::RedcarpetCompat
      
      # Set our preference for a markdown engine
      app.set :markdown_engine, :redcarpet
      app.set :markdown_engine_prefix, ::Tilt
      
      app.before_configuration do
        template_extensions :markdown => :html,
                            :mdown    => :html,
                            :md       => :html,
                            :mkd      => :html,
                            :mkdn     => :html
      end
      
      # Once configuration is parsed
      app.after_configuration do
        
        # Look for the user's preferred engine
        unless markdown_engine.nil?
          
          # Map symbols to classes
          if markdown_engine.is_a? Symbol
            engine = markdown_engine.to_s
            engine = engine == "rdiscount" ? "RDiscount" : engine.camelize
            markdown_engine = markdown_engine_prefix.const_get("#{engine}Template")
          end
        
          # Tell tilt to use that engine
          ::Tilt.prefer(markdown_engine)
        end
      end
    end
    
    alias :included :registered
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
middleman-more-3.0.0.beta.2 lib/middleman-more/renderers/markdown.rb