jekyll-eztags 0.0.9 → 0.0.11
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/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
|