Class: RageRender::ComicFromImageGenerator
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- RageRender::ComicFromImageGenerator
- Defined in:
- lib/ragerender/jekyll/comics.rb
Overview
Creates comics for each file found in the ‘images’ directory that does not already have an associated comic object.
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 |
# File 'lib/ragerender/jekyll/comics.rb', line 20 def generate site images = site.static_files.select {|f| f.relative_path.start_with? '/images' }.map {|f| [f.basename, f] }.to_h comics = site.collections['comics'].docs.map {|c| [c.basename_without_ext, c] }.to_h missing = Set.new(images.keys) - Set.new(comics.keys) missing -= Set.new(comics.map {|k, c| c.data['image'] }.reject(&:nil?).map {|img| File.basename(img, '.*') }) missing.each do |slug| comic = Jekyll::Document.new(images[slug].relative_path, site: site, collection: site.collections['comics']) comic.send(:merge_defaults) comic.data['slug'] = slug comic.data['title'] = slug comic.data['date'] = images[slug].modified_time comic.data['image'] = images[slug].relative_path comic.content = nil site.collections['comics'].docs << comic end end |