chopin 0.0.7 → 0.0.8
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/bin/chopin +1 -1
- data/lib/chopin.rb +37 -27
- 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: 0c70a52f652b5dcb36cc2439e958656110ee1fac
|
4
|
+
data.tar.gz: 36a5e98ade67fa135bce10ba6bc86d2752a8b84b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a75e3768ecfdb1dc124b87c712bab77173bcab5bbd7b59441c92b7532331fe8f64f465c023f8abb4603d756499bf1d5c2eb160a44aca81ffac1f74d2efe60439
|
7
|
+
data.tar.gz: 0ac052c43843764c920b556526b3918a75fdcc73dc704ab31ab0f385c8434cccfac716ec8edc9e2dc70c69b312dc9ea86d984ad4bf39519abbf31c19250ab259
|
data/bin/chopin
CHANGED
data/lib/chopin.rb
CHANGED
@@ -6,21 +6,20 @@ require 'redcarpet'
|
|
6
6
|
require 'sass'
|
7
7
|
|
8
8
|
module Chopin
|
9
|
-
def self.copy(source,
|
9
|
+
def self.copy(source, dest_root, layout = nil)
|
10
10
|
@root = source unless @root
|
11
11
|
|
12
12
|
if File.directory?(source)
|
13
|
+
destination = "#{dest_root}/#{File.basename(source).sub(@root, '')}".chomp('/')
|
14
|
+
|
13
15
|
unless Dir.exists?(destination)
|
14
16
|
Dir.mkdir(destination)
|
15
17
|
puts " #{GREEN}Create#{WHITE} #{destination}"
|
16
18
|
end
|
17
19
|
|
18
|
-
source_directory = Dir.new(source)
|
19
|
-
destination_directory = Dir.new(destination)
|
20
|
-
|
21
20
|
layout = "#{source}/layout.erb" if File.exist?("#{source}/layout.erb")
|
22
21
|
|
23
|
-
|
22
|
+
Dir.new(source).each do |file|
|
24
23
|
next if file == '.' || file == '..'
|
25
24
|
|
26
25
|
if file[0] == '.'
|
@@ -33,20 +32,20 @@ module Chopin
|
|
33
32
|
else
|
34
33
|
case File.extname(source)
|
35
34
|
when '.erb'
|
36
|
-
process_erb(source,
|
35
|
+
process_erb(source, dest_root, layout) unless File.basename(source, '.erb') == 'layout'
|
37
36
|
|
38
37
|
when '.md'
|
39
|
-
process_markdown(source,
|
38
|
+
process_markdown(source, dest_root, layout)
|
40
39
|
|
41
40
|
when '.sass'
|
42
|
-
process_sass(source,
|
41
|
+
process_sass(source, dest_root, :sass) unless File.basename(source)[0] == '_'
|
43
42
|
|
44
43
|
when '.scss'
|
45
|
-
process_sass(source,
|
44
|
+
process_sass(source, dest_root, :scss) unless File.basename(source)[0] == '_'
|
46
45
|
|
47
46
|
else
|
48
47
|
puts " #{BLUE}Copy#{WHITE} #{source} -> #{destination}"
|
49
|
-
FileUtils.cp(source,
|
48
|
+
FileUtils.cp(source, dest_root)
|
50
49
|
end
|
51
50
|
end
|
52
51
|
end
|
@@ -59,34 +58,45 @@ module Chopin
|
|
59
58
|
.join('-')
|
60
59
|
end
|
61
60
|
|
62
|
-
def self.process_erb(source,
|
61
|
+
def self.process_erb(source, dest_dir, layout)
|
63
62
|
base_name = File.basename(source, '.erb')
|
64
|
-
|
65
|
-
puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination_html}"
|
63
|
+
destination = "#{dest_dir}/#{base_name}.html"
|
66
64
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
65
|
+
if layout == nil
|
66
|
+
puts " #{PURPLE}Parse#{WHITE} #{source} -> #{destination}"
|
67
|
+
|
68
|
+
File.new(destination, 'w').write(
|
69
|
+
ERB.new(File.read(source)).result(Namespace.new({
|
70
|
+
page_name: get_page_name(source)
|
71
|
+
}).get_binding)
|
72
|
+
)
|
73
|
+
else
|
74
|
+
puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination}"
|
75
|
+
|
76
|
+
render_template(destination, layout, Namespace.new({
|
77
|
+
page_name: get_page_name(source),
|
78
|
+
content: ERB.new(File.read(source)).result
|
79
|
+
}))
|
80
|
+
end
|
71
81
|
end
|
72
82
|
|
73
|
-
def self.process_markdown(source,
|
83
|
+
def self.process_markdown(source, dest_dir, layout)
|
74
84
|
base_name = File.basename(source, '.md')
|
75
|
-
|
76
|
-
puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{
|
85
|
+
destination = "#{dest_dir}/#{base_name}.html"
|
86
|
+
puts " #{PURPLE}Parse#{WHITE} #{source} (into #{layout}) -> #{destination}"
|
77
87
|
|
78
|
-
render_template(
|
88
|
+
render_template(destination, layout, Namespace.new({
|
79
89
|
page_name: get_page_name(source),
|
80
90
|
content: MD.render(File.new(source).read)
|
81
91
|
}))
|
82
92
|
end
|
83
93
|
|
84
|
-
def self.process_sass(source,
|
94
|
+
def self.process_sass(source, dest_dir, type)
|
85
95
|
base_name = File.basename(source, File.extname(source))
|
86
|
-
|
87
|
-
puts " #{CYAN}Convert#{WHITE} #{source} -> #{
|
96
|
+
destination = "#{dest_dir}/#{base_name}.css"
|
97
|
+
puts " #{CYAN}Convert#{WHITE} #{source} -> #{destination}"
|
88
98
|
|
89
|
-
File.new(
|
99
|
+
File.new(destination, 'w').write(
|
90
100
|
Sass::Engine.new(File.new(source).read,
|
91
101
|
load_paths: [File.dirname(source)],
|
92
102
|
syntax: type
|
@@ -94,8 +104,8 @@ module Chopin
|
|
94
104
|
)
|
95
105
|
end
|
96
106
|
|
97
|
-
def self.render_template(
|
98
|
-
File.new(
|
107
|
+
def self.render_template(destination, layout, namespace)
|
108
|
+
File.new(destination, 'w').write(
|
99
109
|
ERB.new(File.read(layout)).result(namespace.get_binding)
|
100
110
|
)
|
101
111
|
end
|