middleman 2.0.0.rc3 → 2.0.0.rc4
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.
- data/CHANGELOG +3 -4
- data/Rakefile +2 -14
- data/bin/mm-build +1 -1
- data/bin/mm-server +5 -3
- data/features/{w_asset_host.feature → asset_host.feature} +0 -0
- data/features/{x_automatic_image_sizes.feature → automatic_image_sizes.feature} +0 -0
- data/features/{y_cache_buster.feature → cache_buster.feature} +0 -0
- data/features/minify_css.feature +8 -8
- data/features/{z_relative_assets.feature → relative_assets.feature} +0 -0
- data/features/step_definitions/asset_host_steps.rb +6 -4
- data/features/step_definitions/middleman_steps.rb +8 -5
- data/features/step_definitions/page_layout_steps.rb +11 -7
- data/features/support/env.rb +3 -52
- data/fixtures/test-app/source/{front-matter.html.slim → front-matter.html.erb} +1 -1
- data/fixtures/test-app/source/stylesheets/auto-css.css +3 -0
- data/fixtures/test-app/source/stylesheets/auto-css/auto-css.css +3 -0
- data/fixtures/test-app/source/stylesheets/auto-css/sub/auto-css.css +3 -0
- data/lib/middleman.rb +12 -5
- data/lib/middleman/base.rb +156 -0
- data/lib/middleman/builder.rb +13 -12
- data/lib/middleman/config.ru +1 -1
- data/lib/middleman/core_extensions/compass.rb +11 -9
- data/lib/middleman/core_extensions/features.rb +17 -11
- data/lib/middleman/core_extensions/front_matter.rb +26 -20
- data/lib/middleman/core_extensions/rack_map.rb +2 -1
- data/lib/middleman/core_extensions/sprockets.rb +5 -3
- data/lib/middleman/features/blog.rb +2 -2
- data/lib/middleman/renderers/sass.rb +22 -20
- data/lib/middleman/templates/default/config.ru +1 -1
- data/lib/middleman/templates/html5/config.ru +1 -1
- data/lib/middleman/templates/xhtml/config.ru +1 -1
- data/lib/middleman/version.rb +1 -1
- data/middleman.gemspec +2 -1
- metadata +42 -32
- data/lib/middleman/features/live_reload.rb +0 -26
- data/lib/middleman/server.rb +0 -142
@@ -1,26 +0,0 @@
|
|
1
|
-
module Middleman::Features::LiveReload
|
2
|
-
class << self
|
3
|
-
def registered(app)
|
4
|
-
return unless Middleman::Server.development?
|
5
|
-
|
6
|
-
begin
|
7
|
-
require 'livereload'
|
8
|
-
rescue LoadError
|
9
|
-
puts "Livereload not available. Install it with: gem install livereload"
|
10
|
-
end
|
11
|
-
|
12
|
-
new_config = ::LiveReload::Config.new do |config|
|
13
|
-
::Tilt.mappings.each do |key, v|
|
14
|
-
config.exts << key
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
pid = fork {
|
19
|
-
require 'livereload'
|
20
|
-
::LiveReload.run [Middleman::Server.views], new_config
|
21
|
-
}
|
22
|
-
|
23
|
-
end
|
24
|
-
alias :included :registered
|
25
|
-
end
|
26
|
-
end
|
data/lib/middleman/server.rb
DELETED
@@ -1,142 +0,0 @@
|
|
1
|
-
# We're riding on Sinatra, so let's include it.
|
2
|
-
require "sinatra/base"
|
3
|
-
|
4
|
-
module Middleman
|
5
|
-
class Server < Sinatra::Base
|
6
|
-
class << self
|
7
|
-
# Override Sinatra's set to accept a block
|
8
|
-
# Specifically for the asset_host feature
|
9
|
-
def set(option, value=self, &block)
|
10
|
-
if block_given?
|
11
|
-
value = Proc.new { block }
|
12
|
-
end
|
13
|
-
|
14
|
-
super(option, value, &nil)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Convenience method to check if we're in build mode
|
18
|
-
def build?; environment == :build; end
|
19
|
-
end
|
20
|
-
|
21
|
-
# Basic Sinatra config
|
22
|
-
set :app_file, __FILE__
|
23
|
-
set :root, ENV["MM_DIR"] || Dir.pwd
|
24
|
-
set :sessions, false
|
25
|
-
set :logging, false
|
26
|
-
set :environment, (ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development
|
27
|
-
|
28
|
-
# Middleman-specific options
|
29
|
-
set :index_file, "index.html" # What file responds to folder requests
|
30
|
-
# Such as the homepage (/) or subfolders (/about/)
|
31
|
-
|
32
|
-
# These directories are passed directly to Compass
|
33
|
-
set :js_dir, "javascripts" # Where to look for javascript files
|
34
|
-
set :css_dir, "stylesheets" # Where to look for CSS files
|
35
|
-
set :images_dir, "images" # Where to look for images
|
36
|
-
set :fonts_dir, "fonts" # Where to look for fonts
|
37
|
-
|
38
|
-
set :build_dir, "build" # Which folder are builds output to
|
39
|
-
set :http_prefix, nil # During build, add a prefix for absolute paths
|
40
|
-
|
41
|
-
# Pass all request to Middleman, even "static" files
|
42
|
-
set :static, false
|
43
|
-
|
44
|
-
set :views, "source"
|
45
|
-
|
46
|
-
# Add Rack::Builder.map to Sinatra
|
47
|
-
register Middleman::CoreExtensions::RackMap
|
48
|
-
|
49
|
-
# Activate custom features
|
50
|
-
register Middleman::CoreExtensions::Features
|
51
|
-
|
52
|
-
# Setup custom rendering
|
53
|
-
register Middleman::CoreExtensions::Rendering
|
54
|
-
|
55
|
-
# Compass framework
|
56
|
-
register Middleman::CoreExtensions::Compass
|
57
|
-
|
58
|
-
# Sprockets asset handling
|
59
|
-
register Middleman::CoreExtensions::Sprockets
|
60
|
-
|
61
|
-
# Setup asset path pipeline
|
62
|
-
register Middleman::CoreExtensions::Assets
|
63
|
-
|
64
|
-
# Activate built-in helpers
|
65
|
-
register Middleman::CoreExtensions::DefaultHelpers
|
66
|
-
|
67
|
-
# Activate Yaml Data package
|
68
|
-
register Middleman::CoreExtensions::Data
|
69
|
-
|
70
|
-
# with_layout and page routing
|
71
|
-
register Middleman::CoreExtensions::Routing
|
72
|
-
|
73
|
-
# Parse YAML from templates
|
74
|
-
register Middleman::CoreExtensions::FrontMatter
|
75
|
-
|
76
|
-
set :default_features, [
|
77
|
-
:lorem
|
78
|
-
]
|
79
|
-
|
80
|
-
# Default layout name
|
81
|
-
set :layout, :layout
|
82
|
-
|
83
|
-
# This will match all requests not overridden in the project's config.rb
|
84
|
-
not_found do
|
85
|
-
process_request
|
86
|
-
end
|
87
|
-
|
88
|
-
# See if Tilt cannot handle this file
|
89
|
-
before do
|
90
|
-
result = resolve_template(request.path_info, :raise_exceptions => false)
|
91
|
-
if result
|
92
|
-
extensionless_path, template_engine = result
|
93
|
-
|
94
|
-
# Return static files
|
95
|
-
if !::Tilt.mappings.has_key?(template_engine.to_s)
|
96
|
-
content_type mime_type(File.extname(request.path_info)), :charset => 'utf-8'
|
97
|
-
status 200
|
98
|
-
send_file File.join(Middleman::Server.views, request.path_info)
|
99
|
-
request["already_sent"] = true
|
100
|
-
end
|
101
|
-
else
|
102
|
-
$stderr.puts "File not found: #{request.path_info}"
|
103
|
-
status 404
|
104
|
-
request["already_sent"] = true
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
private
|
109
|
-
# Internal method to look for templates and evaluate them if found
|
110
|
-
def process_request(options={})
|
111
|
-
return if request["already_sent"]
|
112
|
-
|
113
|
-
options.merge!(request['custom_options'] || {})
|
114
|
-
|
115
|
-
old_layout = settings.layout
|
116
|
-
settings.set :layout, options[:layout] if !options[:layout].nil?
|
117
|
-
|
118
|
-
layout = if settings.layout
|
119
|
-
if options[:layout] == false || request.path_info =~ /\.(css|js)$/
|
120
|
-
false
|
121
|
-
else
|
122
|
-
settings.fetch_layout_path(settings.layout).to_sym
|
123
|
-
end
|
124
|
-
else
|
125
|
-
false
|
126
|
-
end
|
127
|
-
|
128
|
-
render_options = { :layout => layout }
|
129
|
-
render_options[:layout_engine] = options[:layout_engine] if options.has_key? :layout_engine
|
130
|
-
result = render(request.path_info, render_options)
|
131
|
-
settings.set :layout, old_layout
|
132
|
-
|
133
|
-
if result
|
134
|
-
content_type mime_type(File.extname(request.path_info)), :charset => 'utf-8'
|
135
|
-
status 200
|
136
|
-
body result
|
137
|
-
else
|
138
|
-
status 404
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|