class Jekyll::PrismJsCompile::Block
Public Class Methods
new(tag_name, language, tokens)
click to toggle source
include Liquid::StandardFilters
Calls superclass method
# File lib/jekyll-prismjs-compile/prismc_block.rb, line 8 def initialize(tag_name, language, tokens) super @language = language.strip end
Public Instance Methods
render(context)
click to toggle source
Calls superclass method
# File lib/jekyll-prismjs-compile/prismc_block.rb, line 13 def render(context) # add option to escape html (use h(super)) code = JSON.generate(super.strip) path = __dir__ + "/prism.js" # TODO load only once prismSource = File.read(path) context = ExecJS.compile(prismSource) output = context.eval(%Q[Prism.highlight(#{code}, Prism.languages.#{@language}, '#{@language}')]) <<-HTML <pre class="language-#{@language}"><code class='language-#{@language}'>#{output}</code></pre> HTML end