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