octopress-ink 1.0.0.rc.56 → 1.0.0.rc.57
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/CHANGELOG.md +4 -0
- data/assets/docs/working-with-plugins.markdown +2 -2
- data/lib/octopress-ink/plugin/bootstrap.rb +9 -4
- data/lib/octopress-ink/plugin_asset_pipeline.rb +36 -35
- data/lib/octopress-ink/plugins.rb +8 -5
- data/lib/octopress-ink/tags/category_tag.rb +16 -2
- data/lib/octopress-ink/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51af822022c99cfea1c9f14ffa3b32188ab4235b
|
4
|
+
data.tar.gz: 1cc82f18bbd1ec90cc13979297801833cb0f6880
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64972ef01166bfde776d24a5364a4c0a3e4556cf238bc089f4bfec540494e23fad6113fbffad977b18682f0f618a2e7be6b5f3ce3c10efa21fdd64266a0b26f0
|
7
|
+
data.tar.gz: 78dcbe0ed983b969d682f394106d8fab3fbdafe5eb9193bc97686317d840d28601ada861a704b2e515de14119f16a1d10252f58c34aeb1af4b5f98adab248d60
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 1.0.0 RC57 - 2015-03-27
|
4
|
+
- Fix: Now asset pipeline is properly reset during jekyll watch.
|
5
|
+
- Minor: Added caching to speed up category and tag liquid tags.
|
6
|
+
|
3
7
|
### 1.0.0 RC56 - 2015-03-22
|
4
8
|
- Fix: Tag links and lists weren't being ouput
|
5
9
|
- Fix: Tags and categories would throw errors if tags were used but plugin
|
@@ -10,10 +10,10 @@ If you were going to install the [octopress-codefence](https://github.com/octopr
|
|
10
10
|
|
11
11
|
#### Using Bundler
|
12
12
|
|
13
|
-
If you are using [Bundler](http://bundler.io), simply add it to your Gemfile in the `:
|
13
|
+
If you are using [Bundler](http://bundler.io), simply add it to your Gemfile in the `:jekyll_plugins` group and run `bundle`. Octopress will automatically load the plugin when you build your site.
|
14
14
|
|
15
15
|
```ruby
|
16
|
-
group :
|
16
|
+
group :jekyll_plugins do
|
17
17
|
gem 'octopress-codefence'
|
18
18
|
end
|
19
19
|
```
|
@@ -10,12 +10,17 @@ module Octopress
|
|
10
10
|
|
11
11
|
class << self
|
12
12
|
attr_reader :pages, :categories, :tags, :feeds
|
13
|
+
attr_accessor :tag_links, :category_links, :tag_list, :category_list
|
13
14
|
|
14
15
|
def reset
|
15
|
-
@pages
|
16
|
-
@categories
|
17
|
-
@tags
|
18
|
-
@feeds
|
16
|
+
@pages = {}
|
17
|
+
@categories = {}
|
18
|
+
@tags = {}
|
19
|
+
@feeds = {}
|
20
|
+
@tag_links = {}
|
21
|
+
@tag_list = {}
|
22
|
+
@category_links = {}
|
23
|
+
@category_list = {}
|
19
24
|
end
|
20
25
|
|
21
26
|
def page(lang, type, key)
|
@@ -1,10 +1,21 @@
|
|
1
1
|
module Octopress
|
2
2
|
module Ink
|
3
3
|
module PluginAssetPipeline
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def reset
|
7
|
+
@sass_converter = nil
|
8
|
+
@combined_stylesheets = nil
|
9
|
+
@stylesheets = nil
|
10
|
+
@javascripts = nil
|
11
|
+
@uglify_settings = nil
|
12
|
+
@combined_js = ''
|
13
|
+
@combined_stylesheets = nil
|
14
|
+
end
|
4
15
|
|
5
16
|
# Compile CSS to take advantage of Sass's compression settings
|
6
17
|
#
|
7
|
-
def
|
18
|
+
def compile_css(content)
|
8
19
|
configs = sass_converter.sass_configs
|
9
20
|
configs[:syntax] = :scss
|
10
21
|
configs[:style] ||= :compressed if Ink.configuration['asset_pipeline']['compress_css']
|
@@ -12,13 +23,13 @@ module Octopress
|
|
12
23
|
Sass.compile(content, configs)
|
13
24
|
end
|
14
25
|
|
15
|
-
def
|
26
|
+
def compile_sass(sass)
|
16
27
|
Sass.compile(sass.render, sass_configs(sass))
|
17
28
|
end
|
18
29
|
|
19
30
|
# Gets default Sass configuration hash from Jekyll
|
20
31
|
#
|
21
|
-
def
|
32
|
+
def sass_configs(sass)
|
22
33
|
configs = sass_converter.sass_configs
|
23
34
|
|
24
35
|
configs[:syntax] = sass.ext.sub(/^\./,'').to_sym
|
@@ -32,20 +43,17 @@ module Octopress
|
|
32
43
|
|
33
44
|
# Access Jekyll's built in Sass converter
|
34
45
|
#
|
35
|
-
def
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
Octopress.site.converters.each do |c|
|
40
|
-
@sass_converter = c if c.kind_of?(Jekyll::Converters::Sass)
|
46
|
+
def sass_converter
|
47
|
+
@sass_converter ||= begin
|
48
|
+
Octopress.site.converters.find do |c|
|
49
|
+
c.kind_of?(Jekyll::Converters::Sass)
|
41
50
|
end
|
42
|
-
@sass_converter
|
43
51
|
end
|
44
52
|
end
|
45
53
|
|
46
54
|
# Return a link tag, for all plugins' stylesheets
|
47
55
|
#
|
48
|
-
def
|
56
|
+
def combined_stylesheet_tag
|
49
57
|
tags = ''
|
50
58
|
combine_stylesheets.keys.each do |media|
|
51
59
|
tags.concat "<link href='#{Filters.expand_url(combined_stylesheet_path(media))}' media='#{media}' rel='stylesheet' type='text/css'>"
|
@@ -53,7 +61,7 @@ module Octopress
|
|
53
61
|
tags
|
54
62
|
end
|
55
63
|
|
56
|
-
def
|
64
|
+
def combined_javascript_tag
|
57
65
|
unless @combined_js == ''
|
58
66
|
"<script src='#{Filters.expand_url(combined_javascript_path)}'></script>"
|
59
67
|
end
|
@@ -66,10 +74,8 @@ module Octopress
|
|
66
74
|
#
|
67
75
|
# output: { 'screen' => 'body { background... }' }
|
68
76
|
#
|
69
|
-
def
|
70
|
-
|
71
|
-
@combined_stylesheets
|
72
|
-
else
|
77
|
+
def combine_stylesheets
|
78
|
+
@combined_stylesheets ||= begin
|
73
79
|
combined = {}
|
74
80
|
|
75
81
|
stylesheets.clone.each do |media,files|
|
@@ -81,12 +87,11 @@ module Octopress
|
|
81
87
|
end
|
82
88
|
end
|
83
89
|
|
84
|
-
|
90
|
+
combined
|
85
91
|
end
|
86
92
|
end
|
87
93
|
|
88
|
-
def
|
89
|
-
@combined_stylesheets = nil
|
94
|
+
def write_combined_stylesheet
|
90
95
|
css = combine_stylesheets
|
91
96
|
css.keys.each do |media|
|
92
97
|
contents = compile_css(css[media])
|
@@ -94,11 +99,11 @@ module Octopress
|
|
94
99
|
end
|
95
100
|
end
|
96
101
|
|
97
|
-
def
|
102
|
+
def combined_stylesheet_path(media)
|
98
103
|
File.join('stylesheets', "#{media}-#{stylesheet_fingerprint(media)}.css")
|
99
104
|
end
|
100
105
|
|
101
|
-
def
|
106
|
+
def stylesheet_fingerprint(media)
|
102
107
|
@stylesheet_fingerprint ||= {}
|
103
108
|
@stylesheet_fingerprint[media] ||=
|
104
109
|
fingerprint(stylesheets[media].clone.map(&:path))
|
@@ -110,10 +115,8 @@ module Octopress
|
|
110
115
|
#
|
111
116
|
# output: { 'screen' => [Octopress::Ink::Assets::Stylesheet, ..]
|
112
117
|
#
|
113
|
-
def
|
114
|
-
|
115
|
-
@stylesheets
|
116
|
-
else
|
118
|
+
def stylesheets
|
119
|
+
@stylesheets ||= begin
|
117
120
|
files = {}
|
118
121
|
Plugins.plugins.clone.each do |plugin|
|
119
122
|
plugin.stylesheets.each do |file|
|
@@ -121,27 +124,25 @@ module Octopress
|
|
121
124
|
files[file.media] << file
|
122
125
|
end
|
123
126
|
end
|
124
|
-
|
127
|
+
files
|
125
128
|
end
|
126
129
|
end
|
127
130
|
|
128
|
-
def
|
131
|
+
def javascripts
|
129
132
|
@javascripts ||=
|
130
133
|
Plugins.plugins.clone.map(&:javascripts).flatten
|
131
134
|
end
|
132
135
|
|
133
|
-
def
|
136
|
+
def javascript_fingerprint
|
134
137
|
@javascript_fingerprint ||=
|
135
138
|
fingerprint(javascripts.clone.map(&:path))
|
136
139
|
end
|
137
140
|
|
138
|
-
def
|
141
|
+
def combined_javascript_path
|
139
142
|
File.join('javascripts', "all-#{javascript_fingerprint}.js")
|
140
143
|
end
|
141
144
|
|
142
|
-
def
|
143
|
-
@combined_js = ''
|
144
|
-
|
145
|
+
def write_combined_javascript
|
145
146
|
if Ink.configuration['asset_pipeline']['combine_js']
|
146
147
|
javascripts.each do |file|
|
147
148
|
|
@@ -170,15 +171,15 @@ module Octopress
|
|
170
171
|
end
|
171
172
|
end
|
172
173
|
|
173
|
-
def
|
174
|
+
def compress_js?(file)
|
174
175
|
Ink.configuration['asset_pipeline']['compress_js'] && !file.path.end_with?('.min.js')
|
175
176
|
end
|
176
177
|
|
177
|
-
def
|
178
|
+
def write_files(source, dest)
|
178
179
|
Plugins.static_files << StaticFileContent.new(source, dest)
|
179
180
|
end
|
180
181
|
|
181
|
-
def
|
182
|
+
def fingerprint(paths)
|
182
183
|
return '' if ENV['JEKYLL_ENV'] == 'test'
|
183
184
|
paths = [paths] unless paths.is_a? Array
|
184
185
|
Digest::MD5.hexdigest(paths.clone.map! { |path| "#{File.mtime(path).to_i}" }.join)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Octopress
|
2
2
|
module Ink
|
3
3
|
module Plugins
|
4
|
-
extend self
|
5
4
|
attr_reader :registered
|
5
|
+
extend self
|
6
6
|
|
7
7
|
@registered = false
|
8
8
|
@plugins = []
|
@@ -43,16 +43,19 @@ module Octopress
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def reset
|
46
|
-
@static_files = []
|
47
46
|
@registered = false
|
48
|
-
@css_tags = []
|
49
|
-
@js_tags = []
|
50
|
-
Bootstrap.reset
|
51
47
|
end
|
52
48
|
|
53
49
|
def register
|
54
50
|
unless @registered
|
55
51
|
@registered = true
|
52
|
+
@static_files = []
|
53
|
+
@css_tags = []
|
54
|
+
@js_tags = []
|
55
|
+
Bootstrap.reset
|
56
|
+
PluginAssetPipeline.reset
|
57
|
+
|
58
|
+
puts 'registering'
|
56
59
|
plugins.each(&:register)
|
57
60
|
end
|
58
61
|
end
|
@@ -15,9 +15,23 @@ module Octopress
|
|
15
15
|
|
16
16
|
# Check to see if post loop is active, otherwise default to current page
|
17
17
|
page = context['post'] || context['page']
|
18
|
+
|
19
|
+
tags = Bootstrap.send(@tag)[page['url']]
|
20
|
+
|
21
|
+
if tags.nil?
|
22
|
+
if tags = item_tags(page)
|
23
|
+
# Cache tags to speed up multiple references for the same post
|
24
|
+
Bootstrap.send(@tag)[page['url']] = tags
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
tags
|
29
|
+
end
|
30
|
+
|
31
|
+
def item_tags(page)
|
18
32
|
items = page[item_name_plural]
|
19
33
|
|
20
|
-
return
|
34
|
+
return nil if items.nil? || items.empty?
|
21
35
|
|
22
36
|
items = items.sort.map { |i| item_link(page, i) }.compact.map do |link|
|
23
37
|
if item_list?
|
@@ -27,7 +41,7 @@ module Octopress
|
|
27
41
|
link
|
28
42
|
end
|
29
43
|
|
30
|
-
return
|
44
|
+
return nil if items.empty?
|
31
45
|
|
32
46
|
if item_list?
|
33
47
|
%Q{<ul class="#{item_name}-list">#{items.join}</ul>}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-ink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.rc.
|
4
|
+
version: 1.0.0.rc.57
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|