class Jekyll::Antex::Block
Public Class Methods
new(tag, markup, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll/antex/block.rb, line 17 def initialize(tag, markup, tokens) @markup = markup super end
Private Class Methods
img_url(job)
click to toggle source
# File lib/jekyll/antex/block.rb, line 59 def self.img_url(job) _, dest_dir, filename = static_file_paths job url_path_prefix = job.options['url_path_prefix'] || '/' File.join url_path_prefix, dest_dir, filename end
render_html(job)
click to toggle source
# File lib/jekyll/antex/block.rb, line 32 def self.render_html(job) img_tag = render_img_tag job classes = job.options['classes'].join(' ') "<span class='#{classes}'>#{img_tag}</span>" end
render_img_tag(job)
click to toggle source
# File lib/jekyll/antex/block.rb, line 38 def self.render_img_tag(job) "<img data-antex='#{job.hash}' src='#{img_url(job)}' />" end
render_style_attribute(job_set_box, precision: 3)
click to toggle source
# File lib/jekyll/antex/block.rb, line 42 def self.render_style_attribute(job_set_box, precision: 3) <<~IMG_TAG.gsub(/(\s\s+)/m, ' ').strip! style='margin: #{job_set_box.mt.round(precision)}ex #{job_set_box.mr.round(precision)}ex #{job_set_box.mb.round(precision)}ex #{job_set_box.ml.round(precision)}ex; height: #{job_set_box.th.round(precision)}ex; width: #{job_set_box.wd.round(precision)}ex;' IMG_TAG end
static_file_paths(job)
click to toggle source
# File lib/jekyll/antex/block.rb, line 65 def self.static_file_paths(job) work_dir_prefix = %r{^#{Regexp.escape job.dirs['work']}(?=\/|$)} # base, dir, name [ job.dirs['work'], job.dirs['dest'].sub(work_dir_prefix, '').sub(%r{^\/}, ''), File.basename(job.files['svg']) ] end
Public Instance Methods
render(context)
click to toggle source
Calls superclass method
# File lib/jekyll/antex/block.rb, line 22 def render(context) options = build_options registers: context.registers, markup: @markup job = ::Antex::Job.new snippet: super, options: options Jekyll::Antex.jobs.store(job.hash, job) add_static_file context.registers[:site], job self.class.render_html(job) end
Private Instance Methods
add_static_file(site, job)
click to toggle source
# File lib/jekyll/antex/block.rb, line 53 def add_static_file(site, job) site.static_files << Jekyll::StaticFile.new( site, *self.class.static_file_paths(job) ) end
build_options(registers:, markup:)
click to toggle source
# File lib/jekyll/antex/block.rb, line 75 def build_options(registers:, markup:) Jekyll::Antex::Options.build Jekyll::Antex::Options::DEFAULTS, registers[:site].config['antex'] || {}, registers[:page]['antex'] || {}, YAML.safe_load(markup) || {} end