Class: Jekyll::CollectionMultiplier

Inherits:
Generator
  • Object
show all
Defined in:
lib/jekyll-collection-multiplier.rb

Instance Method Summary collapse

Instance Method Details

#generate(site) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/jekyll-collection-multiplier.rb', line 20

def generate(site)
  return if site.config['collection_multiplier'].nil?

  pairs = []

  site.config['collection_multiplier'].each do |multiplier|
    site.collections.each_pair do |collection_name, collection|
      next unless multiplier['type'] == collection_name
      renamed = multiplier['dupe']
      duped_collection = Jekyll::Collection.new(site, renamed)
      duped_collection.docs = collection.docs.dup.map do |doc|
        duped_doc = Jekyll::Document.new(doc.path, { :site => site, :collection => duped_collection })
        duped_doc.content = doc.content
        actual_path = doc.path.sub(collection_name, renamed)
        duped_doc.read(:actual_path => actual_path)
        duped_doc
      end

      pairs << { renamed => duped_collection }
    end
  end
  pairs.each do |pair|
    site.collections[pair.keys.first] = pair.values.first
  end
end