Module: Octopress::MinifyHTML

Extended by:
MinifyHTML
Included in:
MinifyHTML
Defined in:
lib/octopress-minify-html.rb,
lib/octopress-minify-html/version.rb

Defined Under Namespace

Classes: MinifyPage

Constant Summary collapse

VERSION =
"1.3.1"

Instance Method Summary collapse

Instance Method Details

#minify(item) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/octopress-minify-html.rb', line 10

def minify(item)
  options = symbolize(item.site.config['html_press'] || {})
  if minify?(item)
    HtmlPress.press(item.output, options)
  else
    item.output
  end
end

#minify?(item) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
# File 'lib/octopress-minify-html.rb', line 19

def minify?(item)
  config = item.site.config
  if item.destination(config['destination']).end_with?('html')
    minify = config['minify_html']
    production = config['env'].nil? || config['env'] =~ /production/i

    # Minify if configuration explicitly requires minification
    # or if Jekyll env is production
    minify || (minify.nil? && production)
  end
end

#symbolize(obj) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/octopress-minify-html.rb', line 31

def symbolize(obj)
  return obj.reduce({}) do |memo, (k, v)|
    memo.tap { |m| m[k.to_sym] = symbolize(v) }
  end if obj.is_a? Hash
    
  return obj.reduce([]) do |memo, v| 
    memo << symbolize(v); memo
  end if obj.is_a? Array
  
  obj
end