diff --git a/middleman-core/lib/middleman-core/meta_pages.rb b/middleman-core/lib/middleman-core/meta_pages.rb index e0cf3c6f..6818328f 100644 --- a/middleman-core/lib/middleman-core/meta_pages.rb +++ b/middleman-core/lib/middleman-core/meta_pages.rb @@ -60,18 +60,28 @@ module Middleman # Inspect configuration def config(env) global_config = @middleman.inst.config.all_settings.map {|c| ConfigSetting.new(c) } - extension_config = Hash[@middleman.inst.extensions.map do |ext_name, extension| - opts = if extension.is_a?(::Middleman::Extension) - extension.options.all_settings.map {|c| ConfigSetting.new(c) } - else - nil - end - [ext_name, opts] - end] + extension_config = {} - template('config.html.erb', + @middleman.inst.extensions.each do |ext_name, extension| + if extension.is_a?(Hash) + # Multiple instance extension + if extension.size == 1 + extension_config[ext_name] = extension_options(extension.values.first) + else + extension.each do |inst, ext| + extension_config["#{ext_name} (#{inst})"] = extension_options(ext) + end + end + elsif extension.is_a?(::Middleman::Extension) + extension_config[ext_name] = extension_options(extension) + else + extension_config[ext_name] = nil + end + end + + template('config.html.erb', :global_config => global_config, - :extension_config => extension_config, + :extension_config => extension_config, :registered_extensions => Middleman::Extensions.registered.dup) end @@ -88,6 +98,10 @@ module Middleman def response(content) [ 200, {"Content-Type" => "text/html"}, Array(content) ] end + + def extension_options(extension) + extension.options.all_settings.map {|c| ConfigSetting.new(c) } + end end end end diff --git a/middleman-core/lib/middleman-core/meta_pages/templates/config.html.erb b/middleman-core/lib/middleman-core/meta_pages/templates/config.html.erb index ff6989fb..68595772 100644 --- a/middleman-core/lib/middleman-core/meta_pages/templates/config.html.erb +++ b/middleman-core/lib/middleman-core/meta_pages/templates/config.html.erb @@ -14,7 +14,7 @@

Middleman Configuration

This page shows the current configuration of your Middleman application.

- +

Core configuration | Extensions @@ -32,10 +32,10 @@ <% extension_config.each do |ext_name, configs| %>

  • <% registered_extensions.delete(ext_name) %> - - <%= ext_name.inspect %> - + :<%= ext_name %> + + <% if configs && !configs.empty? %>