70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/generators/blog-taxonomy.rb', line 70
def generate(site)
categories = {}
tags = {}
site.posts.docs.each do |post|
post_data = post.data['post']
next unless post_data
if post_data['categories'].is_a?(Array)
post_data['categories'].each do |category|
next if category.nil? || category.to_s.strip.empty?
category_name = titleize(category.to_s.strip)
category_slug = slugify(category.to_s.strip)
categories[category_slug] = category_name
end
end
if post_data['tags'].is_a?(Array)
post_data['tags'].each do |tag|
next if tag.nil? || tag.to_s.strip.empty?
tag_name = titleize(tag.to_s.strip)
tag_slug = slugify(tag.to_s.strip)
tags[tag_slug] = tag_name
end
end
end
categories.each do |slug, name|
site.pages << CategoryPage.new(site, site.source, name, slug)
end
tags.each do |slug, name|
site.pages << TagPage.new(site, site.source, name, slug)
end
Jekyll.logger.info "BlogTaxonomy:", "Generated #{categories.size} category pages and #{tags.size} tag pages"
end
|