dsm-portfolio-plugin 0.0.3 → 0.0.4
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/lib/dsm-portfolio-plugin.rb +43 -54
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e94ebe84ffdf613bb5e753091ed217d408eb02f8
|
4
|
+
data.tar.gz: ab8fa778248ae5b3f190b051431ef844e1fc37f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdcc6ac90783706f9d3b7e62eab8eb3b0086a9e88287d65480b973cbf2e39093a9a93347670700c46138d82799e406244259dfd59a28c7571a1cb43f76cb1d2b
|
7
|
+
data.tar.gz: 68a61a6f882559f2a8dfcf3736f4652a505df1fbca63f773e9594ceb3a896227a2f54900c7035bf71a76a651966092fe2ee2e2ea6ae3f6e7c9b833a9df038b05
|
data/lib/dsm-portfolio-plugin.rb
CHANGED
@@ -2,69 +2,58 @@
|
|
2
2
|
module Jekyll
|
3
3
|
# Define custom commands.
|
4
4
|
module Commands
|
5
|
-
class
|
5
|
+
class Post < Command
|
6
6
|
def self.init_with_program(prog)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
prog.command(:post) do |c|
|
8
|
+
c.syntax 'post NAME'
|
9
|
+
c.description 'Creates a new post with the given NAME'
|
10
|
+
|
11
|
+
c.option 'type', '-t TYPE', '--type TYPE', 'Specify the content type'
|
12
|
+
c.option 'layout', '-t LAYOUT', '--layout LAYOUT', 'Specify the post layout'
|
13
|
+
c.option 'date', '-d DATE', '--date DATE', 'Specify the post date'
|
14
|
+
c.option 'force', '-f', '--force', 'Overwrite a post if it already exists'
|
15
|
+
|
16
|
+
c.action do |args, options|
|
17
|
+
Jekyll::Commands::Post.process(args, options)
|
17
18
|
end
|
19
|
+
end
|
18
20
|
end
|
19
|
-
|
21
|
+
|
20
22
|
def self.process(args, options = {})
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
# For every post-type in subfolder...
|
41
|
-
post_types.each do |file_type|
|
42
|
-
# Format file path.
|
43
|
-
post_path = file_name(name, post_type, ext, date)
|
44
|
-
|
45
|
-
# Create file.
|
46
|
-
File.open(post_path, "w") do |f|
|
47
|
-
# Fill it with appropriate front-matter.
|
48
|
-
f.puts(front_matter(post_type, title))
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
puts "New posts created at ./_posts/#{date.strftime('%Y-%m-%d')}-#{name}.\n"
|
23
|
+
raise ArgumentError.new('You must specify a name.') if args.empty?
|
24
|
+
|
25
|
+
type = options["type"].nil? ? "markdown" : options["type"]
|
26
|
+
layout = options["layout"].nil? ? "post" : options["layout"]
|
27
|
+
|
28
|
+
date = options["date"].nil? ? Time.now : DateTime.parse(options["date"])
|
29
|
+
|
30
|
+
title = args.shift
|
31
|
+
name = title.gsub(' ', '-').downcase
|
32
|
+
|
33
|
+
post_path = file_name(name, type, date)
|
34
|
+
|
35
|
+
raise ArgumentError.new("A post already exists at ./#{post_path}") if File.exist?(post_path) and !options["force"]
|
36
|
+
|
37
|
+
File.open(post_path, "w") do |f|
|
38
|
+
f.puts(front_matter(layout, title))
|
39
|
+
end
|
40
|
+
|
41
|
+
puts "New post created at ./#{post_path}.\n"
|
53
42
|
end
|
54
|
-
|
43
|
+
# Internal: Gets the filename of the draft to be created
|
44
|
+
#
|
55
45
|
# Returns the filename of the draft, as a String
|
56
|
-
def self.file_name(name,
|
57
|
-
|
46
|
+
def self.file_name(name, ext, date)
|
47
|
+
"_posts/#{date.strftime('%Y-%m-%d')}-#{name}.#{ext}"
|
58
48
|
end
|
59
|
-
|
60
|
-
# TODO: Replace this with smart filling from data file and template file.
|
49
|
+
|
61
50
|
def self.front_matter(layout, title)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
51
|
+
"---
|
52
|
+
layout: #{layout}
|
53
|
+
title: #{title}
|
54
|
+
---"
|
66
55
|
end
|
67
|
-
|
56
|
+
end
|
68
57
|
end
|
69
58
|
|
70
59
|
class ProjectGenerator < Generator
|