def activate(ext_name, options_hash = ::Middleman::EMPTY_HASH, &block)
      begin
        extension = ::Middleman::Extensions.load(ext_name)
      rescue LoadError => e
        logger.debug "== Failed Activation `#{ext_name}` : #{e.message}"
        return
      end

      logger.debug "== Activating: #{ext_name}"

      if extension.supports_multiple_instances?
        @activated[ext_name] ||= {}
        key = "instance_#{@activated[ext_name].keys.length}"
        @activated[ext_name][key] = extension.new(@app, options_hash, &block)
      elsif active?(ext_name)
        raise "#{ext_name} has already been activated and cannot be re-activated."
      else
        @activated[ext_name] = extension.new(@app, options_hash, &block)
      end
    end
def activate(ext_name, options_hash = ::Middleman::EMPTY_HASH, &block)
      begin
        extension = ::Middleman::Extensions.load(ext_name)
      rescue LoadError => e
        logger.debug "== Failed Activation `#{ext_name}` : #{e.message}"
        return
      end

      logger.debug "== Activating: #{ext_name}"

      if extension.supports_multiple_instances?
        @activated[ext_name] ||= {}
        key = "instance_#{@activated[ext_name].keys.length}"
        @activated[ext_name][key] = extension.new(@app, options_hash, &block)
      elsif active?(ext_name)
        raise "#{ext_name} has already been activated and cannot be re-activated."
      else
        @activated[ext_name] = extension.new(@app, options_hash, &block)
      end
    end
Activate an extension, optionally passing in options.
 This method is typically used from a project's `config.rb`.

 @example Activate an extension with no options
     activate :lorem

 @example Activate an extension, with options
     activate :minify_javascript, inline: true

 @example Use a block to configure extension options
     activate :minify_javascript do |opts|
       opts.ignore += ['*-test.js']
     end

 @param [Symbol] ext_name The name of thed extension to activate
 @param [Hash] options Options to pass to the extension
 @yield [Middleman::Configuration::ConfigurationManager] Extension options that can be modified before the extension is initialized.
 @return [void]