middleman 2.0.0.rc8 → 2.0.0.rc91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. data/CHANGELOG +3 -1
  2. data/bin/mm-server +1 -1
  3. data/features/asset_host.feature +2 -0
  4. data/features/automatic_image_sizes.feature +2 -0
  5. data/features/builder.feature +4 -1
  6. data/features/cache_buster.feature +4 -0
  7. data/features/coffee-script.feature +6 -1
  8. data/features/dynamic_pages.feature +24 -0
  9. data/features/minify_css.feature +2 -0
  10. data/features/minify_javascript.feature +3 -0
  11. data/features/page_alias_and_layouts.feature +5 -0
  12. data/features/relative_assets.feature +33 -1
  13. data/features/step_definitions/asset_host_steps.rb +4 -6
  14. data/features/step_definitions/builder_steps.rb +5 -0
  15. data/features/step_definitions/middleman_steps.rb +11 -8
  16. data/features/step_definitions/page_layout_steps.rb +7 -11
  17. data/features/tiny_src.feature +2 -0
  18. data/fixtures/test-app/config.rb +10 -0
  19. data/fixtures/test-app/source/images/Child folder/regular_file(example).txt +1 -0
  20. data/fixtures/test-app/source/images/Read me (example).txt +1 -0
  21. data/fixtures/test-app/source/img/blank.gif +0 -0
  22. data/fixtures/test-app/source/javascripts/broken-coffee.js.coffee +3 -0
  23. data/fixtures/test-app/source/real.html +1 -0
  24. data/fixtures/test-app/source/real/index.html.erb +5 -0
  25. data/fixtures/test-app/source/relative_image.html.erb +1 -0
  26. data/fixtures/test-app/source/spaces in file.html.erb +1 -0
  27. data/lib/middleman/base.rb +9 -6
  28. data/lib/middleman/builder.rb +7 -4
  29. data/lib/middleman/core_extensions/compass.rb +45 -16
  30. data/lib/middleman/core_extensions/front_matter.rb +2 -1
  31. data/lib/middleman/core_extensions/routing.rb +21 -9
  32. data/lib/middleman/features/asset_host.rb +2 -2
  33. data/lib/middleman/features/blog.rb +8 -5
  34. data/lib/middleman/features/cache_buster.rb +8 -10
  35. data/lib/middleman/features/minify_css.rb +2 -2
  36. data/lib/middleman/guard.rb +8 -2
  37. data/lib/middleman/templates.rb +3 -6
  38. data/lib/middleman/templates/blog.rb +17 -0
  39. data/lib/middleman/templates/blog/config.ru +9 -0
  40. data/lib/middleman/templates/blog/config.tt +18 -0
  41. data/lib/middleman/templates/blog/source/2011/01/01/new-article.html.markdown +6 -0
  42. data/lib/middleman/templates/blog/source/archives/index.html.erb +10 -0
  43. data/lib/middleman/templates/blog/source/feed.xml.builder +23 -0
  44. data/lib/middleman/templates/blog/source/index.html.erb +9 -0
  45. data/lib/middleman/templates/blog/source/layout.erb +30 -0
  46. data/lib/middleman/templates/default.rb +6 -4
  47. data/lib/middleman/templates/default/source/index.html.erb +5 -0
  48. data/lib/middleman/templates/default/source/layout.erb +19 -0
  49. data/lib/middleman/templates/default/source/stylesheets/site.css.scss +36 -0
  50. data/lib/middleman/templates/html5.rb +6 -3
  51. data/lib/middleman/templates/html5/source/404.html +28 -18
  52. data/lib/middleman/templates/html5/source/apple-touch-icon-114x114-precomposed.png +0 -0
  53. data/lib/middleman/templates/html5/source/apple-touch-icon-57x57-precomposed.png +0 -0
  54. data/lib/middleman/templates/html5/source/apple-touch-icon-72x72-precomposed.png +0 -0
  55. data/lib/middleman/templates/html5/source/apple-touch-icon-precomposed.png +0 -0
  56. data/lib/middleman/templates/html5/source/apple-touch-icon.png +0 -0
  57. data/lib/middleman/templates/html5/source/crossdomain.xml +0 -0
  58. data/lib/middleman/templates/html5/source/css/handheld.css +0 -0
  59. data/lib/middleman/templates/html5/source/css/style.css +40 -36
  60. data/lib/middleman/templates/html5/source/favicon.ico +0 -0
  61. data/lib/middleman/templates/html5/source/humans.txt +0 -0
  62. data/lib/middleman/templates/html5/source/{images → img}/.gitignore +0 -0
  63. data/lib/middleman/templates/html5/source/index.html +26 -27
  64. data/lib/middleman/templates/html5/source/js/libs/dd_belatedpng.js +0 -0
  65. data/lib/middleman/templates/html5/source/js/libs/{jquery-1.5.0.js → jquery-1.5.1.js} +549 -409
  66. data/lib/middleman/templates/html5/source/js/libs/jquery-1.5.1.min.js +16 -0
  67. data/lib/middleman/templates/html5/source/js/libs/modernizr-1.7.min.js +2 -0
  68. data/lib/middleman/templates/html5/source/js/mylibs/.gitignore +0 -0
  69. data/lib/middleman/templates/html5/source/js/plugins.js +3 -1
  70. data/lib/middleman/templates/html5/source/js/script.js +0 -0
  71. data/lib/middleman/templates/html5/source/robots.txt +0 -0
  72. data/lib/middleman/templates/html5/source/test/index.html +31 -0
  73. data/lib/middleman/templates/html5/source/test/qunit/qunit.css +148 -0
  74. data/lib/middleman/templates/html5/source/test/qunit/qunit.js +1265 -0
  75. data/lib/middleman/templates/html5/source/test/tests.js +27 -0
  76. data/lib/middleman/templates/{default → shared}/config.ru +0 -0
  77. data/lib/middleman/templates/{default → shared}/config.tt +36 -8
  78. data/lib/middleman/version.rb +1 -1
  79. data/middleman.gemspec +6 -6
  80. metadata +188 -35
  81. data/.document +0 -5
  82. data/.gitmodules +0 -0
  83. data/lib/middleman/templates/compass.rb +0 -18
  84. data/lib/middleman/templates/default/source/index.html.haml +0 -4
  85. data/lib/middleman/templates/default/source/layout.haml +0 -21
  86. data/lib/middleman/templates/default/source/stylesheets/site.css.sass +0 -34
  87. data/lib/middleman/templates/html5/config.ru +0 -4
  88. data/lib/middleman/templates/html5/config.tt +0 -53
  89. data/lib/middleman/templates/html5/source/js/libs/jquery-1.5.0.min.js +0 -16
  90. data/lib/middleman/templates/html5/source/js/libs/modernizr-1.6.min.js +0 -30
  91. data/lib/middleman/templates/xhtml.rb +0 -16
  92. data/lib/middleman/templates/xhtml/config.ru +0 -4
  93. data/lib/middleman/templates/xhtml/config.tt +0 -68
  94. data/lib/middleman/templates/xhtml/source/index.html.haml +0 -4
  95. data/lib/middleman/templates/xhtml/source/layout.haml +0 -13
  96. data/lib/middleman/templates/xhtml/source/stylesheets/site.css.sass +0 -34
