I am using Hooks
for category and tags
for my site. Following code for tags
works just fine:
Jekyll::Hooks.register :posts, :post_write do |post| all_existing_tags = Dir.entries("./src/_tags") .map { |t| t.match(/(.*).md/) } .compact.map { |m| m[1] } tags = post['tags'].reject { |t| t.empty? } tags.each do |tag| generate_tag_file(tag) if !all_existing_tags.include?(tag) endenddef generate_tag_file(tag) File.open("./src/_tags/#{tag}.md", "wb") do |file| file << "---\nlayout: tags\ntag-name: #{tag}\n---\n" endend
But if I use similar code for category
it doesn't:
Jekyll::Hooks.register :posts, :post_write do |post| all_existing_category = Dir.entries("./src/_category") .map { |t| t.match(/(.*).md/) } .compact.map { |m| m[1] } category = post['category'].reject { |t| t.empty? } category.each do |category| generate_category_file(category) if !all_existing_category.include?(category) endenddef generate_category_file(category) File.open("./src/_category/#{category}.md", "wb") do |file| file << "---\nlayout: category\ncategory-name: #{category}\n---\n" endend
I get the following error:
src/_plugins/category_generator.rb:6:in `block in <top (required)>': undefined method `reject' for "test":String (NoMethodError) tags = post['category'].reject { |t| t.empty? }
Any suggestion is highly appreciated.
I have tried it for tags
but for category
it doesn't work