Sha256: c79077966c666faec105fb10bac6a26ac8ef51262ce3b29964f4471c307dae1e

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

#
# $Id: htmlutils.rb 2227 2006-05-13 00:09:08Z aamine $
#
# Copyright (c) 2002-2006 Minero Aoki
#
# This program is free software.
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
#

module ReVIEW

  module HTMLUtils
    ESC = {
      '&' => '&',
      '<' => '&lt;',
      '>' => '&gt;',
      '"' => '&quot;'
    }

    def escape_html(str)
      t = ESC
      str.gsub(/[&"<>]/) {|c| t[c] }
    end

    def unescape_html(str)
      # FIXME better code
      str.gsub('&quot;', '"').gsub('&gt;', '>').gsub('&lt;', '<').gsub('&amp;', '&')
    end

    def strip_html(str)
      str.gsub(/<\/?[^>]*>/, "")
    end

    def highlight(ops)
      body = ops[:body] || ''
      lexer = ops[:lexer] || ''
      format = ops[:format] || ''

      return body if ReVIEW.book.param["pygments"].nil?

      begin
        require 'pygments'
        begin
          Pygments.highlight(
                   unescape_html(body),
                   :options => {
                               :nowrap => true,
                               :noclasses => true
                             },
                   :formatter => format,
                   :lexer => lexer)
        rescue MentosError
          body
        end
      rescue LoadError
          body
      end
    end
  end
end   # module ReVIEW

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
review-1.2.0 lib/review/htmlutils.rb