data/CHANGELOG CHANGED
@@ -7,4 +7,6 @@
7
7
  - Refactored Dynamically Reloadable Core
8
8
  - Combine views/ and public/ into a single source/ folder.
9
9
  - Support YAML front-matter
10
- - Blog-aware Feature
10
+ - Added callback to run code after Compass is configured
11
+ - Added support for a compass.config file which is passed directly to Compass
12
+ - Blog-aware Feature (and project template)
data/bin/mm-server CHANGED
@@ -15,7 +15,7 @@ module Middleman
15
15
 
16
16
  class_option :port, :aliases => "-p", :default => "4567"
17
17
  class_option :"livereload-port", :default => "35729"
18
- class_option :"livereload", :default => true, :type => :boolean
18
+ class_option :"livereload", :default => false, :type => :boolean
19
19
 
20
20
  def start_guard
21
21
  if !File.exists?("config.rb")
@@ -3,10 +3,12 @@ Feature: Alternate between multiple asset hosts
3
3
 
4
4
  Scenario: Rendering css with the feature enabled
5
5
  Given I am using an asset host
6
+ And the Server is running
6
7
  When I go to "/stylesheets/asset_host.css"
7
8
  Then I should see "http://assets"
8
9
 
9
10
  Scenario: Rendering html with the feature enabled
