Sha256: 1905aaab31e10599ae246eee9e486203863a903ea1ae30541ad7ced235ee4874
Contents?: true
Size: 1.5 KB
Versions: 6
Compression:
Stored size: 1.5 KB
Contents
# encoding: utf-8 module Nanoc::Helpers # Contains functionality for HTML-escaping strings. module HTMLEscape require 'nanoc/helpers/capturing' include Nanoc::Helpers::Capturing # Returns the HTML-escaped representation of the given string or the given # block. Only `&`, `<`, `>` and `"` are escaped. When given a block, the # contents of the block will be escaped and appended to the output buffer, # `_erbout`. # # @example Escaping a string # # h('<br>') # # => '<br>' # # @example Escaping with a block # # <% h do %> # <h1>Hello <em>world</em>!</h1> # <% end %> # # The buffer will now contain “<h1>Hello <em>world</em>!</h1>” # # @param [String] string The string to escape # # @return [String] The escaped string 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 string.gsub('&', '&') .gsub('<', '<') .gsub('>', '>') .gsub('"', '"') 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 alias_method :h, :html_escape end end
Version data entries
6 entries across 6 versions & 1 rubygems