class Jekyll::ScalaFiddle::ScalaFiddleTag
Public Class Methods
new(tag, args, _)
click to toggle source
Calls superclass method
# File lib/jekyll-scalafiddle.rb, line 43 def initialize(tag, args, _) @args = OptionsParser.parse(args) super end
Public Instance Methods
render(context)
click to toggle source
Calls superclass method
# File lib/jekyll-scalafiddle.rb, line 48 def render(context) site = context.registers[:site] # run all markdown converters for this content converters = site.converters.select { |c| c.matches(".md") }.sort content = converters.reduce(super(context)) { |content, converter| converter.convert(content) } config = site.config.fetch("scalafiddle", {}) result = <<HTML <div #{render_attributes(config)}>#{content}</div> HTML result end
Private Instance Methods
render_attributes(config)
click to toggle source
# File lib/jekyll-scalafiddle.rb, line 61 def render_attributes(config) attributes = {"data-scalafiddle" => ""} if @args[:attributes][:template] attributes["data-template"] = "'#{@args[:attributes][:template]}'" end # apply default attributes from config if config.key?("dependency") attributes["data-dependency"] = "'#{config["dependency"]}'" end if config.key?("scalaversion") attributes["data-scalaversion"] = "'#{config["scalaversion"]}'" end if config.key?("selector") attributes["data-selector"] = "'#{config["selector"]}'" end if config.key?("theme") attributes["data-theme"] = "'#{config["theme"]}'" end # apply tag attributes if @args[:attributes][:dependency] attributes["data-dependency"] = "'#{@args[:attributes][:dependency]}'" end if @args[:attributes][:scalaversion] attributes["data-scalaversion"] = "'#{@args[:attributes][:scalaversion]}'" end if @args[:attributes][:selector] attributes["data-selector"] = "'#{@args[:attributes][:selector]}'" end if @args[:attributes][:prefix] attributes["data-prefix"] = "'#{@args[:attributes][:prefix]}'" end if @args[:attributes][:minheight] attributes["data-minheight"] = "'#{@args[:attributes][:minheight]}'" end if @args[:attributes][:layout] attributes["data-layout"] = "'#{@args[:attributes][:layout]}'" end if @args[:attributes][:theme] attributes["data-theme"] = "'#{@args[:attributes][:theme]}'" end if @args[:flags][:autorun] attributes["data-autorun"] = "" end attrs = "" attributes.each {|key, value| if value.empty? attrs << "#{key} " else attrs << "#{key}=#{value} " end } attrs.rstrip end