Sha256: 0447d95a4ba56401f86f0fb6df5495b2ff484d4e8a15fef32a2d03a2e7b1191c

Contents?: true

Size: 2 KB

Versions: 13

Compression:

Stored size: 2 KB

Contents

module Middleman
  module Renderers

    # Markdown renderer
    module Markdown

      # Setup extension
      class << self

        # Once registered
        def registered(app)
          # Set our preference for a markdown engine
          app.config.define_setting :markdown_engine, :kramdown, 'Preferred markdown engine'
          app.config.define_setting :markdown_engine_prefix, ::Tilt, 'The parent module for markdown template engines'

          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

            begin
              # Look for the user's preferred engine
              if config[:markdown_engine] == :redcarpet
                require "middleman-core/renderers/redcarpet"
                ::Tilt.prefer(::Middleman::Renderers::RedcarpetTemplate)
                MiddlemanRedcarpetHTML.middleman_app = self
              elsif !config[:markdown_engine].nil?
                # Map symbols to classes
                markdown_engine_klass = if config[:markdown_engine].is_a? Symbol
                  engine = config[:markdown_engine].to_s
                  engine = engine == "rdiscount" ? "RDiscount" : engine.camelize
                  config[:markdown_engine_prefix].const_get("#{engine}Template")
                else
                  config[:markdown_engine_prefix]
                end

                # Tell tilt to use that engine
                ::Tilt.prefer(markdown_engine_klass)
              end
            rescue LoadError
              logger.warn "Requested Markdown engine (#{config[:markdown_engine]}) not found. Maybe the gem needs to be installed and required?"
            end
          end
        end

        alias :included :registered
      end
    end

  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
middleman-core-3.1.5 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.4 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.3 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.2 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.1 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.rc.4 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.rc.3 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.rc.2 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.rc.1 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.beta.3 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.beta.2 lib/middleman-core/renderers/markdown.rb
middleman-core-3.1.0.beta.1 lib/middleman-core/renderers/markdown.rb