From b5dd1ba683fb9eb0a74ab0b1f54fd9977e0ed3be Mon Sep 17 00:00:00 2001 From: murphy Date: Sun, 27 Jun 2010 02:49:23 +0000 Subject: More speedups for HTML encoding (numbering, CSS styles, Ruby 1.9). --- lib/coderay/encoders/html.rb | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) (limited to 'lib/coderay/encoders/html.rb') diff --git a/lib/coderay/encoders/html.rb b/lib/coderay/encoders/html.rb index 9d1671d..bd48a72 100644 --- a/lib/coderay/encoders/html.rb +++ b/lib/coderay/encoders/html.rb @@ -185,45 +185,29 @@ module Encoders raise ArgumentError, "Unknown value %p for :hint; \ expected :info, :debug, false, or nil." % hint end - + + css_classes = Tokens::AbbreviationForKind case options[:css] when :class @css_style = Hash.new do |h, k| kind = k.is_a?(Symbol) ? k : k.first - c = Tokens::AbbreviationForKind[kind] h[k.is_a?(Symbol) ? k : k.dup] = - if c != :NO_HIGHLIGHT or (hint && kind != :space) - if hint - title = HTML.token_path_to_hint hint, k - end - if c == :NO_HIGHLIGHT - '' % [title] - else - '' % [title, c] - end + if kind != :space && (hint || css_classes[kind]) + title = HTML.token_path_to_hint hint, k if hint + css_class = css_classes[k] + "" end end when :style @css_style = Hash.new do |h, k| - if k.is_a?(Symbol) - kind = k - ks = [kind] - else - kind = k.first - ks = k - end - classes = ks.map { |c| Tokens::AbbreviationForKind[c] } + kind = k.is_a?(Symbol) ? k : k.first h[k.is_a?(Symbol) ? k : k.dup] = - if classes.first != :NO_HIGHLIGHT or (hint && kind != :space) - if hint - title = HTML.token_path_to_hint hint, k - end - style = @css[*classes] - if style - '' % [title, style] - end + if kind != :space && (hint || css_classes[kind]) + title = HTML.token_path_to_hint hint, k if hint + style = @css.get_style Array(k).map { |c| css_classes[c] } + "" end end -- cgit v1.2.1