module ReVIEW::HTMLUtils

Constants

ESC

Public Instance Methods

escape(str)
Alias for: escape_html
escape_comment(str) click to toggle source
# File lib/review/htmlutils.rb, line 39
def escape_comment(str)
  str.gsub('-', '-')
end
escape_html(str) click to toggle source
# File lib/review/htmlutils.rb, line 21
def escape_html(str)
  t = ESC
  str.gsub(/[&"<>]/) {|c| t[c] }
end
Also aliased as: escape
highlight(ops) click to toggle source
# File lib/review/htmlutils.rb, line 48
def highlight(ops)
  body = ops[:body] || ''
  if @book.config["highlight"] && @book.config["highlight"]["lang"]
    lexer = @book.config["highlight"]["lang"] # default setting
  else
    lexer = 'text'
  end
  lexer = ops[:lexer] if ops[:lexer].present?
  format = ops[:format] || ''
  options = {:nowrap => true, :noclasses => true}
  if ops[:options] && ops[:options].kind_of?(Hash)
    options.merge!(ops[:options])
  end
  return body if !highlight?

  begin
    require 'pygments'
    begin
      Pygments.highlight(
               unescape_html(body),
               :options => options,
               :formatter => format,
               :lexer => lexer)
    rescue MentosError
      body
    end
  rescue LoadError
    body
  end
end
highlight?() click to toggle source
# File lib/review/htmlutils.rb, line 43
def highlight?
  @book.config["pygments"].present? ||
    @book.config["highlight"] && @book.config["highlight"]["html"] == "pygments"
end
normalize_id(id) click to toggle source
# File lib/review/htmlutils.rb, line 79
def normalize_id(id)
  if id =~ /\A[a-z][a-z0-9_.-]*\Z/i
    return id
  elsif id =~ /\A[0-9_.-][a-z0-9_.-]*\Z/i
    return "id_#{id}" # dummy prefix
  else
    return "id_#{CGI.escape(id.gsub("_", "__")).gsub("%", "_").gsub("+", "-")}" # escape all
  end
end
strip_html(str) click to toggle source
# File lib/review/htmlutils.rb, line 35
def strip_html(str)
  str.gsub(/<\/?[^>]*>/, "")
end
unescape(str)
Alias for: unescape_html
unescape_html(str) click to toggle source
# File lib/review/htmlutils.rb, line 28
def unescape_html(str)
  # FIXME better code
  str.gsub('&quot;', '"').gsub('&gt;', '>').gsub('&lt;', '<').gsub('&amp;', '&')
end
Also aliased as: unescape