diff --git a/fixtures/clean-app/build/fake.html b/fixtures/clean-app/build/fake.html
deleted file mode 100644
index cb312952..00000000
--- a/fixtures/clean-app/build/fake.html
+++ /dev/null
@@ -1 +0,0 @@
-I am real
\ No newline at end of file
diff --git a/fixtures/clean-app/build/fake/one.html b/fixtures/clean-app/build/fake/one.html
deleted file mode 100644
index b3c7c8da..00000000
--- a/fixtures/clean-app/build/fake/one.html
+++ /dev/null
@@ -1 +0,0 @@
-I am real: one
\ No newline at end of file
diff --git a/fixtures/clean-app/build/fake/two.html b/fixtures/clean-app/build/fake/two.html
deleted file mode 100644
index b9fdebe2..00000000
--- a/fixtures/clean-app/build/fake/two.html
+++ /dev/null
@@ -1 +0,0 @@
-I am real: two
\ No newline at end of file
diff --git a/fixtures/clean-app/build/index.html b/fixtures/clean-app/build/index.html
deleted file mode 100644
index d9075958..00000000
--- a/fixtures/clean-app/build/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- My Sample Site
-
-
-
- Welcome
- H2
-
- Paragraph
-
-
diff --git a/fixtures/clean-app/build/real.html b/fixtures/clean-app/build/real.html
deleted file mode 100644
index cb312952..00000000
--- a/fixtures/clean-app/build/real.html
+++ /dev/null
@@ -1 +0,0 @@
-I am real
\ No newline at end of file
diff --git a/fixtures/clean-app/build/real/index.html b/fixtures/clean-app/build/real/index.html
deleted file mode 100644
index e9e8914f..00000000
--- a/fixtures/clean-app/build/real/index.html
+++ /dev/null
@@ -1 +0,0 @@
-I am real:
\ No newline at end of file
diff --git a/fixtures/clean-app/build/static.html b/fixtures/clean-app/build/static.html
deleted file mode 100644
index 7e50df4e..00000000
--- a/fixtures/clean-app/build/static.html
+++ /dev/null
@@ -1 +0,0 @@
-Static, no code!
\ No newline at end of file
diff --git a/fixtures/clean-app/build/target_ignore.html b/fixtures/clean-app/build/target_ignore.html
deleted file mode 100644
index 98007c81..00000000
--- a/fixtures/clean-app/build/target_ignore.html
+++ /dev/null
@@ -1 +0,0 @@
-Ignore me! 3
\ No newline at end of file
diff --git a/fixtures/fonts-app/build/fonts/StMarie-Thin.otf b/fixtures/fonts-app/build/fonts/StMarie-Thin.otf
deleted file mode 100644
index aa601879..00000000
Binary files a/fixtures/fonts-app/build/fonts/StMarie-Thin.otf and /dev/null differ
diff --git a/fixtures/fonts-app/build/stylesheets/fonts.css b/fixtures/fonts-app/build/stylesheets/fonts.css
deleted file mode 100644
index 58fc176c..00000000
--- a/fixtures/fonts-app/build/stylesheets/fonts.css
+++ /dev/null
@@ -1,3 +0,0 @@
-@font-face {
- font-family: "St Marie";
- src: url('/fonts/StMarie-Thin.otf') format('opentype'); }
diff --git a/fixtures/indexable-app/build/a_folder/needs_index/index.html b/fixtures/indexable-app/build/a_folder/needs_index/index.html
deleted file mode 100644
index 1eeec11b..00000000
--- a/fixtures/indexable-app/build/a_folder/needs_index/index.html
+++ /dev/null
@@ -1 +0,0 @@
-Indexable
\ No newline at end of file
diff --git a/fixtures/indexable-app/build/leave_me_alone.html b/fixtures/indexable-app/build/leave_me_alone.html
deleted file mode 100644
index 163cebf8..00000000
--- a/fixtures/indexable-app/build/leave_me_alone.html
+++ /dev/null
@@ -1 +0,0 @@
-Stay away
\ No newline at end of file
diff --git a/fixtures/indexable-app/build/needs_index/index.html b/fixtures/indexable-app/build/needs_index/index.html
deleted file mode 100644
index 1eeec11b..00000000
--- a/fixtures/indexable-app/build/needs_index/index.html
+++ /dev/null
@@ -1 +0,0 @@
-Indexable
\ No newline at end of file
diff --git a/fixtures/indexable-app/build/regular/index.html b/fixtures/indexable-app/build/regular/index.html
deleted file mode 100644
index ea9503c0..00000000
--- a/fixtures/indexable-app/build/regular/index.html
+++ /dev/null
@@ -1 +0,0 @@
-Regular
\ No newline at end of file
diff --git a/fixtures/test-app/config.rb b/fixtures/test-app/config.rb
index 0e5a6867..d0c121ed 100644
--- a/fixtures/test-app/config.rb
+++ b/fixtures/test-app/config.rb
@@ -50,8 +50,4 @@ with_layout false do
}.each do |path|
page path
end
-end
-
-get "/sinatra_test" do
- "Ratpack"
end
\ No newline at end of file
diff --git a/lib/middleman/base.rb b/lib/middleman/base.rb
index cd7ec853..2dac8af1 100644
--- a/lib/middleman/base.rb
+++ b/lib/middleman/base.rb
@@ -22,6 +22,15 @@ class Middleman::Base
@app ||= Rack::Builder.new
end
+ def inst(&block)
+ @inst ||= new(&block)
+ end
+
+ def to_rack_app(&block)
+ app.run inst(&block)
+ app
+ end
+
def prototype
@prototype ||= app.to_app
end
@@ -154,6 +163,8 @@ class Middleman::Base
super
+ instance_exec(&block) if block_given?
+
run_hook :initialized
end
@@ -181,39 +192,45 @@ class Middleman::Base
original_path = @env["PATH_INFO"].dup
request_path = full_path(@env["PATH_INFO"].gsub("%20", " "))
- # return not_found if sitemap.ignored_path?(request_path)
+ return not_found if sitemap.ignored_path?(request_path)
- # if sitemap.path_is_proxy?(request_path)
- # request["is_proxy"] = true
- # request_path = "/" + sitemap.path_target(request_path)
- # end
+ if sitemap.path_is_proxy?(request_path)
+ # request["is_proxy"] = true
+ request_path = "/" + sitemap.path_target(request_path)
+ end
found_template = resolve_template(request_path)
return not_found unless found_template
+ @current_path = request_path
path, engine = found_template
# Static File
return send_file(path) if engine.nil?
- # return unless settings.execute_before_processing!(self, found_template)
+ return unless self.class.execute_before_processing!(self, found_template)
- # context = settings.sitemap.get_context(original_path) || {}
- #
- options = {}
- # options = context.has_key?(:options) ? context[:options] : {}
- # options.merge!(request['custom_options'] || {})
- #
+ context = sitemap.get_context(original_path) || {}
+ options = context.has_key?(:options) ? context[:options] : {}
+ # options.merge!(request['custom_options'] || {})
+
+ provides_metadata.each do |callback, matcher|
+ next if !matcher.nil? && !path.match(matcher)
+ options.merge!(instance_exec(path, &callback) || {})
+ end
+
local_layout = if options.has_key?(:layout)
options[:layout]
+ elsif %w(.js .css).include?(File.extname(request_path))
+ false
else
layout
end
- # if context.has_key?(:block) && context[:block]
- # instance_eval(&context[:block])
- # end
+ if context.has_key?(:block) && context[:block]
+ instance_eval(&context[:block])
+ end
# locals = request['custom_locals'] || {}
locals = {}
@@ -221,14 +238,16 @@ class Middleman::Base
# content_type mime_type(File.extname(request_path))
@res.status = 200
- output = if layout
+ output = if local_layout
layout_engine = if options.has_key?(:layout_engine)
options[:layout_engine]
else
engine
end
- layout_path, *etc = resolve_template(layout, :preferred_engine => layout_engine)
+ layout_path, *etc = resolve_template(local_layout, :preferred_engine => layout_engine)
+
+ throw "Could not locate layout: #{local_layout}" unless layout_path
render(layout_path, locals) do
render(path, locals)
@@ -242,9 +261,64 @@ class Middleman::Base
end
public
+ def extensionless_path(file)
+ @_extensionless_path_cache ||= {}
+
+ if @_extensionless_path_cache.has_key?(file)
+ @_extensionless_path_cache[file]
+ else
+ path = file.dup
+ end_of_the_line = false
+ while !end_of_the_line
+ file_extension = File.extname(path)
+
+ if ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
+ path = path.sub(file_extension, "")
+ else
+ end_of_the_line = true
+ end
+ end
+
+ @_extensionless_path_cache[file] = path
+ path
+ end
+ end
+
+ def logging?
+ logging
+ end
+
+ def current_path
+ @current_path || nil
+ end
+
+ def raw_templates_cache
+ @_raw_templates_cache ||= {}
+ end
+
+ def read_raw_template(path)
+ if !raw_templates_cache.has_key?(path)
+ raw_templates_cache[path] = File.read(path)
+ end
+
+ raw_templates_cache[path]
+ end
+
+ # def compiled_templates_cache
+ # @_compiled_templates_cache ||= {}
+ # end
+ #
+ # def read_compiled_template(path, locals, options, &block)
+ # key = [path, locals, options]
+ #
+ # if !raw_templates_cache.has_key?(key)
+ # raw_templates_cache[key] = yield
+ # end
+ #
+ # raw_templates_cache[key]
+ # end
protected
-
def full_path(path)
parts = path ? path.split('/') : []
if parts.last.nil? || parts.last.split('.').length == 1
@@ -302,29 +376,6 @@ protected
@_resolved_templates[request_path]
end
- def extensionless_path(file)
- @_extensionless_path_cache ||= {}
-
- if @_extensionless_path_cache.has_key?(file)
- @_extensionless_path_cache[file]
- else
- path = file.dup
- end_of_the_line = false
- while !end_of_the_line
- file_extension = File.extname(path)
-
- if ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
- path = path.sub(file_extension, "")
- else
- end_of_the_line = true
- end
- end
-
- @_extensionless_path_cache[file] = path
- path
- end
- end
-
def send_file(path)
# matched_mime = mime_type(File.extname(request_path))
@@ -333,16 +384,14 @@ protected
file = ::Rack::File.new nil
file.path = path
- file.serving# env
+ file.serving(@env)
end
def render(path, locals = {}, options = {}, &block)
path = path.to_s
- template = ::Tilt.new(path, 1, options)
+
+ body = read_raw_template(path)
+ template = ::Tilt.new(path, 1, options) { body }
template.render(self, locals, &block)
end
-
- def logging?
- logging
- end
end
\ No newline at end of file
diff --git a/lib/middleman/builder.rb b/lib/middleman/builder.rb
index 7a774ff8..29047688 100644
--- a/lib/middleman/builder.rb
+++ b/lib/middleman/builder.rb
@@ -4,8 +4,10 @@ require 'rack/test'
require 'find'
require 'hooks'
-SHARED_SERVER = Middleman.server
-SHARED_SERVER.set :environment, :build
+SHARED_SERVER_INST = Middleman.server.inst do
+ set :environment, :build
+end
+SHARED_SERVER = SHARED_SERVER_INST.class
module Middleman
module ThorActions
@@ -13,10 +15,10 @@ module Middleman
config = args.last.is_a?(Hash) ? args.pop : {}
destination = args.first || source
- request_path = destination.sub(/^#{SHARED_SERVER.build_dir}/, "")
+ request_path = destination.sub(/^#{SHARED_SERVER_INST.build_dir}/, "")
- begin
- destination, request_path = SHARED_SERVER.reroute_builder(destination, request_path)
+ # begin
+ # destination, request_path = SHARED_SERVER.reroute_builder(destination, request_path)
request_path.gsub!(/\s/, "%20")
response = Middleman::Builder.shared_rack.get(request_path)
@@ -24,8 +26,8 @@ module Middleman
create_file destination, nil, config do
response.body
end if response.status == 200
- rescue
- end
+ # rescue
+ # end
end
end
@@ -38,9 +40,7 @@ module Middleman
def self.shared_rack
@shared_rack ||= begin
- app = SHARED_SERVER.new!
- app_rack = SHARED_SERVER.build_new(app)
- mock = ::Rack::MockSession.new(app_rack)
+ mock = ::Rack::MockSession.new(SHARED_SERVER.to_rack_app)
sess = ::Rack::Test::Session.new(mock)
response = sess.get("__middleman__")
sess
@@ -54,13 +54,13 @@ module Middleman
super
if options.has_key?("relative") && options["relative"]
- SHARED_SERVER.activate :relative_assets
+ SHARED_SERVER_INST.activate :relative_assets
end
end
def source_paths
@source_paths ||= [
- SHARED_SERVER.root
+ SHARED_SERVER_INST.root
]
end
@@ -71,7 +71,7 @@ module Middleman
opts[:glob] = options["glob"] if options.has_key?("glob")
opts[:clean] = options["clean"] if options.has_key?("clean")
- action GlobAction.new(self, SHARED_SERVER, opts)
+ action GlobAction.new(self, SHARED_SERVER_INST, opts)
run_hook :after_build
end
diff --git a/lib/middleman/core_extensions/data.rb b/lib/middleman/core_extensions/data.rb
index 4882d915..b35cc373 100755
--- a/lib/middleman/core_extensions/data.rb
+++ b/lib/middleman/core_extensions/data.rb
@@ -6,23 +6,36 @@ module Middleman::CoreExtensions::Data
class << self
def registered(app)
app.set :data_dir, "data"
- app.extend ClassMethods
- app.helpers Helpers
-
- app.file_changed DataStore.matcher do |file|
- data.touch_file(file) if file.match(%r{^#{settings.data_dir}\/})
- end
-
- app.file_deleted DataStore.matcher do |file|
- data.remove_file(file) if file.match(%r{^#{settings.data_dir}\/})
- end
+ app.send :include, InstanceMethods
end
alias :included :registered
end
- module Helpers
+ module InstanceMethods
+ def initialize
+ file_changed DataStore.matcher do |file|
+ data.touch_file(file) if file.match(%r{^#{data_dir}\/})
+ end
+
+ file_deleted DataStore.matcher do |file|
+ data.remove_file(file) if file.match(%r{^#{data_dir}\/})
+ end
+
+ super
+ end
+
def data
- settings.data
+ @data ||= DataStore.new(self)
+ end
+
+ # Makes a hash available on the data var with a given name
+ def data_content(name, content)
+ DataStore.data_content(name, content)
+ end
+
+ # Makes a hash available on the data var with a given name
+ def data_callback(name, &block)
+ DataStore.data_callback(name, block)
end
end
@@ -49,7 +62,7 @@ module Middleman::CoreExtensions::Data
return
end
- @app.logger.debug :data_update, Time.now, basename if @app.settings.logging?
+ # @app.logger.debug :data_update, Time.now, basename if @app.logging?
@local_data[basename] = recursively_enhance(data)
end
@@ -137,20 +150,4 @@ module Middleman::CoreExtensions::Data
end
end
end
-
- module ClassMethods
- def data
- @data ||= DataStore.new(self)
- end
-
- # Makes a hash available on the data var with a given name
- def data_content(name, content)
- DataStore.data_content(name, content)
- end
-
- # Makes a hash available on the data var with a given name
- def data_callback(name, &block)
- DataStore.data_callback(name, block)
- end
- end
end
\ No newline at end of file
diff --git a/lib/middleman/core_extensions/default_helpers.rb b/lib/middleman/core_extensions/default_helpers.rb
index 38d995ee..cdc2a032 100644
--- a/lib/middleman/core_extensions/default_helpers.rb
+++ b/lib/middleman/core_extensions/default_helpers.rb
@@ -1,11 +1,6 @@
-require "padrino-helpers"
-
module Middleman::CoreExtensions::DefaultHelpers
class << self
def registered(app)
- # Use Padrino Helpers
- app.register Padrino::Helpers
-
# Middleman Helpers
app.helpers Helpers
end
@@ -13,6 +8,11 @@ module Middleman::CoreExtensions::DefaultHelpers
end
module Helpers
+
+ # TODO: Implement
+ def javascript_include_tag(path)
+ end
+
def auto_stylesheet_link_tag(separator="/")
auto_tag(:css, separator) do |path|
stylesheet_link_tag path
@@ -28,25 +28,25 @@ module Middleman::CoreExtensions::DefaultHelpers
def auto_tag(asset_ext, separator="/", asset_dir=nil)
if asset_dir.nil?
asset_dir = case asset_ext
- when :js then self.class.js_dir
- when :css then self.class.css_dir
+ when :js then self.js_dir
+ when :css then self.css_dir
end
end
- path = request.path_info.dup
+ path = current_path.dup
# If the basename of the request as no extension, assume we are serving a
# directory and join index_file to the path.
- path = File.join(path, self.class.index_file) if File.extname(path).empty?
+ path = File.join(path, self.index_file) if File.extname(path).empty?
path = path.gsub(%r{^/}, '')
path = path.gsub(File.extname(path), ".#{asset_ext}")
path = path.gsub("/", separator)
- view = File.join(self.class.views, asset_dir, path)
+ view = File.join(self.views, asset_dir, path)
yield path if File.exists?(view) or Dir["#{view}.*"].any?
end
def page_classes
- path = request.path_info.dup
- path << settings.index_file if path.match(%r{/$})
+ path = current_path.dup
+ path << self.index_file if path.match(%r{/$})
path = path.gsub(%r{^/}, '')
classes = []
@@ -60,9 +60,9 @@ module Middleman::CoreExtensions::DefaultHelpers
def asset_path(kind, source)
return source if source =~ /^http/
asset_folder = case kind
- when :css then settings.css_dir
- when :js then settings.js_dir
- when :images then settings.images_dir
+ when :css then self.css_dir
+ when :js then self.js_dir
+ when :images then self.images_dir
else kind.to_s
end
source = source.to_s.gsub(/\s/, '')
diff --git a/lib/middleman/core_extensions/features.rb b/lib/middleman/core_extensions/features.rb
index 7baab04e..342473ec 100644
--- a/lib/middleman/core_extensions/features.rb
+++ b/lib/middleman/core_extensions/features.rb
@@ -89,8 +89,7 @@ module Middleman::CoreExtensions::Features
local_config = File.join(self.root, "config.rb")
if File.exists? local_config
puts "== Reading: Local config" if logging?
- # instance_eval File.read(local_config)
- # set :app_file, File.expand_path(local_config)
+ instance_eval File.read(local_config)
end
run_hook :after_configuration
diff --git a/lib/middleman/core_extensions/file_watcher.rb b/lib/middleman/core_extensions/file_watcher.rb
index b1bedbb2..c2d8efe7 100644
--- a/lib/middleman/core_extensions/file_watcher.rb
+++ b/lib/middleman/core_extensions/file_watcher.rb
@@ -11,7 +11,6 @@ module Middleman::CoreExtensions::FileWatcher
file_did_change(path.sub("#{root}/", ""))
end
end
-
end
alias :included :registered
end
@@ -31,8 +30,8 @@ module Middleman::CoreExtensions::FileWatcher
end
module InstanceMethods
- def file_changed(*args)
- self.class.file_changed(*args)
+ def file_changed(*args, &block)
+ self.class.file_changed(*args, &block)
end
def file_did_change(path)
diff --git a/lib/middleman/core_extensions/front_matter.rb b/lib/middleman/core_extensions/front_matter.rb
index 429ecc29..02eb9a1a 100644
--- a/lib/middleman/core_extensions/front_matter.rb
+++ b/lib/middleman/core_extensions/front_matter.rb
@@ -4,59 +4,50 @@ require "tilt"
module Middleman::CoreExtensions::FrontMatter
class << self
def registered(app)
- app.extend ClassMethods
app.send :include, InstanceMethods
-
- app.file_changed FrontMatter.matcher do |file|
- frontmatter.touch_file(file)
- end
-
- app.file_deleted do |file|
- frontmatter.remove_file(file)
- end
-
- app.after_configuration do
- app.before_processing(:front_matter) do |result|
- if result && Tilt.mappings.has_key?(result[1].to_s)
- extensionless_path, template_engine = result
- full_file_path = "#{extensionless_path}.#{template_engine}"
-
- if app.frontmatter.has_data?(full_file_path)
- data = app.frontmatter.data(full_file_path).first
-
- request['custom_options'] = {}
- %w(layout layout_engine).each do |opt|
- if data.has_key?(opt)
- request['custom_options'][opt.to_sym] = data[opt]
- end
- end
- else
- data = {}
- end
-
- # Forward remaining data to helpers
- app.data_content("page", data)
- end
-
- true
- end
- end
end
alias :included :registered
end
- module ClassMethods
+ module InstanceMethods
+ def initialize
+ file_changed FrontMatter.matcher do |file|
+ frontmatter.touch_file(file)
+ end
+
+ file_deleted do |file|
+ frontmatter.remove_file(file)
+ end
+
+ provides_metadata FrontMatter.matcher do |path|
+ relative_path = path.sub(source_dir, "")
+
+ data = if frontmatter.has_data?(relative_path)
+ frontmatter.data(relative_path).first
+ else
+ {}
+ end
+
+ # Forward remaining data to helpers
+ data_content("page", data)
+
+ %w(layout layout_engine).each do |opt|
+ if data.has_key?(opt)
+ data[opt.to_sym] = data.delete(opt)
+ end
+ end
+
+ data
+ end
+
+ super
+ end
+
def frontmatter
@frontmatter ||= FrontMatter.new(self)
end
end
- module InstanceMethods
- def frontmatter
- settings.frontmatter
- end
- end
-
class FrontMatter
def self.matcher
%r{source/.*\.html}
@@ -64,7 +55,7 @@ module Middleman::CoreExtensions::FrontMatter
def initialize(app)
@app = app
- @source ||= File.expand_path(@app.views, @app.root)
+ @source = File.expand_path(@app.views, @app.root)
@local_data = {}
end
@@ -78,22 +69,22 @@ module Middleman::CoreExtensions::FrontMatter
file = File.expand_path(file, @app.root)
content = File.read(file)
- file = file.sub(@source, "")
+ file = file.sub(@app.source_dir, "")
- @app.logger.debug :frontmatter_update, Time.now, file if @app.settings.logging?
+ # @app.logger.debug :frontmatter_update, Time.now, file if @app.logging?
result = parse_front_matter(content)
if result
@local_data[file] = result
path = @app.extensionless_path(file)
- @app.settings.templates[path.to_sym] = [result[1], path.to_s, 1]
+ @app.raw_templates_cache[path] = result[1]
end
end
def remove_file(file)
file = File.expand_path(file, @app.root)
- file = file.sub(@source, "")
- @app.logger.debug :frontmatter_remove, Time.now, file if @app.settings.logging?
+ file = file.sub(@app.source_dir, "")
+ # @app.logger.debug :frontmatter_remove, Time.now, file if @app.logging?
if @local_data.has_key?(file)
@local_data.delete(file)
diff --git a/lib/middleman/core_extensions/routing.rb b/lib/middleman/core_extensions/routing.rb
index 1cd6cb97..070c22f0 100644
--- a/lib/middleman/core_extensions/routing.rb
+++ b/lib/middleman/core_extensions/routing.rb
@@ -1,12 +1,12 @@
module Middleman::CoreExtensions::Routing
class << self
def registered(app)
- app.extend ClassMethods
+ app.send :include, InstanceMethods
end
alias :included :registered
end
- module ClassMethods
+ module InstanceMethods
# Takes a block which allows many pages to have the same layout
# with_layout :admin do
# page "/admin/"
@@ -16,7 +16,7 @@ module Middleman::CoreExtensions::Routing
old_layout = layout
set :layout, layout_name
- class_eval(&block) if block_given?
+ instance_exec(&block) if block_given?
ensure
set :layout, old_layout
end
diff --git a/lib/middleman/core_extensions/sitemap.rb b/lib/middleman/core_extensions/sitemap.rb
index a9b3a1a7..27346928 100644
--- a/lib/middleman/core_extensions/sitemap.rb
+++ b/lib/middleman/core_extensions/sitemap.rb
@@ -3,27 +3,24 @@ require 'find'
module Middleman::CoreExtensions::Sitemap
class << self
def registered(app)
- app.extend ClassMethods
- app.helpers Helpers
-
- app.file_changed do |file|
- sitemap.touch_file(file)
- end
-
- app.file_deleted do |file|
- sitemap.remove_file(file)
- end
+ app.send :include, InstanceMethods
end
alias :included :registered
end
- module Helpers
- def sitemap
- self.class.sitemap
+ module InstanceMethods
+ def initialize
+ file_changed do |file|
+ sitemap.touch_file(file)
+ end
+
+ file_deleted do |file|
+ sitemap.remove_file(file)
+ end
+
+ super
end
- end
-
- module ClassMethods
+
def sitemap
@sitemap ||= SitemapStore.new(self)
end
@@ -36,6 +33,12 @@ module Middleman::CoreExtensions::Sitemap
def reroute(url, target)
sitemap.set_path(url, target)
end
+
+ def provides_metadata(matcher=nil, &block)
+ @_provides_metadata ||= []
+ @_provides_metadata << [block, matcher] if block_given?
+ @_provides_metadata
+ end
end
class SitemapStore
@@ -216,7 +219,7 @@ module Middleman::CoreExtensions::Sitemap
return false if path == "layout" ||
path.match(/^layouts/)
- @app.logger.debug :sitemap_update, Time.now, path if @app.settings.logging?
+ # @app.logger.debug :sitemap_update, Time.now, path if @app.logging?
set_path(path)
true
diff --git a/lib/middleman/core_extensions/sprockets.rb b/lib/middleman/core_extensions/sprockets.rb
index 2875b895..89f9ae94 100644
--- a/lib/middleman/core_extensions/sprockets.rb
+++ b/lib/middleman/core_extensions/sprockets.rb
@@ -2,6 +2,13 @@ require 'pathname'
require 'rbconfig'
require "sprockets"
+class RackThingy
+ def call(env)
+ $stderr.puts "thingy"
+ [200, {}, "Sup"]
+ end
+end
+
module Middleman::CoreExtensions::Sprockets
class << self
def registered(app)
@@ -20,48 +27,49 @@ module Middleman::CoreExtensions::Sprockets
end
end
- app.after_configuration do
- js_env = Middleman::CoreExtensions::Sprockets::JavascriptEnvironment.new(self)
-
- vendor_dir = File.join("vendor", "assets", "javascripts")
- gems_with_js = ::Middleman.rubygems_latest_specs.select do |spec|
- ::Middleman.spec_has_file?(spec, vendor_dir)
- end.each do |spec|
- js_env.append_path File.join(spec.full_gem_path, vendor_dir)
- end
-
- app_dir = File.join("app", "assets", "javascripts")
- gems_with_js = ::Middleman.rubygems_latest_specs.select do |spec|
- ::Middleman.spec_has_file?(spec, app_dir)
- end.each do |spec|
- js_env.append_path File.join(spec.full_gem_path, app_dir)
- end
-
- # add paths to js_env (vendor/assets/javascripts)
- app.map "/#{self.js_dir}" do
- run js_env
- end
- end
+ # app.after_configuration do
+ # js_env = Middleman::CoreExtensions::Sprockets::JavascriptEnvironment.new(self)
+ #
+ # vendor_dir = File.join("vendor", "assets", "javascripts")
+ # gems_with_js = ::Middleman.rubygems_latest_specs.select do |spec|
+ # ::Middleman.spec_has_file?(spec, vendor_dir)
+ # end.each do |spec|
+ # js_env.append_path File.join(spec.full_gem_path, vendor_dir)
+ # end
+ #
+ # app_dir = File.join("app", "assets", "javascripts")
+ # gems_with_js = ::Middleman.rubygems_latest_specs.select do |spec|
+ # ::Middleman.spec_has_file?(spec, app_dir)
+ # end.each do |spec|
+ # js_env.append_path File.join(spec.full_gem_path, app_dir)
+ # end
+ #
+ # # add paths to js_env (vendor/assets/javascripts)
+ # app.map "/#{self.js_dir}" do
+ # run js_env
+ # end
+ # end
app.after_compass_config do
- css_env = Middleman::CoreExtensions::Sprockets::StylesheetEnvironment.new(self)
-
- vendor_dir = File.join("vendor", "assets", "stylesheets")
- gems_with_css = ::Middleman.rubygems_latest_specs.select do |spec|
- ::Middleman.spec_has_file?(spec, vendor_dir)
- end.each do |spec|
- css_env.append_path File.join(spec.full_gem_path, vendor_dir)
- end
-
- app_dir = File.join("app", "assets", "stylesheets")
- gems_with_css = ::Middleman.rubygems_latest_specs.select do |spec|
- ::Middleman.spec_has_file?(spec, app_dir)
- end.each do |spec|
- css_env.append_path File.join(spec.full_gem_path, app_dir)
- end
+ # css_env = Middleman::CoreExtensions::Sprockets::StylesheetEnvironment.new(self)
+ #
+ # vendor_dir = File.join("vendor", "assets", "stylesheets")
+ # gems_with_css = ::Middleman.rubygems_latest_specs.select do |spec|
+ # ::Middleman.spec_has_file?(spec, vendor_dir)
+ # end.each do |spec|
+ # css_env.append_path File.join(spec.full_gem_path, vendor_dir)
+ # end
+ #
+ # app_dir = File.join("app", "assets", "stylesheets")
+ # gems_with_css = ::Middleman.rubygems_latest_specs.select do |spec|
+ # ::Middleman.spec_has_file?(spec, app_dir)
+ # end.each do |spec|
+ # css_env.append_path File.join(spec.full_gem_path, app_dir)
+ # end
app.map "/#{self.css_dir}" do
- run css_env
+ # run css_env
+ run ::RackThingy.new
end
end
end
diff --git a/lib/middleman/renderers/sass.rb b/lib/middleman/renderers/sass.rb
index 2817cbf6..3bbcf3c1 100644
--- a/lib/middleman/renderers/sass.rb
+++ b/lib/middleman/renderers/sass.rb
@@ -56,18 +56,4 @@ module Middleman::Renderers::Sass
::Sprockets.register_engine ".scss", ScssPlusCSSFilenameTemplate
::Tilt.register 'scss', ScssPlusCSSFilenameTemplate
::Tilt.prefer(ScssPlusCSSFilenameTemplate)
-end
-
-# Use sass settings in Haml filters
-# Other, tilt-based filters (like those used in Slim) will
-# work automatically.
-# module Middleman::Renderers::Haml
-# module Sass
-# include ::Haml::Filters::Base
-#
-# def render(text)
-# sass_options = scope.settings.sass
-# ::Sass::Engine.new(text, sass_options).render
-# end
-# end
-# end
\ No newline at end of file
+end
\ No newline at end of file
diff --git a/middleman.gemspec b/middleman.gemspec
index 9e60f51f..8a3bf44b 100644
--- a/middleman.gemspec
+++ b/middleman.gemspec
@@ -39,9 +39,10 @@ Gem::Specification.new do |s|
s.add_dependency("guard", ["~> 0.8.8"])
# s.add_dependency("eventmachine", ["1.0.0.beta.4"])
- # s.add_dependency("middleman-livereload", ["~> 0.2.0"])
# Development and test
+ s.add_development_dependency("slim")
+ s.add_development_dependency("maruku")
s.add_development_dependency("coffee-filter", ["~> 0.1.1"])
s.add_development_dependency("liquid", ["~> 2.2.0"])
s.add_development_dependency("cucumber", ["~> 1.1.0"])