middleman 2.0.2 → 2.0.3
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/.travis.yml +1 -0
- data/CHANGELOG +9 -1
- data/lib/middleman.rb +0 -3
- data/lib/middleman/templates.rb +0 -3
- data/lib/middleman/version.rb +1 -1
- metadata +4 -13
- data/lib/middleman/features/blog.rb +0 -156
- data/lib/middleman/templates/blog.rb +0 -20
- data/lib/middleman/templates/blog/config.ru +0 -9
- data/lib/middleman/templates/blog/config.tt +0 -18
- data/lib/middleman/templates/blog/source/2011/01/01/new-article.html.markdown +0 -6
- data/lib/middleman/templates/blog/source/archives/index.html.erb +0 -10
- data/lib/middleman/templates/blog/source/feed.xml.builder +0 -23
- data/lib/middleman/templates/blog/source/index.html.erb +0 -9
- data/lib/middleman/templates/blog/source/layout.erb +0 -30
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.3
|
2
|
+
=====
|
3
|
+
- Pulled out undocumented Blog feature into its own extension
|
4
|
+
|
5
|
+
2.0.2
|
2
6
|
=====
|
7
|
+
- Fixed Sprockets circular error
|
8
|
+
- Added auto-requiring extensions
|
3
9
|
|
10
|
+
2.0.0
|
11
|
+
=====
|
4
12
|
- Guard-powered auto-reloading of config.rb
|
5
13
|
- Guard LiveReload
|
6
14
|
- Sprockets JS
|
data/lib/middleman.rb
CHANGED
@@ -140,9 +140,6 @@ module Middleman
|
|
140
140
|
# Lorem provides a handful of helpful prototyping methods to generate
|
141
141
|
# words, paragraphs, fake images, names and email addresses.
|
142
142
|
autoload :Lorem, "middleman/features/lorem"
|
143
|
-
|
144
|
-
# Treat project as a blog
|
145
|
-
autoload :Blog, "middleman/features/blog"
|
146
143
|
|
147
144
|
# guard-livereload
|
148
145
|
autoload :LiveReload, "middleman/features/live_reload"
|
data/lib/middleman/templates.rb
CHANGED
data/lib/middleman/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 2.0.
|
9
|
+
- 3
|
10
|
+
version: 2.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Thomas Reynolds
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-20 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rack
|
@@ -569,7 +569,6 @@ files:
|
|
569
569
|
- lib/middleman/features/asset_host.rb
|
570
570
|
- lib/middleman/features/automatic_image_sizes.rb
|
571
571
|
- lib/middleman/features/automatic_image_sizes/fastimage.rb
|
572
|
-
- lib/middleman/features/blog.rb
|
573
572
|
- lib/middleman/features/cache_buster.rb
|
574
573
|
- lib/middleman/features/directory_indexes.rb
|
575
574
|
- lib/middleman/features/lorem.rb
|
@@ -584,14 +583,6 @@ files:
|
|
584
583
|
- lib/middleman/renderers/sass.rb
|
585
584
|
- lib/middleman/renderers/slim.rb
|
586
585
|
- lib/middleman/templates.rb
|
587
|
-
- lib/middleman/templates/blog.rb
|
588
|
-
- lib/middleman/templates/blog/config.ru
|
589
|
-
- lib/middleman/templates/blog/config.tt
|
590
|
-
- lib/middleman/templates/blog/source/2011/01/01/new-article.html.markdown
|
591
|
-
- lib/middleman/templates/blog/source/archives/index.html.erb
|
592
|
-
- lib/middleman/templates/blog/source/feed.xml.builder
|
593
|
-
- lib/middleman/templates/blog/source/index.html.erb
|
594
|
-
- lib/middleman/templates/blog/source/layout.erb
|
595
586
|
- lib/middleman/templates/default.rb
|
596
587
|
- lib/middleman/templates/default/source/index.html.erb
|
597
588
|
- lib/middleman/templates/default/source/layout.erb
|
@@ -1,156 +0,0 @@
|
|
1
|
-
module Middleman
|
2
|
-
module Features
|
3
|
-
module Blog
|
4
|
-
class << self
|
5
|
-
def registered(app)
|
6
|
-
# Include helpers
|
7
|
-
app.helpers Middleman::Features::Blog::Helpers
|
8
|
-
|
9
|
-
app.after_configuration do
|
10
|
-
if !app.settings.respond_to? :blog_permalink
|
11
|
-
app.set :blog_permalink, ":year/:month/:day/:title.html"
|
12
|
-
end
|
13
|
-
|
14
|
-
if !app.settings.respond_to? :blog_taglink
|
15
|
-
app.set :blog_taglink, "tags/:tag.html"
|
16
|
-
end
|
17
|
-
|
18
|
-
if !app.settings.respond_to? :blog_layout
|
19
|
-
app.set :blog_layout, "layout"
|
20
|
-
end
|
21
|
-
|
22
|
-
if !app.settings.respond_to? :blog_summary_separator
|
23
|
-
app.set :blog_summary_separator, /READMORE/
|
24
|
-
end
|
25
|
-
|
26
|
-
if !app.settings.respond_to? :blog_summary_length
|
27
|
-
app.set :blog_summary_length, 250
|
28
|
-
end
|
29
|
-
|
30
|
-
if !app.settings.respond_to? :blog_layout_engine
|
31
|
-
app.set :blog_layout_engine, "erb"
|
32
|
-
end
|
33
|
-
|
34
|
-
if !app.settings.respond_to? :blog_index_template
|
35
|
-
app.set :blog_index_template, "index_template"
|
36
|
-
end
|
37
|
-
|
38
|
-
if !app.settings.respond_to? :blog_article_template
|
39
|
-
app.set :blog_article_template, "article_template"
|
40
|
-
end
|
41
|
-
|
42
|
-
if !app.build?
|
43
|
-
$stderr.puts "== Blog: #{app.settings.blog_permalink}"
|
44
|
-
end
|
45
|
-
|
46
|
-
app.get("/#{app.blog_permalink}") do
|
47
|
-
process_request({
|
48
|
-
:layout => app.blog_layout,
|
49
|
-
:layout_engine => app.blog_layout_engine
|
50
|
-
})
|
51
|
-
|
52
|
-
# No need for separator on permalink page
|
53
|
-
body body.gsub!(app.blog_summary_separator, "")
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
app.before_processing do
|
58
|
-
articles_glob = File.join(app.views, app.settings.blog_permalink.gsub(/(:\w+)/, "*") + ".*")
|
59
|
-
|
60
|
-
articles = Dir[articles_glob].map do |article|
|
61
|
-
template_content = File.read(article)
|
62
|
-
data, content = app.parse_front_matter(template_content)
|
63
|
-
data["date"] = Date.parse(data["date"])
|
64
|
-
|
65
|
-
data["raw"] = content
|
66
|
-
data["url"] = article.gsub(app.views, "").split(".html").first + ".html"
|
67
|
-
|
68
|
-
all_content = Tilt.new(article).render
|
69
|
-
data["body"] = all_content.gsub!(app.settings.blog_summary_separator, "")
|
70
|
-
|
71
|
-
sum = if data["raw"] =~ app.settings.blog_summary_separator
|
72
|
-
data["raw"].split(app.settings.blog_summary_separator).first
|
73
|
-
else
|
74
|
-
data["raw"].match(/(.{1,#{app.settings.blog_summary_length}}.*?)(\n|\Z)/m).to_s
|
75
|
-
end
|
76
|
-
|
77
|
-
engine = app.settings.markdown_engine.new { sum }
|
78
|
-
data["summary"] = engine.render
|
79
|
-
data
|
80
|
-
end.sort { |a, b| b["date"] <=> a["date"] }
|
81
|
-
|
82
|
-
tags = {}
|
83
|
-
articles.each do |article|
|
84
|
-
article["tags"] ||= ""
|
85
|
-
if !article["tags"].empty?
|
86
|
-
tags_array = article["tags"].split(',').map{|t| t.strip}
|
87
|
-
tags_array.each do |tag_title|
|
88
|
-
tag_key = tag_title.parameterize
|
89
|
-
tag_path = blog_taglink.gsub(/(:\w+)/, tag_key)
|
90
|
-
(tags[tag_path] ||= {})["title"] = tag_title
|
91
|
-
tags[tag_path]["ident"] = tag_key
|
92
|
-
(tags[tag_path]["pages"] ||= {})[article["title"]] = article["url"]
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
app.data_content("blog", { :articles => articles, :tags => tags })
|
98
|
-
true
|
99
|
-
end
|
100
|
-
end
|
101
|
-
alias :included :registered
|
102
|
-
end
|
103
|
-
|
104
|
-
module Helpers
|
105
|
-
def is_blog_article?
|
106
|
-
!current_article_title.blank?
|
107
|
-
end
|
108
|
-
|
109
|
-
def blog_title
|
110
|
-
end
|
111
|
-
|
112
|
-
def current_article_date
|
113
|
-
DateTime.parse(current_article_metadata.date)
|
114
|
-
end
|
115
|
-
|
116
|
-
def current_article_title
|
117
|
-
current_article_metadata.title
|
118
|
-
end
|
119
|
-
|
120
|
-
def current_article_metadata
|
121
|
-
data.page
|
122
|
-
end
|
123
|
-
|
124
|
-
def current_article_tags
|
125
|
-
article_tags_hash = {}
|
126
|
-
if is_blog_article? && current_article_metadata.tags
|
127
|
-
article_tags = current_article_metadata.tags.split(',').map{|t| t.strip}
|
128
|
-
article_tags.each do |tag_title|
|
129
|
-
article_tags_hash[tag_title] = self.class.blog_taglink.gsub(/(:\w+)/, tag_title.parameterize)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
article_tags_hash
|
133
|
-
end
|
134
|
-
|
135
|
-
def blog_tags
|
136
|
-
data.blog.tags
|
137
|
-
end
|
138
|
-
|
139
|
-
def current_tag_data
|
140
|
-
data.blog.tags[request.path]
|
141
|
-
end
|
142
|
-
|
143
|
-
def current_tag_articles
|
144
|
-
data.blog.articles.map do |article|
|
145
|
-
article if current_tag_data.pages.has_value?(article.url)
|
146
|
-
end.compact
|
147
|
-
end
|
148
|
-
|
149
|
-
def current_tag_title
|
150
|
-
current_tag_data[:title]
|
151
|
-
end
|
152
|
-
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
@@ -1,20 +0,0 @@
|
|
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
|
-
directory "blog/source", File.join(location, "source")
|
9
|
-
|
10
|
-
empty_directory File.join(location, "source", options[:css_dir])
|
11
|
-
empty_directory File.join(location, "source", options[:js_dir])
|
12
|
-
empty_directory File.join(location, "source", options[:images_dir])
|
13
|
-
end
|
14
|
-
|
15
|
-
def generate_rack
|
16
|
-
template "blog/config.ru", File.join(location, "config.ru")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
Middleman::Templates.register(:blog, Middleman::Templates::Blog)
|
@@ -1,9 +0,0 @@
|
|
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'
|
@@ -1,18 +0,0 @@
|
|
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
|
@@ -1,23 +0,0 @@
|
|
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
|
@@ -1,9 +0,0 @@
|
|
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 %>
|
@@ -1,30 +0,0 @@
|
|
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>
|