diff --git a/features/custom_layout_engines.feature b/features/custom_layout_engines.feature
new file mode 100644
index 00000000..5963efd1
--- /dev/null
+++ b/features/custom_layout_engines.feature
@@ -0,0 +1,10 @@
+Feature: Custom Layout Engine
+
+ Scenario: Checking built folder for content
+ Given a built app at "custom-layout-app"
+ Then "index.html" should exist at "custom-layout-app" and include "Comment in layout"
+
+ Scenario: Checking server for content
+ Given the Server is running at "test-app"
+ When I go to "/index.html"
+ Then I should see "Comment in layout"
\ No newline at end of file
diff --git a/fixtures/custom-layout-app/config.rb b/fixtures/custom-layout-app/config.rb
new file mode 100644
index 00000000..93b5f327
--- /dev/null
+++ b/fixtures/custom-layout-app/config.rb
@@ -0,0 +1 @@
+set :erb, :layout_engine => :haml
\ No newline at end of file
diff --git a/fixtures/custom-layout-app/source/index.html.erb b/fixtures/custom-layout-app/source/index.html.erb
new file mode 100755
index 00000000..f47aba51
--- /dev/null
+++ b/fixtures/custom-layout-app/source/index.html.erb
@@ -0,0 +1 @@
+
Welcome
\ No newline at end of file
diff --git a/fixtures/custom-layout-app/source/layout.haml b/fixtures/custom-layout-app/source/layout.haml
new file mode 100644
index 00000000..e5a7a094
--- /dev/null
+++ b/fixtures/custom-layout-app/source/layout.haml
@@ -0,0 +1,6 @@
+%html
+ %head
+ %title My Sample Site
+ / Comment in layout
+ %body
+ = yield
\ No newline at end of file
diff --git a/lib/middleman/base.rb b/lib/middleman/base.rb
index 09056ef8..dc467ec3 100644
--- a/lib/middleman/base.rb
+++ b/lib/middleman/base.rb
@@ -316,11 +316,11 @@ public
end
def read_raw_template(path)
- if !raw_templates_cache.has_key?(path)
- raw_templates_cache[path] = File.read(path)
+ if raw_templates_cache.has_key?(path)
+ raw_templates_cache[path]
+ else
+ File.read(path)
end
-
- raw_templates_cache[path]
end
def map(map, &block)
diff --git a/lib/middleman/core_extensions/front_matter.rb b/lib/middleman/core_extensions/front_matter.rb
index 184214d6..e86af699 100644
--- a/lib/middleman/core_extensions/front_matter.rb
+++ b/lib/middleman/core_extensions/front_matter.rb
@@ -69,14 +69,14 @@ module Middleman::CoreExtensions::FrontMatter
file = File.expand_path(file, @app.root)
content = File.read(file)
- file = file.sub(@app.source_dir, "")
# @app.logger.debug :frontmatter_update, Time.now, file if @app.logging?
result = parse_front_matter(content)
if result
+ file = file.sub(@app.source_dir, "")
@local_data[file] = result
- path = @app.extensionless_path(file)
+ path = File.join(@app.source_dir, file)
@app.raw_templates_cache[path] = result[1]
end
end