jekyllpress 1.0.0 → 1.1.0
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.
- checksums.yaml +4 -4
- data/.rspec +1 -1
- data/jekyllpress.gemspec +1 -1
- data/lib/jekyllpress/version.rb +1 -1
- data/lib/jekyllpress.rb +13 -10
- data/spec/lib/jekyllpress_spec.rb +30 -10
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0d47d00a72a498e56cb38afbc882595b0f3d8d4
|
4
|
+
data.tar.gz: 406dfeb00c94677776c785ed4ca4bbd671f75835
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8adf1efd5f87f1e2d91755d0e92eb1d492cb2375b285ccda81d389767288f3b542a26d15b22b05175a432cf392f6104f51b858c6514b2ab69637b0f9a378732
|
7
|
+
data.tar.gz: d652cea47db6747ce0308d6a872067ab76b7fc2c311022937ac91ab7f58a6ffc1d545301b8abd09eeef202b60b6d83f14affc61d007add7e93478766b7013794
|
data/.rspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
--format documentation
|
2
|
-
--color
|
2
|
+
--no-color
|
data/jekyllpress.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency "thor", ">= 0.19"
|
21
|
-
spec.add_dependency "jekyll"
|
21
|
+
spec.add_dependency "jekyll"
|
22
22
|
spec.add_dependency "stringex", ">= 2"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
data/lib/jekyllpress/version.rb
CHANGED
data/lib/jekyllpress.rb
CHANGED
@@ -28,17 +28,16 @@ module Jekyllpress
|
|
28
28
|
'---
|
29
29
|
layout: <%= @layout %>
|
30
30
|
title: "<%= @title %>"
|
31
|
-
date: <%=
|
31
|
+
date: <%= @date %> <%= @time %>
|
32
32
|
categories: <%= Array(@categories) %>
|
33
33
|
tags: <%= Array(@tags) %>
|
34
34
|
source: "<%= @url %>"
|
35
35
|
---
|
36
36
|
'.gsub(/^\s*/,''))
|
37
|
-
create_file(File.join(source, template_dir, new_page_template),
|
37
|
+
create_file(File.join(source, template_dir, new_page_template),
|
38
38
|
'---
|
39
39
|
layout: <%= @layout %>
|
40
40
|
title: "<%= @title %>"
|
41
|
-
date: <%= Time.now.strftime("%Y-%m-%d %H:%M") %>
|
42
41
|
---
|
43
42
|
'.gsub(/^\s*/,''))
|
44
43
|
[__method__, source, template_dir, new_post_template, new_page_template]
|
@@ -51,24 +50,28 @@ module Jekyllpress
|
|
51
50
|
method_option :layout, :desc => "specify an alternate layout for the post", :type => :string, :aliases => %w[-l], :default => "post"
|
52
51
|
method_option :url, :desc => "source URL for blog post", :type => :string
|
53
52
|
method_option :template, :desc => "specify an alternate template to use for the post", :type => :string
|
53
|
+
method_option :date, :desc => "provide an alternate date for the post", :type => :string, :default => Date.today.iso8601
|
54
|
+
method_option :time, :desc => "provide an alternate time of day for the post", :type => :string, :default => Time.now.strftime("%H:%M")
|
54
55
|
def new_post(title="")
|
55
56
|
check_templates
|
56
57
|
@title = title.to_s
|
57
58
|
@title = ask("Title for your post: ") if @title.empty?
|
58
59
|
|
60
|
+
@date = options.fetch("date", Date.today.iso8601)
|
61
|
+
@time = options.fetch("time", Time.now.strftime("%H:%M"))
|
59
62
|
@categories = options.fetch("categories", [])
|
60
63
|
@tags = options.fetch("tags", [])
|
61
64
|
@layout = options[:layout]
|
62
65
|
@url = options[:url]
|
63
66
|
@template = options.fetch("template") { new_post_template }
|
64
|
-
|
67
|
+
|
65
68
|
with_config do |config|
|
66
69
|
check_templates
|
67
|
-
@filename = destination(source, posts_dir, post_filename(title))
|
70
|
+
@filename = destination(source, posts_dir, post_filename(@title, @date))
|
68
71
|
|
69
72
|
template(File.join(template_dir, @template), @filename)
|
70
73
|
|
71
|
-
[__method__, @title, @filename, @categories, @tags, @layout, @url, @template]
|
74
|
+
[__method__, @title, @date, @time, @filename, @categories, @tags, @layout, @url, @template]
|
72
75
|
end
|
73
76
|
end
|
74
77
|
|
@@ -84,7 +87,7 @@ module Jekyllpress
|
|
84
87
|
raise "location can not be an absolute path: #{location}" if location[0] == ?/
|
85
88
|
|
86
89
|
with_config do |config|
|
87
|
-
@filename = destination(source, location, page_dirname(title), index_name)
|
90
|
+
@filename = destination(source, location, page_dirname(@title), index_name)
|
88
91
|
|
89
92
|
template(File.join(template_dir, new_page_template), @filename)
|
90
93
|
|
@@ -104,7 +107,7 @@ module Jekyllpress
|
|
104
107
|
with_posts({"permalink" => permalink_template}) do |post|
|
105
108
|
if post.data.has_key?("redirect_from") && !force_redirect
|
106
109
|
say "skipping #{post.name} - redirect_from detected"
|
107
|
-
next
|
110
|
+
next
|
108
111
|
end
|
109
112
|
|
110
113
|
time_now = Time.now
|
@@ -179,8 +182,8 @@ redirect_from:
|
|
179
182
|
jekyll_config['source']
|
180
183
|
end
|
181
184
|
|
182
|
-
def post_filename(title)
|
183
|
-
"#{
|
185
|
+
def post_filename(title, date=Date.today.iso8601)
|
186
|
+
"#{date}-#{title.to_url}.#{new_ext}"
|
184
187
|
end
|
185
188
|
|
186
189
|
def page_dirname(title)
|
@@ -7,7 +7,7 @@ def kill_jekyll
|
|
7
7
|
# I'm not altogether sure why I have to do this, but apparently
|
8
8
|
# the way thor, rspec, and jekyll all meld, something goes haywire.
|
9
9
|
$".delete_if{|x| x.match(%r[(/gems/jekyll-.+/lib/jekyll)])}
|
10
|
-
# run `load 'jekyllpress.rb'` in each test setup where you have a
|
10
|
+
# run `load 'jekyllpress.rb'` in each test setup where you have a
|
11
11
|
# jekyll test directory to work with
|
12
12
|
end
|
13
13
|
|
@@ -22,7 +22,7 @@ describe "my Jekyllpress Thor script" do
|
|
22
22
|
it {expect(Jekyllpress::App.start(%w[version])).to include(Jekyllpress::VERSION)}
|
23
23
|
it {expect(Jekyllpress::App.start(%w[-V])).to include(Jekyllpress::VERSION)}
|
24
24
|
it {expect(Jekyllpress::App.start(%w[--version])).to include(Jekyllpress::VERSION)}
|
25
|
-
end
|
25
|
+
end
|
26
26
|
|
27
27
|
describe ":new_post" do
|
28
28
|
before(:all) do
|
@@ -43,13 +43,31 @@ describe "my Jekyllpress Thor script" do
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
context "when using all defaults" do
|
47
|
+
before(:all) do
|
48
|
+
@action, @title, @date, @time, @filename, @categories, @tags, @layout, @url, @template =
|
49
|
+
Jekyllpress::App.start(%w[new_post Using\ The\ Defaults])
|
50
|
+
end
|
51
|
+
it {expect(@action).to eq :new_post}
|
52
|
+
it {expect(@title).to eq "Using The Defaults"}
|
53
|
+
it {expect(@date).to eq Date.today.iso8601}
|
54
|
+
it {expect(@categories).to eq []}
|
55
|
+
it {expect(@tags).to eq []}
|
56
|
+
it {expect(@template).to eq 'new_post.markdown'}
|
57
|
+
it {expect(@filename).to be_a String}
|
58
|
+
it {expect(@filename).not_to be_empty}
|
59
|
+
it {expect(@filename).to match %r{/_posts/.*-using-the-defaults\.markdown} }
|
60
|
+
end
|
61
|
+
|
46
62
|
context "when using the default template" do
|
47
63
|
before(:all) do
|
48
|
-
@action, @title, @filename, @categories, @tags, @layout, @url, @template = Jekyllpress::App.start(%w[new_post A\ New\ Post -c one two three -t able baker charlie -l post2 --url=https://github.com/tamouse])
|
64
|
+
@action, @title, @date, @time, @filename, @categories, @tags, @layout, @url, @template = Jekyllpress::App.start(%w[new_post A\ New\ Post --date=2001-01-01 --time=11:15 -c one two three -t able baker charlie -l post2 --url=https://github.com/tamouse])
|
49
65
|
end
|
50
66
|
|
51
67
|
it {expect(@action).to eq :new_post}
|
52
68
|
it {expect(@title).to eq "A New Post"}
|
69
|
+
it {expect(@date).to eq '2001-01-01'}
|
70
|
+
it {expect(@time).to eq '11:15'}
|
53
71
|
it {expect(@categories).to eq %w[one two three]}
|
54
72
|
it {expect(@tags).to eq %w[able baker charlie]}
|
55
73
|
it {expect(@layout).to eq 'post2'}
|
@@ -57,7 +75,7 @@ describe "my Jekyllpress Thor script" do
|
|
57
75
|
it {expect(@template).to eq 'new_post.markdown'}
|
58
76
|
it {expect(@filename).to be_a String}
|
59
77
|
it {expect(@filename).not_to be_empty}
|
60
|
-
it {expect(@filename).to include("/_posts
|
78
|
+
it {expect(@filename).to include("/_posts/2001-01-01-a-new-post.markdown")}
|
61
79
|
end
|
62
80
|
|
63
81
|
|
@@ -77,12 +95,14 @@ EOF
|
|
77
95
|
|
78
96
|
|
79
97
|
File.write(alt_template_file, alt_template)
|
80
|
-
|
81
|
-
@action, @title, @filename, @categories, @tags, @layout, @url, @template = Jekyllpress::App.start(%w[new_post A\ New\ Post\ With\ Alt\ Template -c one two three -t able baker charlie -l link --url=https://github.com/tamouse --template=alt_post.markdown])
|
98
|
+
|
99
|
+
@action, @title, @date, @time, @filename, @categories, @tags, @layout, @url, @template = Jekyllpress::App.start(%w[new_post A\ New\ Post\ With\ Alt\ Template -c one two three -t able baker charlie -l link --url=https://github.com/tamouse --template=alt_post.markdown --date=2001-01-01 --time=11:15])
|
82
100
|
end
|
83
101
|
|
84
102
|
it {expect(@action).to eq :new_post}
|
85
103
|
it {expect(@title).to eq "A New Post With Alt Template"}
|
104
|
+
it {expect(@date).to eq '2001-01-01'}
|
105
|
+
it {expect(@time).to eq '11:15'}
|
86
106
|
it {expect(@categories).to eq %w[one two three]}
|
87
107
|
it {expect(@tags).to eq %w[able baker charlie]}
|
88
108
|
it {expect(@layout).to eq 'link'}
|
@@ -90,7 +110,7 @@ EOF
|
|
90
110
|
it {expect(@template).to eq "alt_post.markdown"}
|
91
111
|
it {expect(@filename).to be_a String}
|
92
112
|
it {expect(@filename).not_to be_empty}
|
93
|
-
it {expect(@filename).to include("/_posts
|
113
|
+
it {expect(@filename).to include("/_posts/2001-01-01-a-new-post-with-alt-template.markdown")}
|
94
114
|
end
|
95
115
|
end
|
96
116
|
|
@@ -203,9 +223,9 @@ EOF
|
|
203
223
|
load 'jekyllpress.rb'
|
204
224
|
File.open(File.join("_posts","2013-12-31-an-old-post.markdown"), 'w') do |post|
|
205
225
|
frontmatter = {
|
206
|
-
"title" => "An old post",
|
226
|
+
"title" => "An old post",
|
207
227
|
"date" => "2013-12-31 12:31",
|
208
|
-
"layout" => "post",
|
228
|
+
"layout" => "post",
|
209
229
|
"redirect_from" => Array("/oldsite/2013/12/31/an-old-post/")
|
210
230
|
}
|
211
231
|
post.puts frontmatter.to_yaml
|
@@ -236,7 +256,7 @@ EOF
|
|
236
256
|
expect(@posts.count).to eq(1)
|
237
257
|
@posts.each do |post|
|
238
258
|
post_content = File.read post[:file]
|
239
|
-
expect(post_content).to match(%r{^redirect_from:$})
|
259
|
+
expect(post_content).to match(%r{^redirect_from:$})
|
240
260
|
expect(post_content).to match(%r{^ - /BLOG/})
|
241
261
|
end
|
242
262
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyllpress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tamara Temple
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: stringex
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.4.
|
211
|
+
rubygems_version: 2.4.5
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: Thor utility to do neat jekyll stuff.
|