10
11
  Given I am using an asset host
12
+ And the Server is running
11
13
  When I go to "/asset_host.html"
12
14
  Then I should see "http://assets"
@@ -3,12 +3,14 @@ Feature: Automatically detect and insert image dimensions into tags
3
3
 
4
4
  Scenario: Rendering an image with the feature disabled
5
5
  Given "automatic_image_sizes" feature is "disabled"
6
+ And the Server is running
6
7
  When I go to "/auto-image-sizes.html"
7
8
  Then I should not see "width="
8
9
  And I should not see "height="
9
10
 
10
11
  Scenario: Rendering an image with the feature enabled
11
12
  Given "automatic_image_sizes" feature is "enabled"
13
+ And the Server is running
12
14
  When I go to "/auto-image-sizes.html"
13
15
  Then I should see "width="
14
16
  And I should see "height="
@@ -12,9 +12,12 @@ Feature: Builder
12
12
  Then "stylesheets/site_scss.css" should exist and include "html, body, div, span"
13
13
  Then "stylesheets/static.css" should exist and include "body"
14
14
  Then "_partial.html" should not exist
15
+ Then "spaces in file.html" should exist and include "spaces"
16
+ Then "images/Read me (example).txt" should exist
17
+ Then "images/Child folder/regular_file(example).txt" should exist
15
18
  And cleanup built test app
16
19
 
17
20
  Scenario: Force relative assets
18
21
  Given a built test app with flags "--relative"
19
- Then "stylesheets/site.css" should exist and include "../"
22
+ Then "stylesheets/relative_assets.css" should exist and include "../"
20
23
  And cleanup built test app
@@ -3,20 +3,24 @@ Feature: Generate mtime-based query string for busting browser caches
3
3
 
4
4
  Scenario: Rendering css with the feature disabled
5
5
  Given "cache_buster" feature is "disabled"
6
+ And the Server is running
6
7
  When I go to "/stylesheets/relative_assets.css"
7
8
  Then I should not see "?"
8
9
 
9
10
  Scenario: Rendering html with the feature disabled
10
11
  Given "cache_buster" feature is "disabled"
12
+ And the Server is running
11
13
  When I go to "/cache-buster.html"
12
14
  Then I should not see "?"
13
15
 
14
16
  Scenario: Rendering css with the feature enabled
15
17
  Given "cache_buster" feature is "enabled"
18
+ And the Server is running
16
19
  When I go to "/stylesheets/relative_assets.css"
17
20
  Then I should see "?"
18
21
 
19
22
  Scenario: Rendering html with the feature enabled
20
23
  Given "cache_buster" feature is "enabled"
24
+ And the Server is running
21
25
  When I go to "/cache-buster.html"
22
26
  Then I should not see "?"
@@ -9,4 +9,9 @@ Feature: Support coffee-script
9
9
  Scenario: Rendering coffee-script with :coffeescript haml-filter
10
10
  Given the Server is running
11
11
  When I go to "/inline-coffeescript.html"
