class Jekyll::PlantumlBlock
The main class
Public Class Methods
new(tag_name, markup, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll-plantuml.rb, line 35 def initialize(tag_name, markup, tokens) super @html = (markup or '').strip end
Public Instance Methods
render(context)
click to toggle source
Calls superclass method
# File lib/jekyll-plantuml.rb, line 40 def render(context) site = context.registers[:site] name = Digest::MD5.hexdigest(super) unless File.exist?(File.join(site.dest, "uml/#{name}.svg")) uml = File.join(site.source, "uml/#{name}.uml") svg = File.join(site.source, "uml/#{name}.svg") if File.exist?(svg) puts "File #{svg} already exists (#{File.size(svg)} bytes)" else FileUtils.mkdir_p(File.dirname(uml)) File.open(uml, 'w') do |f| f.write("@startuml\n") f.write(super) f.write("\n@enduml") end system("plantuml -tsvg #{uml}") or raise "PlantUML error: #{super}" site.static_files << Jekyll::StaticFile.new( site, site.source, 'uml', "#{name}.svg" ) puts "File #{svg} created (#{File.size(svg)} bytes)" end end "<p><object data='#{site.baseurl}/uml/#{name}.svg' type='image/svg+xml' #{@html} class='plantuml'></object></p>" end