Class: Jekyll::Tags::EmbedSvgs

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/esvg/jekyll_hooks.rb

Instance Method Summary collapse

Constructor Details

#initialize(tag_name, markup, tokens) ⇒ EmbedSvgs

Returns a new instance of EmbedSvgs.



25
26
27
28
# File 'lib/esvg/jekyll_hooks.rb', line 25

def initialize(tag_name, markup, tokens)
  super
  @markup = markup.gsub(/["']/,'').split(/,\s*/)
end

Instance Method Details

#render(context) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/esvg/jekyll_hooks.rb', line 30

def render(context)
  super
  if Jekyll.env == 'production'

    config   = context.registers[:site].config
    dest     = config["destination"]
    url      = Jekyll.esvg.config[:build].sub(dest, '')
    root_url = File.join config["baseurl"], url

    Esvg.build_paths(@markup).map { |path| %Q{<script src="#{File.join(root_url, path)}" async="true"></script>} }.join("\n")
  else
    Jekyll.esvg_embedded = true
    Esvg.embed()
  end
end