octopress 3.0.0.rc.1 → 3.0.0.rc.2
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/README.md +4 -2
- data/lib/octopress/commands/new.rb +1 -0
- data/lib/octopress/commands/publish.rb +2 -0
- data/lib/octopress/draft.rb +23 -3
- data/lib/octopress/page.rb +10 -11
- data/lib/octopress/post.rb +4 -2
- data/lib/octopress/version.rb +1 -1
- data/test/expected/_posts/2014-02-10-another-idea.markdown +6 -0
- data/test/expected/_posts/ideas/2014-02-13-yet-another-idea.markdown +6 -0
- data/test/expected/_posts/stuff/2014-02-11-some-stuff.markdown +6 -0
- data/test/expected/_site/2014/02/10/another-idea.html +1 -0
- data/test/expected/_site/2014/02/11/some-stuff.html +1 -0
- data/test/expected/_site/2014/02/13/yet-another-idea.html +1 -0
- data/test/test.rb +40 -0
- metadata +13 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f74a67fb8e1f25191e18ff6f921352954a306a2
|
4
|
+
data.tar.gz: 89ec3dc9c8271c44dd0af7dff544191abc04a7d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2569d763c4ea1b02acfdfcde7a7119c83ba55e00130b9c46f73b8ec439aa821ede08a50b2b8b6b6bb80f92fbbebc4b82c67c1ca361b49ccfef19faf4089231b
|
7
|
+
data.tar.gz: a87bf1eb80851ff26c73404f93b8c101eb35b3184cb9c858719b5946567c7823078b9855d7ebc5ab686294102dd5eaff22e6400f94b88a93520ac858d1fff37b
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ blogs. Pretty sweet, huh?
|
|
7
7
|
|
8
8
|
Add this line to your application's Gemfile:
|
9
9
|
|
10
|
-
gem 'octopress'
|
10
|
+
gem 'octopress', '~> 3.0.0.rc.1'
|
11
11
|
|
12
12
|
And then execute:
|
13
13
|
|
@@ -15,7 +15,7 @@ And then execute:
|
|
15
15
|
|
16
16
|
Or install it yourself as:
|
17
17
|
|
18
|
-
$ gem install octopress
|
18
|
+
$ gem install octopress --pre
|
19
19
|
|
20
20
|
## Basic Usage
|
21
21
|
|
@@ -100,6 +100,7 @@ date: YYYY-MM-DDTHH:MM:SS-00:00
|
|
100
100
|
| `--template PATH` | Use a template from <path> |
|
101
101
|
| `--date DATE` | The date for the post. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) |
|
102
102
|
| `--slug SLUG` | Slug for the new post. |
|
103
|
+
| `--dir DIR` | Create post at _posts/DIR/. |
|
103
104
|
| `--force` | Overwrite exsiting file. |
|
104
105
|
|
105
106
|
### New Page
|
@@ -144,6 +145,7 @@ This will move your draft to the `_posts` directory and rename the file with the
|
|
144
145
|
|:-------------------|:------------------------------------------|
|
145
146
|
| `--date DATE` | The date for the post. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) |
|
146
147
|
| `--slug SLUG` | Change the slug for the new post. |
|
148
|
+
| `--dir DIR` | Create post at _posts/DIR/. |
|
147
149
|
| `--force` | Overwrite exsiting file. |
|
148
150
|
```
|
149
151
|
|
@@ -33,6 +33,7 @@ module Octopress
|
|
33
33
|
c.description 'Add a new post to your Jekyll site.'
|
34
34
|
CommandHelpers.add_page_options c
|
35
35
|
c.option 'slug', '--slug SLUG', 'Use this slug in filename instead of sluggified post title.'
|
36
|
+
c.option 'dir', '--dir DIR', 'Create post at _posts/DIR/.'
|
36
37
|
CommandHelpers.add_common_options c
|
37
38
|
|
38
39
|
c.action do |args, options|
|
@@ -6,11 +6,13 @@ module Octopress
|
|
6
6
|
c.description 'Convert a draft to a normal published post.'
|
7
7
|
c.option 'date', '--date DATE', 'String that is parseable by Time#parse. (default: Time.now.iso8601)'
|
8
8
|
c.option 'force', '--force', 'Overwrite file if it already exists'
|
9
|
+
c.option 'dir', '--dir DIR', 'Create post at _posts/DIR/.'
|
9
10
|
CommandHelpers.add_common_options c
|
10
11
|
|
11
12
|
c.action do |args, options|
|
12
13
|
abort "You must specify a path." if args.empty?
|
13
14
|
options['path'] = args.first
|
15
|
+
options['type'] = 'post from draft'
|
14
16
|
Draft.new(options).publish
|
15
17
|
end
|
16
18
|
end
|
data/lib/octopress/draft.rb
CHANGED
@@ -2,8 +2,15 @@ module Octopress
|
|
2
2
|
class Draft < Post
|
3
3
|
|
4
4
|
def set_default_options
|
5
|
-
|
6
|
-
@options['
|
5
|
+
@options['type'] ||= 'draft'
|
6
|
+
@options['layout'] = @config['post_layout']
|
7
|
+
@options['dir'] ||= ''
|
8
|
+
@options['extension'] ||= @config['post_ext']
|
9
|
+
@options['template'] ||= @config['post_template']
|
10
|
+
|
11
|
+
if @options['type'] == 'draft'
|
12
|
+
@options['date'] = convert_date @options['date']
|
13
|
+
end
|
7
14
|
end
|
8
15
|
|
9
16
|
def path
|
@@ -21,12 +28,15 @@ module Octopress
|
|
21
28
|
# and options passed to the publish command
|
22
29
|
#
|
23
30
|
def publish
|
31
|
+
@options['date'] ||= read_draft_date
|
32
|
+
@options['date'] = convert_date @options['date']
|
24
33
|
|
25
34
|
post_options = {
|
26
35
|
'title' => read_draft_title,
|
27
36
|
'slug' => publish_slug,
|
28
37
|
'date' => @options['date'],
|
29
38
|
'content' => read_draft_content,
|
39
|
+
'dir' => @options['dir'],
|
30
40
|
'type' => 'post from draft'
|
31
41
|
}
|
32
42
|
|
@@ -64,10 +74,20 @@ module Octopress
|
|
64
74
|
read.match(/title:\s+(.+)?$/)[1]
|
65
75
|
end
|
66
76
|
|
77
|
+
# read_draft_date
|
78
|
+
#
|
79
|
+
def read_draft_date
|
80
|
+
read.match(/date:\s+(.+)?$/)[1]
|
81
|
+
end
|
82
|
+
|
67
83
|
# Get content from draft post file
|
68
84
|
#
|
69
85
|
def read_draft_content
|
70
|
-
|
86
|
+
if @options['date']
|
87
|
+
read.sub(/date:\s+.+?$/, "date: #{@options['date']}")
|
88
|
+
else
|
89
|
+
read
|
90
|
+
end
|
71
91
|
end
|
72
92
|
|
73
93
|
end
|
data/lib/octopress/page.rb
CHANGED
@@ -62,23 +62,22 @@ module Octopress
|
|
62
62
|
|
63
63
|
def set_default_options
|
64
64
|
@options['type'] ||= 'page'
|
65
|
-
@options['layout'] =
|
65
|
+
@options['layout'] = @config['page_layout']
|
66
66
|
@options['date'] = convert_date @options['date']
|
67
67
|
@options['extension'] ||= @config['page_ext']
|
68
68
|
@options['template'] ||= @config['page_template']
|
69
69
|
end
|
70
70
|
|
71
71
|
def convert_date(date)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
end
|
72
|
+
date ||= 'now'
|
73
|
+
if date == 'now'
|
74
|
+
@options['date'] = Time.now.iso8601
|
75
|
+
else
|
76
|
+
begin
|
77
|
+
Time.parse(date.to_s).iso8601
|
78
|
+
rescue => error
|
79
|
+
puts 'Could not parse date. Try formatting it like YYYY-MM-DD HH:MM'
|
80
|
+
abort error.message
|
82
81
|
end
|
83
82
|
end
|
84
83
|
end
|
data/lib/octopress/post.rb
CHANGED
@@ -4,15 +4,17 @@ module Octopress
|
|
4
4
|
def set_default_options
|
5
5
|
@options['type'] ||= 'post'
|
6
6
|
@options['layout'] = @config['post_layout']
|
7
|
-
@options['date'] ||= Time.now.iso8601
|
8
7
|
@options['date'] = convert_date @options['date']
|
9
8
|
@options['extension'] ||= @config['post_ext']
|
10
9
|
@options['template'] ||= @config['post_template']
|
10
|
+
@options['dir'] ||= ''
|
11
11
|
end
|
12
12
|
|
13
13
|
def path
|
14
14
|
name = "#{date_slug}-#{title_slug}.#{extension}"
|
15
|
-
File.join(source, '_posts',
|
15
|
+
dir = File.join(source, '_posts', @options['dir'])
|
16
|
+
FileUtils.mkdir_p dir
|
17
|
+
File.join(dir, name)
|
16
18
|
end
|
17
19
|
|
18
20
|
# Returns a string which is url compatible.
|
data/lib/octopress/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
<div class='post'>Another Idea</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class='post'>Some Stuff</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class='post'>Yet Another Idea</div>
|
data/test/test.rb
CHANGED
@@ -42,6 +42,14 @@ FileUtils.cd('test-site') do |dir|
|
|
42
42
|
expect: '_posts/2014-03-13-awesome.markdown',
|
43
43
|
})
|
44
44
|
|
45
|
+
# Add a new post in a subdirectory
|
46
|
+
#
|
47
|
+
test({
|
48
|
+
desc: 'Add a new post',
|
49
|
+
cmd: 'octopress new post "Some stuff" --dir stuff --date "2014-02-11 05:10 -0000"',
|
50
|
+
expect: '_posts/stuff/2014-02-11-some-stuff.markdown',
|
51
|
+
})
|
52
|
+
|
45
53
|
# Add a draft
|
46
54
|
#
|
47
55
|
test({
|
@@ -50,6 +58,14 @@ FileUtils.cd('test-site') do |dir|
|
|
50
58
|
expect: '_drafts/stupid-idea.markdown',
|
51
59
|
})
|
52
60
|
|
61
|
+
# Add another draft
|
62
|
+
#
|
63
|
+
test({
|
64
|
+
desc: 'Add another draft',
|
65
|
+
cmd: 'octopress new draft "Another idea" --date "2014-02-10 15:20 -0000"',
|
66
|
+
expect: '_drafts/another-idea.markdown',
|
67
|
+
})
|
68
|
+
|
53
69
|
# Add a draft with a slug
|
54
70
|
#
|
55
71
|
test({
|
@@ -58,6 +74,22 @@ FileUtils.cd('test-site') do |dir|
|
|
58
74
|
expect: '_drafts/idea.markdown',
|
59
75
|
})
|
60
76
|
|
77
|
+
# Add yet another draft
|
78
|
+
#
|
79
|
+
test({
|
80
|
+
desc: 'Add yet another draft',
|
81
|
+
cmd: 'octopress new draft "yet another idea" --date "2014-02-13 15:20 -0000"',
|
82
|
+
expect: '_drafts/yet-another-idea.markdown',
|
83
|
+
})
|
84
|
+
|
85
|
+
# Publish a draft
|
86
|
+
#
|
87
|
+
test({
|
88
|
+
desc: 'Publish a draft',
|
89
|
+
cmd: 'octopress publish _drafts/another-idea.markdown',
|
90
|
+
expect: '_posts/2014-02-10-another-idea.markdown',
|
91
|
+
})
|
92
|
+
|
61
93
|
# Publish a draft with a date
|
62
94
|
#
|
63
95
|
test({
|
@@ -66,6 +98,14 @@ FileUtils.cd('test-site') do |dir|
|
|
66
98
|
expect: '_posts/2014-03-11-idea.markdown',
|
67
99
|
})
|
68
100
|
|
101
|
+
# Publish a draft in a dir
|
102
|
+
#
|
103
|
+
test({
|
104
|
+
desc: 'Publish a draft in a dir',
|
105
|
+
cmd: 'octopress publish _drafts/yet-another-idea.markdown --dir ideas',
|
106
|
+
expect: '_posts/ideas/2014-02-13-yet-another-idea.markdown',
|
107
|
+
})
|
108
|
+
|
69
109
|
# Add a page
|
70
110
|
#
|
71
111
|
test({
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.rc.
|
4
|
+
version: 3.0.0.rc.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
@@ -123,9 +123,15 @@ files:
|
|
123
123
|
- test/expected/_layouts/page.html
|
124
124
|
- test/expected/_layouts/post.html
|
125
125
|
- test/expected/_octopress.yml
|
126
|
+
- test/expected/_posts/2014-02-10-another-idea.markdown
|
126
127
|
- test/expected/_posts/2014-03-11-idea.markdown
|
127
128
|
- test/expected/_posts/2014-03-12-awesome-stuff.markdown
|
128
129
|
- test/expected/_posts/2014-03-13-awesome.markdown
|
130
|
+
- test/expected/_posts/ideas/2014-02-13-yet-another-idea.markdown
|
131
|
+
- test/expected/_posts/stuff/2014-02-11-some-stuff.markdown
|
132
|
+
- test/expected/_site/2014/02/10/another-idea.html
|
133
|
+
- test/expected/_site/2014/02/11/some-stuff.html
|
134
|
+
- test/expected/_site/2014/02/13/yet-another-idea.html
|
129
135
|
- test/expected/_site/2014/03/11/idea.html
|
130
136
|
- test/expected/_site/2014/03/12/awesome-stuff.html
|
131
137
|
- test/expected/_site/2014/03/13/awesome.html
|
@@ -171,9 +177,15 @@ test_files:
|
|
171
177
|
- test/expected/_layouts/page.html
|
172
178
|
- test/expected/_layouts/post.html
|
173
179
|
- test/expected/_octopress.yml
|
180
|
+
- test/expected/_posts/2014-02-10-another-idea.markdown
|
174
181
|
- test/expected/_posts/2014-03-11-idea.markdown
|
175
182
|
- test/expected/_posts/2014-03-12-awesome-stuff.markdown
|
176
183
|
- test/expected/_posts/2014-03-13-awesome.markdown
|
184
|
+
- test/expected/_posts/ideas/2014-02-13-yet-another-idea.markdown
|
185
|
+
- test/expected/_posts/stuff/2014-02-11-some-stuff.markdown
|
186
|
+
- test/expected/_site/2014/02/10/another-idea.html
|
187
|
+
- test/expected/_site/2014/02/11/some-stuff.html
|
188
|
+
- test/expected/_site/2014/02/13/yet-another-idea.html
|
177
189
|
- test/expected/_site/2014/03/11/idea.html
|
178
190
|
- test/expected/_site/2014/03/12/awesome-stuff.html
|
179
191
|
- test/expected/_site/2014/03/13/awesome.html
|