Module: Nanoc::Helpers::HTMLEscape
Overview
Contains functionality for HTML-escaping strings.
Instance Method Summary collapse
-
#html_escape(string = nil, &block) ⇒ String
(also: #h)
Returns the HTML-escaped representation of the given string or the given block.
Methods included from Capturing
Instance Method Details
#html_escape(string = nil, &block) ⇒ String Also known as: h
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
.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/nanoc/helpers/html_escape.rb', line 27 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('&', '&') .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 |