class Jekyll::Gensocial::Generator
Public Instance Methods
generate(site)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 9 def generate(site) config = Utils.deep_merge_hashes( Gensocial::DEFAULTS, site.config.fetch("jekyll-gensocial", {}) ) return unless config["enabled"] == true process_docs(site.pages, :site => site, :config => config) process_docs(site.posts.docs, :site => site, :config => config) end
Private Instance Methods
get_image_creator(text:, image_config:)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 77 def get_image_creator(text:, image_config:) image_creator = ImageCreator::Composer.new(:image_size => image_config[:size]) image_creator.add_bg_layer(:config => image_config[:bg]) image_creator.add_text_layer(text, :config => image_config[:text]) image_creator end
image_config(config, base_path:)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 33 def image_config(config, base_path:) { :size => Geometry::Size.new(config["size"]), :text => ImageCreator::TextLayerConfig.new( config["text"], :base_path => base_path ), :bg => ImageCreator::BackgroundLayerConfig.new( config["background"], :base_path => base_path ), } end
process_doc(doc, site:, config:)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 47 def process_doc(doc, site:, config:) image_config = image_config(config, :base_path => site.source) text = doc.data["title"] || image_config[:text].string image_path = doc.data["image"] return if text.nil? || text.empty? write_image( :path => site.in_source_dir(image_path), :text => text, :image_config => image_config ) base = site.source dir = File.dirname(image_path) name = File.basename(image_path) site.static_files << Jekyll::StaticFile.new(site, base, dir, name) end
process_docs(docs, site:, config:)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 23 def process_docs(docs, site:, config:) docs.each do |doc| doc_config = Utils.deep_merge_hashes(config, doc.data.fetch("jekyll-gensocial", {})) next if doc.data["image"].nil? || File.exist?(site.in_source_dir(doc.data["image"])) process_doc(doc, :site => site, :config => doc_config) end end
write_image(path:, text:, image_config:)
click to toggle source
# File lib/jekyll-gensocial/generator.rb, line 68 def write_image(path:, text:, image_config:) image = get_image_creator( :text => text, :image_config => image_config ).image image.write(path) end