diff options
author | murphy <murphy@rubychan.de> | 2007-01-01 02:58:58 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2007-01-01 02:58:58 +0000 |
commit | 9b2710502466667dde1a9d6ce22d952ae8ad4dc7 (patch) | |
tree | 932b6d1bbecdc8ced8a0a6cc1de22239cd78e0cf /lib/coderay/encoders/html.rb | |
parent | 4b61c645eddcc387eacaf9cb55dd6f56716d9642 (diff) | |
download | coderay-9b2710502466667dde1a9d6ce22d952ae8ad4dc7.tar.gz |
Done:
General:
- Declared version 0.7.6.
- Moved WordList, CaseIgnoringWordList, Plugin, PluginHost and FileType
into CodeRay namespace. CodeRay should be "clean" now, except for the
String#to_unix helper function.
- Fixed a bit of documentation.
- CodeRay binary: Prepare for streaming switch.
Scanners:
- Added code= alias for string=.
- Added streaming? method: Is this Scanner in streaming mode?
- Enhanced error info a bit.
- Ruby scanner:
- Highlights Regexp heredocs now. They may be added to Ruby 1.9.
- Speedups with better support for Ruby 1.9.
- Change in whitespace handling (faster and cleaner now.)
- Speed up some operator recognition (saving two string comparisons).
- Declared C and Plaintext Scanners as Streamable.
Tokens:
- Changed Text/Block token recognition (#is_a? ::String for Ruby 1.9 support).
- New method: Tokens#text yields the code string.
- text_size fixed.
- Token kind shortcuts (like r for reserved) are now defined in
token_classes.rb (instead of encoders/html/classes.rb).
Encoders:
- Debug Scanner added.
- Base encoder class adds to @out when encoding (if @out is set).
- A little Tokens scanner speedup.
- Text encoder uses text_token.
- Statistic encoder counts block tokens.
- Smaller changes in XML and HTML encoders.
Styles:
- cYcnus style defines a debug class now.
Duo:
- scanner and encoder are now methods. Scanner and Encoder are created (and
cached) when needed, not earlier.
- Documented.
Tests:
- Disabled encoder and scanner list check (breaks too often).
- Added identity test, which checks if tokens#text matches the input.
- Added nocolor switch.
Developer tools:
- Benchmark uses Encoder#file_extension for output now.
- Rakefile: Support for 19, 18, yarv and ruby switches for easy comparing
different Ruby versions.
- Statistic: Demos are no longer tests.
Diffstat (limited to 'lib/coderay/encoders/html.rb')
-rw-r--r-- | lib/coderay/encoders/html.rb | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/lib/coderay/encoders/html.rb b/lib/coderay/encoders/html.rb index 3ee677a..32e35f8 100644 --- a/lib/coderay/encoders/html.rb +++ b/lib/coderay/encoders/html.rb @@ -86,7 +86,7 @@ module Encoders :hint => false, } - helper :classes, :output, :css + helper :output, :css attr_reader :css @@ -119,15 +119,14 @@ module Encoders end } - TRANSPARENT_TOKEN_KINDS = Set[ + TRANSPARENT_TOKEN_KINDS = [ :delimiter, :modifier, :content, :escape, :inline_delimiter, - ] + ].to_set # Generate a hint about the given +classes+ in a +hint+ style. # # +hint+ may be :info, :info_long or :debug. def self.token_path_to_hint hint, classes - return '' unless hint title = case hint when :info @@ -159,29 +158,28 @@ module Encoders when :class @css_style = Hash.new do |h, k| - if k.is_a? Array - type = k.first - else - type = k - end - c = ClassOfKind[type] + c = Tokens::ClassOfKind[k.first] if c == :NO_HIGHLIGHT and not hint - h[k] = false + h[k.dup] = false else - title = HTML.token_path_to_hint hint, (k[1..-1] << k.first) - h[k] = '<span%s class="%s">' % [title, c] + title = if hint + HTML.token_path_to_hint(hint, k[1..-1] << k.first) + else + '' + end + h[k.dup] = '<span%s class="%s">' % [title, c] end end when :style @css_style = Hash.new do |h, k| - if k.is_a? Array + if k.is_a? ::Array styles = k.dup else styles = [k] end type = styles.first - classes = styles.map { |c| ClassOfKind[c] } + classes = styles.map { |c| Tokens::ClassOfKind[c] } if classes.first == :NO_HIGHLIGHT and not hint h[k] = false else |