remove Implied Extensions feature. Closes #1211
This commit is contained in:
parent
1721dff4c7
commit
ce7636ad18
|
@ -1,6 +1,7 @@
|
||||||
master
|
master
|
||||||
===
|
===
|
||||||
|
|
||||||
|
* Removed "Implied Extension feature"
|
||||||
* Remove 'upgrade' and 'install' CLI commands.
|
* Remove 'upgrade' and 'install' CLI commands.
|
||||||
* Gemfile may be in a parent directory of your Middleman project root (where 'config.rb' is).
|
* Gemfile may be in a parent directory of your Middleman project root (where 'config.rb' is).
|
||||||
* All dependencies for your Middleman project must be expressed in `Gemfile` - Bundler is no longer optional.
|
* All dependencies for your Middleman project must be expressed in `Gemfile` - Bundler is no longer optional.
|
||||||
|
|
|
@ -2,11 +2,6 @@ Feature: Neighboring YAML Front Matter
|
||||||
|
|
||||||
Scenario: Rendering html (yaml)
|
Scenario: Rendering html (yaml)
|
||||||
Given the Server is running at "frontmatter-neighbor-app"
|
Given the Server is running at "frontmatter-neighbor-app"
|
||||||
When I go to "/front-matter-auto.html"
|
|
||||||
Then I should see "<h1>This is the title</h1>"
|
|
||||||
Then I should not see "---"
|
|
||||||
When I go to "/front-matter-auto.erb.frontmatter"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/front-matter-2.php"
|
When I go to "/front-matter-2.php"
|
||||||
Then I should see "<h1>This is the title</h1>"
|
Then I should see "<h1>This is the title</h1>"
|
||||||
Then I should see "<?php"
|
Then I should see "<?php"
|
||||||
|
@ -38,14 +33,6 @@ Feature: Neighboring YAML Front Matter
|
||||||
|
|
||||||
Scenario: Rendering html (json)
|
Scenario: Rendering html (json)
|
||||||
Given the Server is running at "frontmatter-neighbor-app"
|
Given the Server is running at "frontmatter-neighbor-app"
|
||||||
When I go to "/json-front-matter-auto.html"
|
|
||||||
Then I should see "<h1>This is the title</h1>"
|
|
||||||
Then I should not see ";;;"
|
|
||||||
When I go to "/json-front-matter-auto.erb.frontmatter"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/json-front-matter.html"
|
|
||||||
Then I should see "<h1>This is the title</h1>"
|
|
||||||
Then I should not see ";;;"
|
|
||||||
When I go to "/json-front-matter.html.erb.frontmatter"
|
When I go to "/json-front-matter.html.erb.frontmatter"
|
||||||
Then I should see "File Not Found"
|
Then I should see "File Not Found"
|
||||||
When I go to "/json-front-matter-2.php"
|
When I go to "/json-front-matter-2.php"
|
||||||
|
|
|
@ -3,9 +3,6 @@ Feature: YAML Front Matter
|
||||||
|
|
||||||
Scenario: Rendering html (yaml)
|
Scenario: Rendering html (yaml)
|
||||||
Given the Server is running at "frontmatter-app"
|
Given the Server is running at "frontmatter-app"
|
||||||
When I go to "/front-matter-auto.html"
|
|
||||||
Then I should see "<h1>This is the title</h1>"
|
|
||||||
Then I should not see "---"
|
|
||||||
When I go to "/front-matter-2.php"
|
When I go to "/front-matter-2.php"
|
||||||
Then I should see "<h1>This is the title</h1>"
|
Then I should see "<h1>This is the title</h1>"
|
||||||
Then I should see "<?php"
|
Then I should see "<?php"
|
||||||
|
@ -35,9 +32,6 @@ Feature: YAML Front Matter
|
||||||
|
|
||||||
Scenario: Rendering html (json)
|
Scenario: Rendering html (json)
|
||||||
Given the Server is running at "frontmatter-app"
|
Given the Server is running at "frontmatter-app"
|
||||||
When I go to "/json-front-matter-auto.html"
|
|
||||||
Then I should see "<h1>This is the title</h1>"
|
|
||||||
Then I should not see ";;;"
|
|
||||||
When I go to "/json-front-matter.html"
|
When I go to "/json-front-matter.html"
|
||||||
Then I should see "<h1>This is the title</h1>"
|
Then I should see "<h1>This is the title</h1>"
|
||||||
Then I should not see ";;;"
|
Then I should not see ";;;"
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
Feature: Use default extensions when user doesn't supply them
|
|
||||||
|
|
||||||
Scenario: Default extensions preview
|
|
||||||
Given the Server is running at "implied-extensions-app"
|
|
||||||
When I go to "/"
|
|
||||||
Then I should see "hello: world"
|
|
||||||
When I go to "/index.html"
|
|
||||||
Then I should see "hello: world"
|
|
||||||
When I go to "/index.erb"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/index"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
|
|
||||||
Scenario: Override erb extension
|
|
||||||
Given a fixture app "implied-extensions-app"
|
|
||||||
And a file named "config.rb" with:
|
|
||||||
"""
|
|
||||||
template_extensions :erb => :htm
|
|
||||||
"""
|
|
||||||
And the Server is running
|
|
||||||
When I go to "/"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/index.htm"
|
|
||||||
Then I should see "hello: world"
|
|
||||||
When I go to "/index.erb"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/index"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
When I go to "/index.html"
|
|
||||||
Then I should see "File Not Found"
|
|
||||||
|
|
||||||
Scenario: Override erb extension
|
|
||||||
Given a fixture app "implied-extensions-app"
|
|
||||||
And a file named "config.rb" with:
|
|
||||||
"""
|
|
||||||
set :index_file, "index.htm"
|
|
||||||
template_extensions :erb => :htm
|
|
||||||
"""
|
|
||||||
And the Server is running
|
|
||||||
When I go to "/"
|
|
||||||
Then I should see "hello: world"
|
|
||||||
When I go to "/index.htm"
|
|
||||||
Then I should see "hello: world"
|
|
||||||
|
|
||||||
Scenario: Default extensions build
|
|
||||||
Given a fixture app "implied-extensions-app"
|
|
||||||
And a successfully built app at "implied-extensions-app"
|
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
|
||||||
| index.html |
|
|
||||||
Then the following files should not exist:
|
|
||||||
| index |
|
|
||||||
| index.erb |
|
|
||||||
And the file "index.html" should contain "hello: world"
|
|
||||||
|
|
||||||
Scenario: Default extensions build with override
|
|
||||||
Given a fixture app "implied-extensions-app"
|
|
||||||
And a file named "config.rb" with:
|
|
||||||
"""
|
|
||||||
template_extensions :erb => :htm
|
|
||||||
"""
|
|
||||||
And a successfully built app at "implied-extensions-app"
|
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
|
||||||
| index.htm |
|
|
||||||
Then the following files should not exist:
|
|
||||||
| index |
|
|
||||||
| index.erb |
|
|
||||||
| index.html |
|
|
|
@ -1,50 +0,0 @@
|
||||||
Feature: More default extensions
|
|
||||||
|
|
||||||
Scenario: Default extensions preview
|
|
||||||
Given the Server is running at "more-implied-extensions-app"
|
|
||||||
When I go to "/test.html"
|
|
||||||
Then I should see "Hello"
|
|
||||||
When I go to "/test2.html"
|
|
||||||
Then I should see "World"
|
|
||||||
When I go to "/test3.html"
|
|
||||||
Then I should see "Howdy"
|
|
||||||
When I go to "/test4.html"
|
|
||||||
Then I should see "HELLO"
|
|
||||||
When I go to "/javascripts/app.js"
|
|
||||||
Then I should see "derp"
|
|
||||||
Then I should not see "I am in the layout"
|
|
||||||
When I go to "/stylesheets/style.css"
|
|
||||||
Then I should see "section"
|
|
||||||
Then I should not see "I am in the layout"
|
|
||||||
When I go to "/stylesheets/style2.css"
|
|
||||||
Then I should see "section"
|
|
||||||
Then I should not see "I am in the layout"
|
|
||||||
When I go to "/stylesheets/style3.css"
|
|
||||||
Then I should see "color"
|
|
||||||
Then I should not see "I am in the layout"
|
|
||||||
|
|
||||||
Scenario: Default extensions build
|
|
||||||
Given a fixture app "more-implied-extensions-app"
|
|
||||||
And a successfully built app at "more-implied-extensions-app"
|
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
|
||||||
| test.html |
|
|
||||||
| test2.html |
|
|
||||||
| test3.html |
|
|
||||||
| test4.html |
|
|
||||||
| javascripts/app.js |
|
|
||||||
| stylesheets/style.css |
|
|
||||||
| stylesheets/style2.css |
|
|
||||||
| stylesheets/style3.css |
|
|
||||||
And the file "test.html" should contain "Hello"
|
|
||||||
And the file "test2.html" should contain "World"
|
|
||||||
And the file "test3.html" should contain "Howdy"
|
|
||||||
And the file "test4.html" should contain "HELLO"
|
|
||||||
And the file "javascripts/app.js" should contain "derp"
|
|
||||||
And the file "javascripts/app.js" should not contain "I am in the layout"
|
|
||||||
And the file "stylesheets/style.css" should contain "section"
|
|
||||||
And the file "stylesheets/style.css" should not contain "I am in the layout"
|
|
||||||
And the file "stylesheets/style2.css" should contain "section"
|
|
||||||
And the file "stylesheets/style2.css" should not contain "I am in the layout"
|
|
||||||
And the file "stylesheets/style3.css" should contain "color"
|
|
||||||
And the file "stylesheets/style3.css" should not contain "I am in the layout"
|
|
|
@ -1,6 +0,0 @@
|
||||||
---
|
|
||||||
layout: false
|
|
||||||
title: This is the title
|
|
||||||
---
|
|
||||||
|
|
||||||
<h1><%= current_page.data.title %></h1>
|
|
|
@ -1,6 +0,0 @@
|
||||||
;;;
|
|
||||||
"layout": false,
|
|
||||||
"title": "This is the title"
|
|
||||||
;;;
|
|
||||||
|
|
||||||
<h1><%= current_page.data.title %></h1>
|
|
|
@ -1 +0,0 @@
|
||||||
<h1><%= current_page.data.title %></h1>
|
|
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
layout: false
|
|
||||||
title: This is the title
|
|
||||||
---
|
|
|
@ -1 +0,0 @@
|
||||||
<h1><%= current_page.data.title %></h1>
|
|
|
@ -1,4 +0,0 @@
|
||||||
;;;
|
|
||||||
"layout": false,
|
|
||||||
"title": "This is the title"
|
|
||||||
;;;
|
|
|
@ -1 +0,0 @@
|
||||||
hello: <%= "world" %>
|
|
|
@ -1 +0,0 @@
|
||||||
hello = (args...) -> "derp"
|
|
|
@ -1,3 +0,0 @@
|
||||||
I am in the layout
|
|
||||||
|
|
||||||
<%= yield %>
|
|
|
@ -1,3 +0,0 @@
|
||||||
@import "compass";
|
|
||||||
|
|
||||||
@include global-reset;
|
|
|
@ -1,3 +0,0 @@
|
||||||
@import "compass"
|
|
||||||
|
|
||||||
+global-reset
|
|
|
@ -1,4 +0,0 @@
|
||||||
@base: #f938ab;
|
|
||||||
.box {
|
|
||||||
color: @base;
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
!!!
|
|
||||||
%html
|
|
||||||
%body
|
|
||||||
Hello
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Hello
|
|
||||||
|
|
||||||
## World
|
|
|
@ -1,3 +0,0 @@
|
||||||
html
|
|
||||||
body
|
|
||||||
| Howdy
|
|
|
@ -1 +0,0 @@
|
||||||
{{ 'Hello' | upcase }}
|
|
|
@ -6,7 +6,7 @@ module Middleman
|
||||||
attr_reader :app
|
attr_reader :app
|
||||||
|
|
||||||
# Whitelist methods that can reach out.
|
# Whitelist methods that can reach out.
|
||||||
delegate :config, :logger, :activate, :use, :map, :mime_type, :data, :template_extensions, :root, :to => :app
|
delegate :config, :logger, :activate, :use, :map, :mime_type, :data, :root, :to => :app
|
||||||
|
|
||||||
def initialize(app, template_context_class)
|
def initialize(app, template_context_class)
|
||||||
@app = app
|
@app = app
|
||||||
|
|
|
@ -11,9 +11,6 @@ module Middleman
|
||||||
|
|
||||||
# Once registered
|
# Once registered
|
||||||
def included(app)
|
def included(app)
|
||||||
# Include methods
|
|
||||||
app.send :include, InstanceMethods
|
|
||||||
|
|
||||||
app.define_hook :before_render
|
app.define_hook :before_render
|
||||||
app.define_hook :after_render
|
app.define_hook :after_render
|
||||||
|
|
||||||
|
@ -98,20 +95,6 @@ module Middleman
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Rendering instance methods
|
|
||||||
module InstanceMethods
|
|
||||||
|
|
||||||
# Add or overwrite a default template extension
|
|
||||||
#
|
|
||||||
# @param [Hash] extension_map
|
|
||||||
# @return [Hash]
|
|
||||||
def template_extensions(extension_map=nil)
|
|
||||||
@_template_extensions ||= {}
|
|
||||||
@_template_extensions.merge!(extension_map) if extension_map
|
|
||||||
@_template_extensions
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,9 +12,6 @@ module Middleman
|
||||||
:attributes => %W(showtitle env=middleman env-middleman middleman-version=#{::Middleman::VERSION})
|
:attributes => %W(showtitle env=middleman env-middleman middleman-version=#{::Middleman::VERSION})
|
||||||
}, 'AsciiDoc engine options (Hash)'
|
}, 'AsciiDoc engine options (Hash)'
|
||||||
app.config.define_setting :asciidoc_attributes, [], 'AsciiDoc custom attributes (Array)'
|
app.config.define_setting :asciidoc_attributes, [], 'AsciiDoc custom attributes (Array)'
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :adoc => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
# QUESTION should base_dir be equal to docdir instead?
|
# QUESTION should base_dir be equal to docdir instead?
|
||||||
|
|
|
@ -16,7 +16,6 @@ module Middleman
|
||||||
::Tilt.prefer(DebuggingCoffeeScriptTemplate)
|
::Tilt.prefer(DebuggingCoffeeScriptTemplate)
|
||||||
|
|
||||||
app.before_configuration do
|
app.before_configuration do
|
||||||
template_extensions :coffee => :js
|
|
||||||
DebuggingCoffeeScriptTemplate.middleman_app = self
|
DebuggingCoffeeScriptTemplate.middleman_app = self
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,10 +7,6 @@ module Middleman
|
||||||
|
|
||||||
# once registered
|
# once registered
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :erb => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
# After config
|
# After config
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
::Tilt.prefer(Template, :erb)
|
::Tilt.prefer(Template, :erb)
|
||||||
|
|
|
@ -44,10 +44,6 @@ module Middleman
|
||||||
def registered(app)
|
def registered(app)
|
||||||
::Tilt.prefer(::Middleman::Renderers::HamlTemplate, 'haml')
|
::Tilt.prefer(::Middleman::Renderers::HamlTemplate, 'haml')
|
||||||
|
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :haml => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
# Add haml helpers to context
|
# Add haml helpers to context
|
||||||
::Middleman::TemplateContext.send :include, ::Haml::Helpers
|
::Middleman::TemplateContext.send :include, ::Haml::Helpers
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,10 +14,6 @@ module Middleman
|
||||||
# Default less options
|
# Default less options
|
||||||
app.config.define_setting :less, {}, 'LESS compiler options'
|
app.config.define_setting :less, {}, 'LESS compiler options'
|
||||||
|
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :less => :css
|
|
||||||
end
|
|
||||||
|
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
::Less.paths << File.join(source_dir, config[:css_dir])
|
::Less.paths << File.join(source_dir, config[:css_dir])
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,10 +12,6 @@ module Middleman
|
||||||
|
|
||||||
# Once registerd
|
# Once registerd
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :liquid => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
# After config, setup liquid partial paths
|
# After config, setup liquid partial paths
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
::Liquid::Template.file_system = ::Liquid::LocalFileSystem.new(source_dir)
|
::Liquid::Template.file_system = ::Liquid::LocalFileSystem.new(source_dir)
|
||||||
|
|
|
@ -13,14 +13,6 @@ module Middleman
|
||||||
app.config.define_setting :markdown_engine, :kramdown, 'Preferred markdown engine'
|
app.config.define_setting :markdown_engine, :kramdown, 'Preferred markdown engine'
|
||||||
app.config.define_setting :markdown_engine_prefix, ::Tilt, 'The parent module for markdown template engines'
|
app.config.define_setting :markdown_engine_prefix, ::Tilt, 'The parent module for markdown template engines'
|
||||||
|
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :markdown => :html,
|
|
||||||
:mdown => :html,
|
|
||||||
:md => :html,
|
|
||||||
:mkd => :html,
|
|
||||||
:mkdn => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
# Once configuration is parsed
|
# Once configuration is parsed
|
||||||
app.after_configuration do
|
app.after_configuration do
|
||||||
markdown_exts = %w(markdown mdown md mkd mkdn)
|
markdown_exts = %w(markdown mdown md mkd mkdn)
|
||||||
|
|
|
@ -14,11 +14,6 @@ module Middleman
|
||||||
# Default sass options
|
# Default sass options
|
||||||
app.config.define_setting :sass, {}, 'Sass engine options'
|
app.config.define_setting :sass, {}, 'Sass engine options'
|
||||||
|
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :scss => :css,
|
|
||||||
:sass => :css
|
|
||||||
end
|
|
||||||
|
|
||||||
# Tell Tilt to use it as well (for inline sass blocks)
|
# Tell Tilt to use it as well (for inline sass blocks)
|
||||||
::Tilt.register 'sass', SassPlusCSSFilenameTemplate
|
::Tilt.register 'sass', SassPlusCSSFilenameTemplate
|
||||||
::Tilt.prefer(SassPlusCSSFilenameTemplate)
|
::Tilt.prefer(SassPlusCSSFilenameTemplate)
|
||||||
|
|
|
@ -26,10 +26,6 @@ module Middleman
|
||||||
|
|
||||||
# Once registered
|
# Once registered
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :slim => :html
|
|
||||||
end
|
|
||||||
|
|
||||||
# Setup Slim options to work with partials
|
# Setup Slim options to work with partials
|
||||||
::Slim::Engine.set_default_options(
|
::Slim::Engine.set_default_options(
|
||||||
:buffer => '@_out_buf',
|
:buffer => '@_out_buf',
|
||||||
|
|
|
@ -14,11 +14,6 @@ module Middleman
|
||||||
def registered(app)
|
def registered(app)
|
||||||
# Default stylus options
|
# Default stylus options
|
||||||
app.config.define_setting :styl, {}, 'Stylus config options'
|
app.config.define_setting :styl, {}, 'Stylus config options'
|
||||||
|
|
||||||
|
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :styl => :css
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
alias :included :registered
|
alias :included :registered
|
||||||
|
|
|
@ -205,11 +205,7 @@ module Middleman
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def extensionless_path(file)
|
def extensionless_path(file)
|
||||||
path = file.dup
|
path = file.dup
|
||||||
path = remove_templating_extensions(path)
|
remove_templating_extensions(path)
|
||||||
|
|
||||||
# If there is no extension, look for one
|
|
||||||
path = find_extension(path, file) if File.extname(strip_away_locale(path)).empty?
|
|
||||||
path
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Actually update the resource list, assuming anything has called
|
# Actually update the resource list, assuming anything has called
|
||||||
|
@ -271,22 +267,6 @@ module Middleman
|
||||||
|
|
||||||
path
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
# Finds an extension for path according to file's extension
|
|
||||||
# @param [String] path without extension
|
|
||||||
# @param [String] file path with original extensions
|
|
||||||
def find_extension(path, file)
|
|
||||||
input_ext = File.extname(file)
|
|
||||||
|
|
||||||
if !input_ext.empty?
|
|
||||||
input_ext = input_ext.split('.').last.to_sym
|
|
||||||
if @app.template_extensions.has_key?(input_ext)
|
|
||||||
path << ".#{@app.template_extensions[input_ext]}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
path
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue