module Nanoc::Helpers::HTMLEscape

@see nanoc.app/doc/reference/helpers/#filtering

Public Instance Methods

h(string = nil, &block)
Alias for: html_escape
html_escape(string = nil, &block) click to toggle source

@param [String] string

@return [String]

# File lib/nanoc/helpers/html_escape.rb, line 12
def html_escape(string = nil, &block)
  if block_given?
    # Capture and escape block
    data = capture(&block)
    escaped_data = html_escape(data)

    # Append filtered data to buffer
    buffer = eval('_erbout', block.binding)
    buffer << escaped_data
  elsif string
    unless string.is_a? String
      raise ArgumentError, 'The #html_escape or #h function needs either a ' \
        "string or a block to HTML-escape, but #{string.class} was given"
    end

    string
      .gsub('&', '&amp;')
      .gsub('<', '&lt;')
      .gsub('>', '&gt;')
      .gsub('"', '&quot;')
      .gsub("'", '&#39;')
  else
    raise 'The #html_escape or #h function needs either a ' \
      'string or a block to HTML-escape, but neither a string nor a block was given'
  end
end
Also aliased as: h