12
- Then I should see "Array.prototype.slice"
12
+ Then I should see "Array.prototype.slice"
13
+
14
+ Scenario: Rendering broken coffee
15
+ Given the Server is running
16
+ When I go to "/javascripts/broken-coffee.js"
17
+ Then I should see "Reserved word"
@@ -0,0 +1,24 @@
1
+ Feature: Dynamic Pages
2
+ In order to use a single view to generate multiple output files
3
+
4
+ Scenario: Checking built folder for content
5
+ Given a built test app
6
+ Then "fake.html" should exist and include "I am real"
7
+ Then "fake/one.html" should exist and include "I am real: one"
8
+ Then "fake/two.html" should exist and include "I am real: two"
9
+ And cleanup built test app
10
+
11
+ Scenario: Preview basic proxy
12
+ Given the Server is running
13
+ When I go to "/fake.html"
14
+ Then I should see "I am real"
15
+
16
+ Scenario: Preview proxy with variable one
17
+ Given the Server is running
18
+ When I go to "/fake/one.html"
19
+ Then I should see "I am real: one"
20
+
21
+ Scenario: Preview proxy with variable two
22
+ Given the Server is running
23
+ When I go to "/fake/two.html"
24
+ Then I should see "I am real: two"
@@ -8,6 +8,7 @@ Feature: Minify CSS
8
8
 
9
9
  Scenario: Rendering external css with the feature disabled
10
10
  Given "minify_css" feature is "disabled"
11
+ And the Server is running
11
12
  When I go to "/stylesheets/site.css"
12
13
  Then I should see "55" lines
13
14
 
@@ -18,5 +19,6 @@ Feature: Minify CSS
18
19
 
19
20
  Scenario: Rendering external css with the feature enabled
20
21
  Given "minify_css" feature is "enabled"
22
+ And the Server is running
21
23
  When I go to "/stylesheets/site.css"
22
24
  Then I should see "1" lines
@@ -6,15 +6,18 @@ Feature: Minify Javascript
6
6
 
7
7
  Scenario: Rendering inline js with the feature disabled
8
8
  Given "minify_javascript" feature is "disabled"
9
+ And the Server is running
9
10
  When I go to "/inline-js.html"
10
11
  Then I should see "10" lines
11
12
 
12
13
  Scenario: Rendering inline js with the feature enabled
13
14
  Given "minify_javascript" feature is "enabled"
15
+ And the Server is running
14
16
  When I go to "/inline-js.html"
15
17
  Then I should see "5" lines
16
18
 
17
19
  Scenario: Rendering inline js (coffeescript) with the feature enabled
18
20
  Given "minify_javascript" feature is "enabled"
21
+ And the Server is running
19
22
  When I go to "/inline-coffeescript.html"
20
23
  Then I should see "5" lines
@@ -3,16 +3,19 @@ Feature: Custom layouts
3
3
 
4
4
  Scenario: Using custom :layout attribute
5
5
  Given page "/custom-layout.html" has layout "custom"
6
+ And the Server is running
6
7
  When I go to "/custom-layout.html"
7
8
  Then I should see "Custom Layout"
8
9
 
9
10
  Scenario: Using with_layout block
10
11
  Given "/custom-layout.html" with_layout block has layout "custom"
12
+ And the Server is running
11
13
  When I go to "/custom-layout.html"
12
14
  Then I should see "Custom Layout"
13
15
 
14
16
  Scenario: Using custom :layout attribute with folders
15
17
  Given page "/custom-layout-dir/" has layout "custom"
18
+ And the Server is running
16
19
  When I go to "/custom-layout-dir"
17
20
  Then I should see "Custom Layout"
18
21
  When I go to "/custom-layout-dir/"
@@ -22,6 +25,7 @@ Feature: Custom layouts
22
25
 
23
26
  Scenario: Using custom :layout attribute with folders
