Class: Jekyll::CodeBlock

Inherits:
Liquid::Block
  • Object
show all
Includes:
Liquid::StandardFilters
Defined in:
lib/jekyll_prism.rb

Overview

Block object for Prism hilighting

Instance Method Summary collapse

Constructor Details

#initialize(a, args, b) ⇒ CodeBlock

Returns a new instance of CodeBlock.



11
12
13
14
15
16
# File 'lib/jekyll_prism.rb', line 11

def initialize(a, args, b)
  super
  options = args.split
  @lang, @linenos = options.shift 2
  true
end

Instance Method Details

#render(_) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/jekyll_prism.rb', line 18

def render(_)
  code = h(super).strip

  linenos = @linenos == 'all' ? "1-#{code.lines.count}" : @linenos
  linestring = linenos.nil? ? '' : %Q( data-line="#{linenos}")
  langstring = @lang.nil? ? '' : %Q( class="language-#{@lang}")

  <<-OUTPUT
<pre#{linestring}><code#{langstring}>
#{code}
</code></pre>
  OUTPUT
end