Class: Jekyll::VersionedFiles::Styler

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/versioned_files/styler.rb

Constant Summary collapse

DIFF_REGEX =
%r!(\{\+)(.+?)(\+\})|(\[-)(.+?)(-\])!m
OUTPUT_STYLE =
{
  "markdown" => {
    "add" => ['**','**'],
    "del" => ['~~','~~']
  },
  "html" => {
    "add" => ["<ins>", "</ins>"],
    "del" => ["<del>", "</del>"]
  }
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStyler

Initialize FileDocument.

Returns nothing.



21
22
23
24
# File 'lib/jekyll/versioned_files/styler.rb', line 21

def initialize
  @output  = VersionedFiles.format_options['output']
  @fm_mods = VersionedFiles.frontmatter
end

Instance Attribute Details

#statsObject

Returns the value of attribute stats.



4
5
6
# File 'lib/jekyll/versioned_files/styler.rb', line 4

def stats
  @stats
end

Instance Method Details

#style(content) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/jekyll/versioned_files/styler.rb', line 26

def style(content)
  @stats = Counter.new
  styled = content.gsub(DIFF_REGEX) do |m|
    if $1 == "{+" && $3 == "+}"
      @stats.ins
      "#{OUTPUT_STYLE[@output]['add'][0]}#{$2}#{OUTPUT_STYLE[@output]['add'][1]}"
    elsif $4 == "[-" && $6 == "-]"
      @stats.del
      "#{OUTPUT_STYLE[@output]['del'][0]}#{$5}#{OUTPUT_STYLE[@output]['del'][1]}"
    end
  end
  styled || content
end