jekyll-eztags 0.0.9 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/eztags.rb +51 -86
- data/lib/jekyll/eztags/version.rb +1 -1
- 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: 72420636307f77d8118f25b14fca38473204f12f
|
4
|
+
data.tar.gz: 5ab68c2a45b22bed368c6e1f1c7db506b7b00fd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 710ab634d74fb27228eb1ecf2377413872734ffd7ebf9f7f5dab67dd4db5eec876ef52088f3a091717cbcb58d185c97c4d317e7edfdd4f71f586b4103cbede2a
|
7
|
+
data.tar.gz: c2686361ee5b0b94f739ac7786cc316022605ee63b8136180d3c652789959d1fb2542992574adc01c30afa979a46310a51309da1af20afedbd7f9d8429ffa116
|
data/lib/jekyll/eztags.rb
CHANGED
@@ -1,103 +1,68 @@
|
|
1
|
-
require '
|
2
|
-
require 'erb'
|
1
|
+
#require 'erb'
|
3
2
|
require "jekyll/eztags/version"
|
4
3
|
|
5
4
|
module Jekyll
|
6
5
|
module Eztags
|
7
|
-
# Your code goes here...
|
8
|
-
end
|
9
|
-
class Tagger < Generator
|
10
|
-
|
11
|
-
safe true
|
12
|
-
|
13
|
-
attr_accessor :site
|
14
|
-
|
15
|
-
@types = [:page, :feed]
|
16
|
-
|
17
|
-
class << self; attr_accessor :types, :site; end
|
18
|
-
|
19
|
-
def generate(site)
|
20
|
-
self.class.site = self.site = site
|
21
|
-
|
22
|
-
generate_tag_pages
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
# Generates a page per tag and adds them to all the pages of +site+.
|
28
|
-
# A <tt>tag_page_layout</tt> have to be defined in your <tt>_config.yml</tt>
|
29
|
-
# to use this.
|
30
|
-
def generate_tag_pages
|
31
|
-
active_tags.each { |tag, posts| new_tag(tag, posts) }
|
32
|
-
end
|
33
|
-
|
34
|
-
def new_tag(tag, posts)
|
35
|
-
self.class.types.each { |type|
|
36
|
-
if layout = site.config["tag_#{type}_layout"]
|
37
|
-
data = { 'layout' => layout, 'posts' => posts.sort.reverse! }
|
38
|
-
|
39
|
-
name = yield data if block_given?
|
40
|
-
|
41
|
-
puts "HERE WITH: "
|
42
|
-
puts "#{name || tag}#{site.layouts[data['layout']].ext}"
|
43
|
-
|
44
|
-
site.pages << TagPage.new(
|
45
|
-
site, site.source, site.config["tag_#{type}_dir"],
|
46
|
-
"#{name || tag}#{site.layouts[data['layout']].ext}", data
|
47
|
-
)
|
48
|
-
end
|
49
|
-
}
|
50
|
-
end
|
51
6
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
7
|
+
class Tagger < Generator
|
8
|
+
|
9
|
+
safe true
|
10
|
+
|
11
|
+
attr_accessor :site
|
12
|
+
@types = [:page, :feed]
|
13
|
+
class << self; attr_accessor :types, :site; end
|
14
|
+
|
15
|
+
def generate(site)
|
16
|
+
self.class.site = self.site = site
|
17
|
+
generate_tag_pages
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
# Generates a page per tag and adds them to all the pages of +site+.
|
23
|
+
# A <tt>tag_page_layout</tt> have to be defined in your <tt>_config.yml</tt>
|
24
|
+
# to use this.
|
25
|
+
def generate_tag_pages
|
26
|
+
active_tags.each { |tag, posts| new_tag(tag, posts) }
|
27
|
+
end
|
28
|
+
|
29
|
+
def new_tag(tag, posts)
|
30
|
+
self.class.types.each { |type|
|
31
|
+
if layout = site.config["tag_#{type}_layout"]
|
32
|
+
data = { 'layout' => layout, 'posts' => posts.sort.reverse! }
|
33
|
+
name = yield data if block_given?
|
34
|
+
site.pages << TagPage.new(
|
35
|
+
site, site.source, site.config["tag_#{type}_dir"],
|
36
|
+
"#{name || tag}", data, "#{site.layouts[data['layout']].ext}"
|
37
|
+
)
|
38
|
+
end
|
39
|
+
}
|
40
|
+
end
|
56
41
|
|
42
|
+
def active_tags
|
43
|
+
return site.tags unless site.config["ignored_tags"]
|
44
|
+
site.tags.reject { |t| site.config["ignored_tags"].include? t[0] }
|
45
|
+
end
|
57
46
|
|
58
|
-
end
|
59
|
-
|
60
|
-
class TagPage < Page
|
61
|
-
|
62
|
-
def initialize(site, base, dir, name, data = {})
|
63
|
-
self.content = data.delete('content') || ''
|
64
|
-
self.data = data
|
65
|
-
|
66
|
-
super(site, base, dir[-1, 1] == '/' ? dir : '/' + dir, name)
|
67
|
-
|
68
|
-
data['tag'] ||= basename
|
69
47
|
end
|
70
48
|
|
71
|
-
|
72
|
-
# Do nothing
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
49
|
+
class TagPage < Page
|
76
50
|
|
77
|
-
|
51
|
+
def initialize(site, base, dir, name, data = {}, extension)
|
52
|
+
self.content = data.delete('content') || ''
|
53
|
+
self.data = data
|
54
|
+
filename = "#{name.downcase.gsub(/[^0-9a-z]/i, '-')}#{extension}"
|
55
|
+
|
56
|
+
super(site, base, dir[-1, 1] == '/' ? dir : '/' + dir, filename)
|
78
57
|
|
79
|
-
|
80
|
-
|
81
|
-
%Q{<a href="#{url}"#{html_opts}>#{tag}</a>}
|
82
|
-
end
|
58
|
+
data['tag'] = name
|
59
|
+
end
|
83
60
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
puts url
|
88
|
-
site.permalink_style == :pretty ? url : url << '.html'
|
89
|
-
end
|
61
|
+
def read_yaml(*)
|
62
|
+
# Do nothing
|
63
|
+
end
|
90
64
|
|
91
|
-
def tags(obj)
|
92
|
-
tags = obj['tags'].dup
|
93
|
-
tags.map! { |t| t.first } if tags.first.is_a?(Array)
|
94
|
-
tags.map! { |t| tag_link(t, tag_url(t), :rel => 'tag') if t.is_a?(String) }.compact!
|
95
|
-
tags.join(', ')
|
96
65
|
end
|
97
66
|
|
98
|
-
def active_tag_data(site = Tagger.site)
|
99
|
-
return site.config['tag_data'] unless site.config["ignored_tags"]
|
100
|
-
site.config["tag_data"].reject { |tag, set| site.config["ignored_tags"].include? tag }
|
101
|
-
end
|
102
67
|
end
|
103
68
|
end
|