Module: PrismHelpers

Included in:
Jekyll::CodeBlock, Jekyll::CodeTag
Defined in:
lib/jekyll_prism.rb

Overview

Helpers for defining code HTML

Instance Method Summary collapse

Instance Method Details

#add_highlights(s, opts) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/jekyll_prism.rb', line 45

def add_highlights(s, opts)
  lines = if opts[:highlights] == 'all'
            "1-#{opts[:linecount]}"
          else
            opts[:highlights]
          end
  s << %Q( data-line="#{lines}")
end

#add_lang(s, opts) ⇒ Object



36
37
38
39
# File 'lib/jekyll_prism.rb', line 36

def add_lang(s, opts)
  s << "language-#{opts[:lang]}" if opts.include? :lang
  s
end

#add_line_numbers(s, opts) ⇒ Object



31
32
33
34
# File 'lib/jekyll_prism.rb', line 31

def add_line_numbers(s, opts)
  s << 'line-numbers ' if opts.include? :numbers
  s
end

#add_line_start(s, opts) ⇒ Object



41
42
43
# File 'lib/jekyll_prism.rb', line 41

def add_line_start(s, opts)
  s << %Q( data-start="#{opts[:numbers]}")
end

#add_source(s, opts) ⇒ Object



54
55
56
# File 'lib/jekyll_prism.rb', line 54

def add_source(s, opts)
  s << %Q( data-src="#{opts[:source]}")
end

#code_attrs(opts) ⇒ Object



25
26
27
28
29
# File 'lib/jekyll_prism.rb', line 25

def code_attrs(opts)
  s = ' class="'
  s = add_lang(s, opts) unless opts.include? :source
  s << '"'
end

#parse_args(args) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/jekyll_prism.rb', line 6

def parse_args(args)
  args.each_with_object({}) do |arg, hash|
    value, key = arg.split('=').reverse
    key ||= 'lang'
    hash[key.to_sym] = value
  end
end

#pre_attrs(opts) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/jekyll_prism.rb', line 14

def pre_attrs(opts)
  s = ' class="'
  s = add_line_numbers(s, opts)
  s = add_lang(s, opts) if opts.include? :source
  s << '"'
  s = add_line_start(s, opts) unless [nil, 1].include? opts[:numbers]
  s = add_source(s, opts) if opts.include? :source
  s = add_highlights(s, opts) if opts.include? :highlights
  s
end