Module: PrismHelpers
- Included in:
- Jekyll::CodeBlock, Jekyll::CodeTag
- Defined in:
- lib/jekyll_prism.rb
Overview
Helpers for defining code HTML
Instance Method Summary collapse
- #add_highlights(s, opts) ⇒ Object
- #add_lang(s, opts) ⇒ Object
- #add_line_numbers(s, opts) ⇒ Object
- #add_line_start(s, opts) ⇒ Object
- #add_source(s, opts) ⇒ Object
- #code_attrs(opts) ⇒ Object
- #parse_args(args) ⇒ Object
- #pre_attrs(opts) ⇒ Object
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 |