24
27
  Given page "/custom-layout-dir" has layout "custom"
28
+ And the Server is running
25
29
  When I go to "/custom-layout-dir"
26
30
  Then I should see "Custom Layout"
27
31
  When I go to "/custom-layout-dir/"
@@ -31,6 +35,7 @@ Feature: Custom layouts
31
35
 
32
36
  Scenario: Using custom :layout attribute with folders
33
37
  Given page "/custom-layout-dir/index.html" has layout "custom"
38
+ And the Server is running
34
39
  When I go to "/custom-layout-dir"
35
40
  Then I should see "Custom Layout"
36
41
  When I go to "/custom-layout-dir/"
@@ -3,10 +3,42 @@ Feature: Relative Assets
3
3
 
4
4
  Scenario: Rendering css with the feature disabled
5
5
  Given "relative_assets" feature is "disabled"
6
+ And the Server is running
6
7
  When I go to "/stylesheets/relative_assets.css"
7
8
  Then I should not see "url('../"
9
+ And I should see "/images/blank.gif"
10
+
11
+ Scenario: Rendering html with the feature disabled
12
+ Given "relative_assets" feature is "disabled"
13
+ And the Server is running
14
+ When I go to "/relative_image.html"
15
+ Then I should see "/images/blank.gif"
8
16
 
9
17
  Scenario: Rendering css with the feature enabled
10
18
  Given "relative_assets" feature is "enabled"
19
+ And the Server is running
11
20
  When I go to "/stylesheets/relative_assets.css"
12
- Then I should see "url('../"
21
+ Then I should see "url('../images/blank.gif"
22
+
23
+ Scenario: Rendering html with the feature disabled
24
+ Given "relative_assets" feature is "enabled"
25
+ And the Server is running
26
+ When I go to "/relative_image.html"
27
+ Then I should not see "/images/blank.gif"
28
+ And I should see "images/blank.gif"
29
+
30
+ Scenario: Rendering html with a custom images_dir
31
+ Given "relative_assets" feature is "enabled"
32
+ And "images_dir" is set to "img"
33
+ And the Server is running
34
+ When I go to "/stylesheets/relative_assets.css"
35
+ Then I should see "url('../img/blank.gif"
36
+
37
+ Scenario: Rendering css with a custom images_dir
38
+ Given "relative_assets" feature is "enabled"
39
+ And "images_dir" is set to "img"
40
+ And the Server is running
41
+ When I go to "/relative_image.html"
42
+ Then I should not see "/images/blank.gif"
43
+ Then I should not see "/img/blank.gif"
44
+ And I should see "img/blank.gif"
@@ -1,9 +1,7 @@
1
1
  Given /^I am using an asset host$/ do
2
- sandbox_server = Middleman.server do
3
- activate :asset_host
4
- set :asset_host do |asset|
5
- "http://assets%d.example.com" % (asset.hash % 4)
6
- end
2
+ @server ||= Middleman.server
3
+ @server.activate :asset_host
4
+ @server.set :asset_host do |asset|
5
+ "http://assets%d.example.com" % (asset.hash % 4)
7
6
  end
8
- @browser = Rack::Test::Session.new(Rack::MockSession.new(sandbox_server.new))
9
7
  end
@@ -17,6 +17,11 @@ Given /^cleanup built test app$/ do
17
17
  FileUtils.rm_rf(target)
18
18
  end
19
19
 
