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.
- data/CHANGELOG +3 -1
- data/bin/mm-server +1 -1
- data/features/asset_host.feature +2 -0
- data/features/automatic_image_sizes.feature +2 -0
- data/features/builder.feature +4 -1
- data/features/cache_buster.feature +4 -0
- data/features/coffee-script.feature +6 -1
- data/features/dynamic_pages.feature +24 -0
- data/features/minify_css.feature +2 -0
- data/features/minify_javascript.feature +3 -0
- data/features/page_alias_and_layouts.feature +5 -0
- data/features/relative_assets.feature +33 -1
- data/features/step_definitions/asset_host_steps.rb +4 -6
- data/features/step_definitions/builder_steps.rb +5 -0
- data/features/step_definitions/middleman_steps.rb +11 -8
- data/features/step_definitions/page_layout_steps.rb +7 -11
- data/features/tiny_src.feature +2 -0
- data/fixtures/test-app/config.rb +10 -0
- data/fixtures/test-app/source/images/Child folder/regular_file(example).txt +1 -0
- data/fixtures/test-app/source/images/Read me (example).txt +1 -0
- data/fixtures/test-app/source/img/blank.gif +0 -0
- data/fixtures/test-app/source/javascripts/broken-coffee.js.coffee +3 -0
- data/fixtures/test-app/source/real.html +1 -0
- data/fixtures/test-app/source/real/index.html.erb +5 -0
- data/fixtures/test-app/source/relative_image.html.erb +1 -0
- data/fixtures/test-app/source/spaces in file.html.erb +1 -0
- data/lib/middleman/base.rb +9 -6
- data/lib/middleman/builder.rb +7 -4
- data/lib/middleman/core_extensions/compass.rb +45 -16
- data/lib/middleman/core_extensions/front_matter.rb +2 -1
- data/lib/middleman/core_extensions/routing.rb +21 -9
- data/lib/middleman/features/asset_host.rb +2 -2
- data/lib/middleman/features/blog.rb +8 -5
- data/lib/middleman/features/cache_buster.rb +8 -10
- data/lib/middleman/features/minify_css.rb +2 -2
- data/lib/middleman/guard.rb +8 -2
- data/lib/middleman/templates.rb +3 -6
- data/lib/middleman/templates/blog.rb +17 -0
- data/lib/middleman/templates/blog/config.ru +9 -0
- data/lib/middleman/templates/blog/config.tt +18 -0
- data/lib/middleman/templates/blog/source/2011/01/01/new-article.html.markdown +6 -0
- data/lib/middleman/templates/blog/source/archives/index.html.erb +10 -0
- data/lib/middleman/templates/blog/source/feed.xml.builder +23 -0
- data/lib/middleman/templates/blog/source/index.html.erb +9 -0
- data/lib/middleman/templates/blog/source/layout.erb +30 -0
- data/lib/middleman/templates/default.rb +6 -4
- data/lib/middleman/templates/default/source/index.html.erb +5 -0
- data/lib/middleman/templates/default/source/layout.erb +19 -0
- data/lib/middleman/templates/default/source/stylesheets/site.css.scss +36 -0
- data/lib/middleman/templates/html5.rb +6 -3
- data/lib/middleman/templates/html5/source/404.html +28 -18
- data/lib/middleman/templates/html5/source/apple-touch-icon-114x114-precomposed.png +0 -0
- data/lib/middleman/templates/html5/source/apple-touch-icon-57x57-precomposed.png +0 -0
- data/lib/middleman/templates/html5/source/apple-touch-icon-72x72-precomposed.png +0 -0
- data/lib/middleman/templates/html5/source/apple-touch-icon-precomposed.png +0 -0
- data/lib/middleman/templates/html5/source/apple-touch-icon.png +0 -0
- data/lib/middleman/templates/html5/source/crossdomain.xml +0 -0
- data/lib/middleman/templates/html5/source/css/handheld.css +0 -0
- data/lib/middleman/templates/html5/source/css/style.css +40 -36
- data/lib/middleman/templates/html5/source/favicon.ico +0 -0
- data/lib/middleman/templates/html5/source/humans.txt +0 -0
- data/lib/middleman/templates/html5/source/{images → img}/.gitignore +0 -0
- data/lib/middleman/templates/html5/source/index.html +26 -27
- data/lib/middleman/templates/html5/source/js/libs/dd_belatedpng.js +0 -0
- data/lib/middleman/templates/html5/source/js/libs/{jquery-1.5.0.js → jquery-1.5.1.js} +549 -409
- data/lib/middleman/templates/html5/source/js/libs/jquery-1.5.1.min.js +16 -0
- data/lib/middleman/templates/html5/source/js/libs/modernizr-1.7.min.js +2 -0
- data/lib/middleman/templates/html5/source/js/mylibs/.gitignore +0 -0
- data/lib/middleman/templates/html5/source/js/plugins.js +3 -1
- data/lib/middleman/templates/html5/source/js/script.js +0 -0
- data/lib/middleman/templates/html5/source/robots.txt +0 -0
- data/lib/middleman/templates/html5/source/test/index.html +31 -0
- data/lib/middleman/templates/html5/source/test/qunit/qunit.css +148 -0
- data/lib/middleman/templates/html5/source/test/qunit/qunit.js +1265 -0
- data/lib/middleman/templates/html5/source/test/tests.js +27 -0
- data/lib/middleman/templates/{default → shared}/config.ru +0 -0
- data/lib/middleman/templates/{default → shared}/config.tt +36 -8
- data/lib/middleman/version.rb +1 -1
- data/middleman.gemspec +6 -6
- metadata +188 -35
- data/.document +0 -5
- data/.gitmodules +0 -0
- data/lib/middleman/templates/compass.rb +0 -18
- data/lib/middleman/templates/default/source/index.html.haml +0 -4
- data/lib/middleman/templates/default/source/layout.haml +0 -21
- data/lib/middleman/templates/default/source/stylesheets/site.css.sass +0 -34
- data/lib/middleman/templates/html5/config.ru +0 -4
- data/lib/middleman/templates/html5/config.tt +0 -53
- data/lib/middleman/templates/html5/source/js/libs/jquery-1.5.0.min.js +0 -16
- data/lib/middleman/templates/html5/source/js/libs/modernizr-1.6.min.js +0 -30
- data/lib/middleman/templates/xhtml.rb +0 -16
- data/lib/middleman/templates/xhtml/config.ru +0 -4
- data/lib/middleman/templates/xhtml/config.tt +0 -68
- data/lib/middleman/templates/xhtml/source/index.html.haml +0 -4
- data/lib/middleman/templates/xhtml/source/layout.haml +0 -13
- data/lib/middleman/templates/xhtml/source/stylesheets/site.css.sass +0 -34
|
@@ -12,31 +12,60 @@ module Middleman::CoreExtensions::Compass
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
app.after_feature_init do
|
|
15
|
-
|
|
15
|
+
# Support a stand-alone compass config file
|
|
16
|
+
# Many options are overwritten by Middleman, but the config is a good
|
|
17
|
+
# place to add:
|
|
18
|
+
# * output_style
|
|
19
|
+
# * disable_warnings
|
|
20
|
+
# * sass_options
|
|
21
|
+
# * line_comments
|
|
22
|
+
# * sprite_engine
|
|
23
|
+
# * chunky_png_options
|
|
24
|
+
compass_config_file = File.join(app.root, "compass.config")
|
|
25
|
+
if File.exists?(compass_config_file)
|
|
26
|
+
::Compass.add_project_configuration(compass_config_file)
|
|
27
|
+
end
|
|
28
|
+
|
|
16
29
|
::Compass.configuration do |config|
|
|
17
|
-
# config.cache = false # For sassc files
|
|
18
|
-
config.cache_path = File.join(app.root, ".sass-cache")
|
|
19
30
|
config.project_path = app.root
|
|
31
|
+
config.environment = :development
|
|
32
|
+
config.cache_path = File.join(app.root, ".sass-cache")
|
|
33
|
+
|
|
34
|
+
views_root = File.basename(app.views)
|
|
20
35
|
config.sass_dir = File.join(views_root, app.css_dir)
|
|
21
|
-
config.output_style = :nested
|
|
22
|
-
config.fonts_dir = File.join(views_root, app.fonts_dir)
|
|
23
36
|
config.css_dir = File.join(views_root, app.css_dir)
|
|
24
|
-
config.
|
|
25
|
-
config.
|
|
26
|
-
config.
|
|
37
|
+
config.javascripts_dir = File.join(views_root, app.js_dir)
|
|
38
|
+
config.fonts_dir = File.join(views_root, app.fonts_dir)
|
|
39
|
+
config.images_dir = File.join(views_root, app.images_dir)
|
|
40
|
+
|
|
41
|
+
if app.respond_to? :http_images_path
|
|
42
|
+
config.http_images_path = app.http_images_path
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
if app.respond_to? :http_css_path
|
|
46
|
+
config.http_stylesheets_path = app.http_css_path
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
if app.respond_to? :http_js_path
|
|
50
|
+
config.http_javascripts_path = app.http_js_path
|
|
51
|
+
end
|
|
52
|
+
|
|
27
53
|
config.asset_cache_buster :none
|
|
54
|
+
config.output_style = :nested
|
|
28
55
|
|
|
29
56
|
config.add_import_path(config.sass_dir)
|
|
30
57
|
end
|
|
31
58
|
|
|
32
59
|
# Required for relative paths
|
|
33
60
|
configure :build do
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
61
|
+
::Compass.configuration do |config|
|
|
62
|
+
config.environment = :production
|
|
63
|
+
|
|
64
|
+
build_root = File.basename(self.build_dir)
|
|
65
|
+
config.css_dir = File.join(build_root, self.css_dir)
|
|
66
|
+
config.images_dir = File.join(build_root, self.images_dir)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
40
69
|
|
|
41
70
|
app.execute_after_compass_init!
|
|
42
71
|
|
|
@@ -48,14 +77,14 @@ module Middleman::CoreExtensions::Compass
|
|
|
48
77
|
|
|
49
78
|
module ClassMethods
|
|
50
79
|
# Add a block/proc to be run after features have been setup
|
|
51
|
-
def
|
|
80
|
+
def compass_config(&block)
|
|
52
81
|
@run_after_compass ||= []
|
|
53
82
|
@run_after_compass << block
|
|
54
83
|
end
|
|
55
84
|
|
|
56
85
|
def execute_after_compass_init!
|
|
57
86
|
@run_after_compass ||= []
|
|
58
|
-
@run_after_compass.each { |block|
|
|
87
|
+
@run_after_compass.each { |block| block.call(::Compass.configuration) }
|
|
59
88
|
end
|
|
60
89
|
end
|
|
61
90
|
end
|
|
@@ -24,7 +24,8 @@ module Middleman::CoreExtensions::FrontMatter
|
|
|
24
24
|
|
|
25
25
|
app.after_feature_init do
|
|
26
26
|
app.before_processing do
|
|
27
|
-
|
|
27
|
+
request_path = request.path_info.gsub("%20", " ")
|
|
28
|
+
result = resolve_template(request_path, :raise_exceptions => false)
|
|
28
29
|
|
|
29
30
|
if result && Tilt.mappings.has_key?(result[1].to_s)
|
|
30
31
|
extensionless_path, template_engine = result
|
|
@@ -3,6 +3,8 @@ module Middleman::CoreExtensions::Routing
|
|
|
3
3
|
def registered(app)
|
|
4
4
|
app.extend ClassMethods
|
|
5
5
|
|
|
6
|
+
app.set :proxied_paths, {}
|
|
7
|
+
|
|
6
8
|
# Normalize the path and add index if we're looking at a directory
|
|
7
9
|
app.before_processing do
|
|
8
10
|
request.path_info = self.class.path_to_index(request.path)
|
|
@@ -35,23 +37,33 @@ module Middleman::CoreExtensions::Routing
|
|
|
35
37
|
set :layout, old_layout
|
|
36
38
|
end
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
# page "/about.html", :layout => false
|
|
40
|
-
# page "/", :layout => :homepage_layout
|
|
41
|
-
def page(url, options={}, &block)
|
|
40
|
+
def paths_for_url(url)
|
|
42
41
|
url = url.gsub(%r{#{settings.index_file}$}, "")
|
|
43
42
|
url = url.gsub(%r{(\/)$}, "") if url.length > 1
|
|
44
43
|
|
|
45
44
|
paths = [url]
|
|
46
45
|
paths << "#{url}/" if url.length > 1 && url.split("/").last.split('.').length <= 1
|
|
47
46
|
paths << "/#{path_to_index(url)}"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
paths
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# The page method allows the layout to be set on a specific path
|
|
51
|
+
# page "/about.html", :layout => false
|
|
52
|
+
# page "/", :layout => :homepage_layout
|
|
53
|
+
def page(url, options={}, &block)
|
|
51
54
|
has_block = block_given?
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
options[:layout] = settings.layout if options[:layout].nil?
|
|
56
|
+
|
|
57
|
+
if options.has_key?(:proxy)
|
|
58
|
+
settings.proxied_paths[url] = options[:proxy]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
paths_for_url(url).each do |p|
|
|
54
62
|
get(p) do
|
|
63
|
+
if settings.proxied_paths.has_key?(url)
|
|
64
|
+
request.path_info = settings.proxied_paths[url]
|
|
65
|
+
end
|
|
66
|
+
|
|
55
67
|
instance_eval(&block) if has_block
|
|
56
68
|
process_request(options)
|
|
57
69
|
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
module Middleman::Features::AssetHost
|
|
2
2
|
class << self
|
|
3
3
|
def registered(app)
|
|
4
|
-
app.
|
|
4
|
+
app.compass_config do |config|
|
|
5
5
|
if app.asset_host.is_a?(Proc)
|
|
6
|
-
|
|
6
|
+
config.asset_host(&app.asset_host)
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
@@ -41,16 +41,19 @@ module Middleman
|
|
|
41
41
|
app.set :blog_article_template, "article_template"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
if !app.build?
|
|
45
|
+
$stderr.puts "== Blog: #{app.settings.blog_permalink}"
|
|
46
|
+
end
|
|
45
47
|
|
|
46
|
-
app.get(app.
|
|
48
|
+
app.get("/#{app.blog_permalink}") do
|
|
49
|
+
$stderr.puts "*" * 500
|
|
47
50
|
process_request({
|
|
48
|
-
:layout =>
|
|
49
|
-
:layout_engine =>
|
|
51
|
+
:layout => app.blog_layout,
|
|
52
|
+
:layout_engine => app.blog_layout_engine
|
|
50
53
|
})
|
|
51
54
|
|
|
52
55
|
# No need for separator on permalink page
|
|
53
|
-
body body.gsub!(
|
|
56
|
+
body body.gsub!(app.blog_summary_separator, "")
|
|
54
57
|
end
|
|
55
58
|
end
|
|
56
59
|
|
|
@@ -25,16 +25,14 @@ module Middleman::Features::CacheBuster
|
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
app.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
$stderr.puts "WARNING: '#{File.basename(path)}' was not found (or cannot be read) in #{File.dirname(real_path)}"
|
|
37
|
-
end
|
|
28
|
+
app.compass_config do |config|
|
|
29
|
+
config.asset_cache_buster do |path, real_path|
|
|
30
|
+
real_path = real_path.path if real_path.is_a? File
|
|
31
|
+
real_path = real_path.gsub(File.join(app.root, app.build_dir), app.views)
|
|
32
|
+
if File.readable?(real_path)
|
|
33
|
+
File.mtime(real_path).strftime("%s")
|
|
34
|
+
else
|
|
35
|
+
$stderr.puts "WARNING: '#{File.basename(path)}' was not found (or cannot be read) in #{File.dirname(real_path)}"
|
|
38
36
|
end
|
|
39
37
|
end
|
|
40
38
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module Middleman::Features::MinifyCss
|
|
2
2
|
class << self
|
|
3
3
|
def registered(app)
|
|
4
|
-
app.
|
|
5
|
-
|
|
4
|
+
app.compass_config do |config|
|
|
5
|
+
config.output_style = :compressed
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
alias :included :registered
|
data/lib/middleman/guard.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require "guard"
|
|
2
2
|
require "guard/guard"
|
|
3
3
|
require "guard/livereload"
|
|
4
|
+
require "webrick"
|
|
4
5
|
|
|
5
6
|
module Middleman::Guard
|
|
6
7
|
def self.start(options={}, livereload={})
|
|
@@ -53,12 +54,17 @@ module Guard
|
|
|
53
54
|
|
|
54
55
|
private
|
|
55
56
|
def server_start
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
@server_options = {
|
|
58
|
+
:Port => @options[:port],
|
|
59
|
+
:Logger => ::WEBrick::Log.new('/dev/null'),
|
|
60
|
+
:AccessLog => ::WEBrick::Log.new('/dev/null')
|
|
61
|
+
}
|
|
58
62
|
@server_job = fork do
|
|
59
63
|
@server_options[:app] = ::Middleman.server.new
|
|
60
64
|
::Rack::Server.new(@server_options).start
|
|
61
65
|
end
|
|
66
|
+
|
|
67
|
+
puts "== The Middleman is standing watch on port #{@options[:port]}"
|
|
62
68
|
end
|
|
63
69
|
|
|
64
70
|
def server_stop
|
data/lib/middleman/templates.rb
CHANGED
|
@@ -29,14 +29,11 @@ end
|
|
|
29
29
|
# Default template
|
|
30
30
|
require "middleman/templates/default"
|
|
31
31
|
|
|
32
|
-
#
|
|
33
|
-
require "middleman/templates/
|
|
32
|
+
# Blog template
|
|
33
|
+
require "middleman/templates/blog"
|
|
34
34
|
|
|
35
35
|
# HTML5 template
|
|
36
36
|
require "middleman/templates/html5"
|
|
37
37
|
|
|
38
38
|
# Local templates
|
|
39
|
-
require "middleman/templates/local"
|
|
40
|
-
|
|
41
|
-
# Compass templates
|
|
42
|
-
# require "middleman/templates/compass"
|
|
39
|
+
require "middleman/templates/local"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class Middleman::Templates::Blog < Middleman::Templates::Base
|
|
2
|
+
def self.source_root
|
|
3
|
+
File.dirname(__FILE__)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def build_scaffold
|
|
7
|
+
template "blog/config.tt", File.join(location, "config.rb")
|
|
8
|
+
template "blog/config.ru", File.join(location, "config.ru")
|
|
9
|
+
directory "blog/source", File.join(location, "source")
|
|
10
|
+
|
|
11
|
+
empty_directory File.join(location, "source", options[:css_dir])
|
|
12
|
+
empty_directory File.join(location, "source", options[:js_dir])
|
|
13
|
+
empty_directory File.join(location, "source", options[:images_dir])
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Middleman::Templates.register(:blog, Middleman::Templates::Blog)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Rack config
|
|
2
|
+
|
|
3
|
+
# Look for index files in folders like Apache
|
|
4
|
+
require "rack/contrib/try_static"
|
|
5
|
+
use Rack::TryStatic, :root => "build", :urls => %w[/], :try => ['.html', 'index.html', '/index.html']
|
|
6
|
+
|
|
7
|
+
# Cache static assets
|
|
8
|
+
require "rack/contrib/static_cache"
|
|
9
|
+
use Rack::StaticCache, :urls => ['/'], :root => 'build'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
activate :blog
|
|
2
|
+
# set :blog_permalink, ":year/:month/:day/:title.html"
|
|
3
|
+
# set :blog_summary_separator, /READMORE/
|
|
4
|
+
# set :blog_summary_length, 500
|
|
5
|
+
|
|
6
|
+
page "/feed.xml", :layout => false
|
|
7
|
+
|
|
8
|
+
# Build-specific configuration
|
|
9
|
+
configure :build do
|
|
10
|
+
# For example, change the Compass output style for deployment
|
|
11
|
+
# activate :minify_css
|
|
12
|
+
|
|
13
|
+
# Minify Javascript on build
|
|
14
|
+
# activate :minify_javascript
|
|
15
|
+
|
|
16
|
+
# Enable cache buster
|
|
17
|
+
# activate :cache_buster
|
|
18
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
xml.instruct!
|
|
2
|
+
xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do
|
|
3
|
+
xml.title "Blog Name"
|
|
4
|
+
xml.subtitle "Blog subtitle"
|
|
5
|
+
xml.id "http://blog.url.com/"
|
|
6
|
+
xml.link "href" => "http://blog.url.com/"
|
|
7
|
+
xml.link "href" => "http://blog.url.com/feed.xml", "rel" => "self"
|
|
8
|
+
xml.updated data.blog.articles.first.date.to_time.iso8601
|
|
9
|
+
xml.author { xml.name "Blog Author" }
|
|
10
|
+
|
|
11
|
+
data.blog.articles.each do |article|
|
|
12
|
+
xml.entry do
|
|
13
|
+
xml.title article.title
|
|
14
|
+
xml.link "rel" => "alternate", "href" => article.url
|
|
15
|
+
xml.id article.url
|
|
16
|
+
xml.published article.date.to_time.iso8601
|
|
17
|
+
xml.updated article.date.to_time.iso8601
|
|
18
|
+
xml.author { xml.name "Article Author" }
|
|
19
|
+
xml.summary article.summary, "type" => "html"
|
|
20
|
+
xml.content article.body, "type" => "html"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<% data.blog.articles[0...5].each_with_index do |article, i| %>
|
|
2
|
+
<article class="<%= (i == 0) ? 'first' : '' %>">
|
|
3
|
+
<h1><a href="<%= article.url %>"><%= article.title %></a> <span><%= article.date.strftime('%b %e %Y') %></span></h1>
|
|
4
|
+
|
|
5
|
+
<%= article.summary %>
|
|
6
|
+
|
|
7
|
+
<div class="more"><a href="<%= article.url %>">read on »</a></div>
|
|
8
|
+
</article>
|
|
9
|
+
<% end %>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv='X-UA-Compatible' content='IE=edge;chrome=1' />
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
|
|
9
|
+
<div id="main" role="main">
|
|
10
|
+
<% if is_blog_article? %>
|
|
11
|
+
<% content_for :blog_article, yield %>
|
|
12
|
+
<%= partial settings.blog_article_template %>
|
|
13
|
+
<% else %>
|
|
14
|
+
<%= yield %>
|
|
15
|
+
<% end %>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<aside>
|
|
19
|
+
<h2>
|
|
20
|
+
Recent Articles
|
|
21
|
+
<a href="/archives">Archive</a>
|
|
22
|
+
</h2>
|
|
23
|
+
<ol>
|
|
24
|
+
<% data.blog.articles[0...10].each do |article| %>
|
|
25
|
+
<li><a href="<%= article.url %>"><%= article.title %></a> <span><%= article.date.strftime('%b %e') %></span></li>
|
|
26
|
+
<% end %>
|
|
27
|
+
</li>
|
|
28
|
+
</aside>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
class Middleman::Templates::Default < Middleman::Templates::Base
|
|
2
2
|
def self.source_root
|
|
3
|
-
File.
|
|
3
|
+
File.dirname(__FILE__)
|
|
4
4
|
end
|
|
5
5
|
|
|
6
6
|
def build_scaffold
|
|
7
|
-
template "config.tt", File.join(location, "config.rb")
|
|
8
|
-
template "config.ru", File.join(location, "config.ru")
|
|
9
|
-
|
|
7
|
+
template "shared/config.tt", File.join(location, "config.rb")
|
|
8
|
+
template "shared/config.ru", File.join(location, "config.ru")
|
|
9
|
+
copy_file "default/source/index.html.erb", File.join(location, "source/index.html.erb")
|
|
10
|
+
copy_file "default/source/layout.erb", File.join(location, "source/layout.erb")
|
|
10
11
|
empty_directory File.join(location, "source", options[:css_dir])
|
|
12
|
+
copy_file "default/source/stylesheets/site.css.scss", File.join(location, "source", options[:css_dir], "site.css.scss")
|
|
11
13
|
empty_directory File.join(location, "source", options[:js_dir])
|
|
12
14
|
empty_directory File.join(location, "source", options[:images_dir])
|
|
13
15
|
end
|