jekyll-press 0.0.1 → 0.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.
- data/LICENSE +1 -1
- data/{README.md → Readme.md} +10 -0
- data/lib/jekyll-press/version.rb +1 -1
- data/lib/jekyll-press.rb +39 -19
- metadata +3 -3
data/LICENSE
CHANGED
data/{README.md → Readme.md}
RENAMED
@@ -47,6 +47,16 @@ Create the following plugin in your projects _plugins directory.
|
|
47
47
|
require 'jekyll-press'
|
48
48
|
```
|
49
49
|
|
50
|
+
### Settings
|
51
|
+
If you want to exclude some jekyll pages from processing (for example `atom.xml`) you can add following to the `_config.yml`:
|
52
|
+
|
53
|
+
```yaml
|
54
|
+
jekyll-press:
|
55
|
+
exclude: 'atom.xml'
|
56
|
+
```
|
57
|
+
|
58
|
+
`exclude` can be file name, glob pattern or array of file names and glob patterns.
|
59
|
+
|
50
60
|
## TODO
|
51
61
|
- Minify JPEGs with [`jpegtran`](/cmer/jpegtran) or `smush.it` ([smusher](/grosser/smusher))
|
52
62
|
- Minify PNGs with [`optipng`](/martinkozak/optipng) or `smush.it` ([smusher](/grosser/smusher))
|
data/lib/jekyll-press/version.rb
CHANGED
data/lib/jekyll-press.rb
CHANGED
@@ -6,6 +6,24 @@ require 'uglifier'
|
|
6
6
|
|
7
7
|
module Jekyll
|
8
8
|
module Compressor
|
9
|
+
def exclude?(dest, dest_path)
|
10
|
+
res = false
|
11
|
+
file_name = dest_path.slice(dest.length+1..dest_path.length)
|
12
|
+
exclude = @site.config['jekyll-press'] && @site.config['jekyll-press']['exclude']
|
13
|
+
if exclude
|
14
|
+
if exclude.is_a? String
|
15
|
+
exclude = [exclude]
|
16
|
+
end
|
17
|
+
exclude.each do |e|
|
18
|
+
if e == file_name || File.fnmatch(e, file_name)
|
19
|
+
res = true
|
20
|
+
break
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
res
|
25
|
+
end
|
26
|
+
|
9
27
|
def output_file(dest, content)
|
10
28
|
FileUtils.mkdir_p(File.dirname(dest))
|
11
29
|
File.open(dest, 'w') do |f|
|
@@ -14,25 +32,23 @@ module Jekyll
|
|
14
32
|
end
|
15
33
|
|
16
34
|
def output_html(path, content)
|
17
|
-
|
35
|
+
output_file(path, HtmlPress.press(content))
|
18
36
|
end
|
19
37
|
|
20
38
|
def output_js(path, content)
|
21
|
-
|
39
|
+
output_file(path, Uglifier.new.compile(content))
|
22
40
|
rescue Uglifier::Error => e
|
23
|
-
warn "parse error
|
24
|
-
warn "
|
25
|
-
|
26
|
-
self.output_file(path, content)
|
41
|
+
warn "Warning: parse error in #{path}. Don't panic - copying initial file"
|
42
|
+
warn "Details: #{e.message.strip}"
|
43
|
+
output_file(path, content)
|
27
44
|
end
|
28
45
|
|
29
46
|
def output_css(path, content)
|
30
|
-
|
47
|
+
output_file(path, CssPress.press(content))
|
31
48
|
rescue Racc::ParseError => e
|
32
|
-
warn "parse error
|
33
|
-
warn "
|
34
|
-
|
35
|
-
self.output_file(path, content)
|
49
|
+
warn "Warning: parse error in #{path}. Don't panic - copying initial file"
|
50
|
+
warn "Details: #{e.message.strip}"
|
51
|
+
output_file(path, content)
|
36
52
|
end
|
37
53
|
end
|
38
54
|
|
@@ -40,8 +56,8 @@ module Jekyll
|
|
40
56
|
include Compressor
|
41
57
|
|
42
58
|
def write(dest)
|
43
|
-
dest_path =
|
44
|
-
|
59
|
+
dest_path = destination(dest)
|
60
|
+
output_html(dest_path, output)
|
45
61
|
end
|
46
62
|
end
|
47
63
|
|
@@ -49,8 +65,12 @@ module Jekyll
|
|
49
65
|
include Compressor
|
50
66
|
|
51
67
|
def write(dest)
|
52
|
-
dest_path =
|
53
|
-
|
68
|
+
dest_path = destination(dest)
|
69
|
+
if exclude?(dest, dest_path)
|
70
|
+
output_file(dest_path, output)
|
71
|
+
else
|
72
|
+
output_html(dest_path, output)
|
73
|
+
end
|
54
74
|
end
|
55
75
|
end
|
56
76
|
|
@@ -63,9 +83,9 @@ module Jekyll
|
|
63
83
|
end
|
64
84
|
|
65
85
|
def write(dest)
|
66
|
-
dest_path =
|
86
|
+
dest_path = destination(dest)
|
67
87
|
|
68
|
-
return false if File.exist?(dest_path) and !
|
88
|
+
return false if File.exist?(dest_path) and !modified?
|
69
89
|
@@mtimes[path] = mtime
|
70
90
|
|
71
91
|
case File.extname(dest_path)
|
@@ -73,13 +93,13 @@ module Jekyll
|
|
73
93
|
if dest_path =~ /.min.js$/
|
74
94
|
copy_file(path, dest_path)
|
75
95
|
else
|
76
|
-
|
96
|
+
output_js(dest_path, File.read(path))
|
77
97
|
end
|
78
98
|
when '.css'
|
79
99
|
if dest_path =~ /.min.css$/
|
80
100
|
copy_file(path, dest_path)
|
81
101
|
else
|
82
|
-
|
102
|
+
output_css(dest_path, File.read(path))
|
83
103
|
end
|
84
104
|
else
|
85
105
|
copy_file(path, dest_path)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-press
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jekyll
|
@@ -86,8 +86,8 @@ files:
|
|
86
86
|
- .gitignore
|
87
87
|
- Gemfile
|
88
88
|
- LICENSE
|
89
|
-
- README.md
|
90
89
|
- Rakefile
|
90
|
+
- Readme.md
|
91
91
|
- jekyll-press.gemspec
|
92
92
|
- lib/jekyll-press.rb
|
93
93
|
- lib/jekyll-press/version.rb
|