20
+ Then /^"([^"]*)" should exist$/ do |target_file,|
21
+ target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build", target_file)
22
+ File.exists?(target).should be_true
23
+ end
24
+
20
25
  Then /^"([^"]*)" should exist and include "([^"]*)"$/ do |target_file, expected|
21
26
  target = File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app", "build", target_file)
22
27
  File.exists?(target).should be_true
@@ -1,11 +1,14 @@
1
1
  Given /^"([^\"]*)" feature is "([^\"]*)"$/ do |feature, state|
2
- sandbox_server = Middleman.server do
3
- if state == "enabled"
4
- activate(feature.to_sym)
5
- end
6
- set :environment, @current_env || :development
2
+ @server ||= Middleman.server
3
+ if state == "enabled"
4
+ @server.activate(feature.to_sym)
7
5
  end
8
- @browser = Rack::Test::Session.new(Rack::MockSession.new(sandbox_server.new))
6
+ @server.set :environment, @current_env || :development
7
+ end
8
+
9
+ Given /^"([^\"]*)" is set to "([^\"]*)"$/ do |variable, value|
10
+ @server ||= Middleman.server
11
+ @server.set variable.to_sym, value
9
12
  end
10
13
 
11
14
  Given /^current environment is "([^\"]*)"$/ do |env|
@@ -13,8 +16,8 @@ Given /^current environment is "([^\"]*)"$/ do |env|
13
16
  end
14
17
 
15
18
  Given /^the Server is running$/ do
16
- sandbox_server = Middleman.server
17
- @browser = Rack::Test::Session.new(Rack::MockSession.new(sandbox_server.new))
19
+ @server ||= Middleman.server
20
+ @browser = Rack::Test::Session.new(Rack::MockSession.new(@server.new))
18
21
  end
19
22
 
20
23
  When /^I go to "([^\"]*)"$/ do |url|
@@ -1,17 +1,13 @@
1
1
  Given /^page "([^\"]*)" has layout "([^\"]*)"$/ do |url, layout|
2
- sandbox_server = Middleman.server do
3
- set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
4
- page(url, :layout => layout.to_sym)
5
- end
6
- @browser = Rack::Test::Session.new(Rack::MockSession.new(sandbox_server.new))
2
+ @server ||= Middleman.server
3
+ @server.set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
4
+ @server.page(url, :layout => layout.to_sym)
7
5
  end
8
6
 
9
7
  Given /^"([^\"]*)" with_layout block has layout "([^\"]*)"$/ do |url, layout|
10
- sandbox_server = Middleman.server do
11
- set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
12
- with_layout(layout.to_sym) do
13
- page(url)
14
- end
8
+ @server ||= Middleman.server
9
+ @server.set :root, File.join(File.dirname(File.dirname(File.dirname(__FILE__))), "fixtures", "test-app")
10
+ @server.with_layout(layout.to_sym) do
11
+ page(url)
15
12
  end
16
- @browser = Rack::Test::Session.new(Rack::MockSession.new(sandbox_server.new))
17
13
  end
@@ -4,10 +4,12 @@ Feature: Tiny Src
4
4
 
5
5
  Scenario: Rendering html with the feature disabled
6
6
  Given "tiny_src" feature is "disabled"
7
+ And the Server is running
7
8
  When I go to "/tiny_src.html"
8
9
  Then I should see "http://test.com/image.jpg"
9
10
 
10
11
  Scenario: Rendering html with the feature enabled
11
12
  Given "tiny_src" feature is "enabled"
13
+ And the Server is running
12
14
  When I go to "/tiny_src.html"
13
15
  Then I should see "http://i.tinysrc.mobi/http://test.com/image.jpg"
@@ -1,7 +1,17 @@
1
+ page "/fake.html", :proxy => "/real.html", :layout => false
2
+
3
+ %w(one two).each do |num|
4
+ page "/fake/#{num}.html", :proxy => "/real/index.html" do
5
+ @num = num
6
+ end
7
+ end
8
+
1
9
  with_layout false do
10
+ page "/relative_image.html"
2
11
  page "/inline-css.html"
3
12
  page "/inline-js.html"
4
13
  page "/inline-coffeescript.html"
14
+ page "/spaces in file.html"
5
15
  page "/slim.html"
6
16
  page "/data.html"
7
17
  page "/page-classes.html"
@@ -0,0 +1,3 @@
1
+ function test() {
2
+ hello
3
+ }
@@ -0,0 +1 @@
1
+ I am real
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: false
3
+ ---
4
+
5
+ I am real: <%= @num %>
@@ -0,0 +1 @@
1
+ <%= image_tag "blank.gif" %>
@@ -0,0 +1 @@
1
+ <%= "spaces" %>
@@ -83,21 +83,23 @@ module Middleman::Base
83
83
  settings.set :views, File.join(settings.root, settings.views)
84
84
  end
85
85
 
86
- result = resolve_template(request.path_info, :raise_exceptions => false)
86
+ request_path = request.path_info.gsub("%20", " ")
87
+ result = resolve_template(request_path, :raise_exceptions => false)
88
+
87
89
  if result
88
90
  extensionless_path, template_engine = result
89
91
 
90
92
  # Return static files
91
93
  if !::Tilt.mappings.has_key?(template_engine.to_s)
92
- content_type mime_type(File.extname(request.path_info)), :charset => 'utf-8'
94
+ content_type mime_type(File.extname(request_path)), :charset => 'utf-8'
93
95
  status 200
94
- send_file File.join(settings.views, request.path_info)
96
+ send_file File.join(settings.views, request_path)
95
97
  false
96
98
  else
97
99
  true
98
100
  end
99
101
  else
100
- $stderr.puts "File not found: #{request.path_info}"
102
+ $stderr.puts "File not found: #{request_path}"
101
103
  status 404
102
104
  false
103
105
  end
@@ -156,11 +158,12 @@ module Middleman::Base
156
158
 
157
159
  render_options = { :layout => layout }
158
160
  render_options[:layout_engine] = options[:layout_engine] if options.has_key? :layout_engine
159
- result = render(request.path_info, render_options)
161
+ request_path = request.path_info.gsub("%20", " ")
162
+ result = render(request_path, render_options)
160
163
  settings.set :layout, old_layout
161
164
 
162
165
  if result
163
- content_type mime_type(File.extname(request.path_info)), :charset => 'utf-8'
166
+ content_type mime_type(File.extname(request_path)), :charset => 'utf-8'
164
167
  status 200
165
168
  body result
166
169
  else
@@ -10,15 +10,15 @@ module Middleman
10
10
  config = args.last.is_a?(Hash) ? args.pop : {}
11
11
  destination = args.first || source
12
12
 
13
- source = File.expand_path(find_in_source_paths(source.to_s))
13
+ # source = File.expand_path(find_in_source_paths(source.to_s))
14
14
  context = instance_eval('binding')
15
15
 
16
16
  @@rack_test ||= ::Rack::Test::Session.new(::Rack::MockSession.new(SHARED_SERVER))
17
-
17
+
18
18
  create_file destination, nil, config do
19
19
  # The default render just requests the page over Rack and writes the response
20
20
  request_path = destination.sub(/^#{SHARED_SERVER.build_dir}/, "")
21
- @@rack_test.get(request_path)
21
+ @@rack_test.get(request_path.gsub(/\s/, "%20"))
22
22
  @@rack_test.last_response.body
23
23
  end
24
24
  end
@@ -40,7 +40,6 @@ module Middleman
40
40
  end
41
41
  end
42
42
 
43
-
44
43
  def source_paths
45
44
  @source_paths ||= [
46
45
  SHARED_SERVER.root
@@ -49,6 +48,10 @@ module Middleman
49
48
 
50
49
  def build_all_files
51
50
  action Directory.new(self, SHARED_SERVER.views, SHARED_SERVER.build_dir, { :force => true })
51
+
52
+ SHARED_SERVER.proxied_paths.each do |url, proxy|
53
+ tilt_template(url.gsub(/^\//, "#{SHARED_SERVER.build_dir}/"), { :force => true })
54
+ end
52
55
  end
53
56
 
54
57
  @@hooks = {}