diff --git a/CHANGELOG.md b/CHANGELOG.md index f3884c16..0aa09762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ master === +* Asciidoc information now available with the `asciidoc` local, which is a normal hash. * Remove `page` template local. Use `current_resource` instead. * Dropped support for `page` & `proxy` blocks. * Dropped support for instance variables inside templates. diff --git a/middleman-core/fixtures/asciidoc-app/source/layouts/default.erb b/middleman-core/fixtures/asciidoc-app/source/layouts/default.erb index ec05c79c..c426106b 100644 --- a/middleman-core/fixtures/asciidoc-app/source/layouts/default.erb +++ b/middleman-core/fixtures/asciidoc-app/source/layouts/default.erb @@ -1,7 +1,7 @@ -<%= data.page.title || 'Fallback' %> +<%= current_resource.data.title || asciidoc[:title] || 'Fallback' %> <%= yield %> diff --git a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb index 155fad6a..cffd234f 100644 --- a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb +++ b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb @@ -41,11 +41,19 @@ module Middleman::CoreExtensions fmdata = data(path).first data = {} + [:layout, :layout_engine].each do |opt| data[opt] = fmdata[opt] unless fmdata[opt].nil? end + + if fmdata[:renderer_options] + data[:renderer_options] = {} + fmdata[:renderer_options].each do |k, v| + data[:renderer_options][k.to_sym] = v + end + end - { :options => data, :page => ::Middleman::Util.recursively_enhance(fmdata).freeze } + { :options => data } end end diff --git a/middleman-core/lib/middleman-core/renderers/asciidoc.rb b/middleman-core/lib/middleman-core/renderers/asciidoc.rb index 6e89df16..c58f7150 100644 --- a/middleman-core/lib/middleman-core/renderers/asciidoc.rb +++ b/middleman-core/lib/middleman-core/renderers/asciidoc.rb @@ -47,7 +47,7 @@ module Middleman # TODO grab all the author information page[:author] = (doc.attr 'author') unless (doc.attr 'author').nil? - {:options => opts, :page => ::Middleman::Util.recursively_enhance(page)} + { :options => opts, :locals => { :asciidoc => page } } end end end diff --git a/middleman-core/lib/middleman-core/sitemap/resource.rb b/middleman-core/lib/middleman-core/sitemap/resource.rb index fd87a0d6..47d333c9 100644 --- a/middleman-core/lib/middleman-core/sitemap/resource.rb +++ b/middleman-core/lib/middleman-core/sitemap/resource.rb @@ -48,7 +48,7 @@ module Middleman @source_file = source_file @destination_path = @path - @local_metadata = { :options => {}, :locals => {}, :page => {}} + @local_metadata = { :options => {}, :locals => {} } end # Whether this resource has a template file @@ -104,22 +104,7 @@ module Middleman instrument 'render.resource', :path => relative_source do md = metadata.dup opts = md[:options].deep_merge(opts) - - # Pass "renderer_options" hash from frontmatter along to renderer - if md[:page]['renderer_options'] - opts[:renderer_options] = {} - md[:page]['renderer_options'].each do |k, v| - opts[:renderer_options][k.to_sym] = v - end - end - locs = md[:locals].deep_merge(locs) - - # Forward remaining data to helpers - if md.has_key?(:page) - app.data.store('page', md[:page]) - end - locs[:current_path] ||= self.destination_path # Certain output file types don't use layouts diff --git a/middleman-core/lib/middleman-core/sitemap/store.rb b/middleman-core/lib/middleman-core/sitemap/store.rb index 069c1e73..0dc16267 100644 --- a/middleman-core/lib/middleman-core/sitemap/store.rb +++ b/middleman-core/lib/middleman-core/sitemap/store.rb @@ -137,7 +137,7 @@ module Middleman # @param [String] source_file # @return [Hash] def metadata_for_file(source_file) - blank_metadata = { :options => {}, :locals => {}, :page => {} } + blank_metadata = { :options => {}, :locals => {} } provides_metadata.inject(blank_metadata) do |result, (callback, matcher)| next result if matcher && !source_file.match(matcher) @@ -165,7 +165,7 @@ module Middleman def metadata_for_path(request_path) return @_cached_metadata[request_path] if @_cached_metadata[request_path] - blank_metadata = { :options => {}, :locals => {}, :page => {} } + blank_metadata = { :options => {}, :locals => {} } @_cached_metadata[request_path] = provides_metadata_for_path.inject(blank_metadata) do |result, (callback, matcher)| case matcher