From 3d8868dd0b9898d589ecdff5151ed5d47956f937 Mon Sep 17 00:00:00 2001 From: murphy Date: Sat, 1 Oct 2005 06:04:52 +0000 Subject: Demos updated, rewritten, enhanced, tested. Some code cleanups. Bugs fixed, scanner and encoder improved: count.rb: marked Streamable html_css.rb: style for inline numbers html.rb: changed options; :line_numbers_offset is now :line_number_start html_output.rb: offset for inline numbers fixed html.rb: token text no longer changed by gsub! while highlighting (this is even faster!) text.rb, plugin.rb: reindented ruby.rb: eleminated multiple assignments for speed tokens.rb: reindented, Tokens#to_s added, #<< returns self Plugin system: bugs fixed, error messages improved. --- lib/coderay/encoders/helpers/html_css.rb | 6 +++++- lib/coderay/encoders/helpers/html_output.rb | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) (limited to 'lib/coderay/encoders/helpers') diff --git a/lib/coderay/encoders/helpers/html_css.rb b/lib/coderay/encoders/helpers/html_css.rb index 5c39527..a3c50eb 100644 --- a/lib/coderay/encoders/helpers/html_css.rb +++ b/lib/coderay/encoders/helpers/html_css.rb @@ -46,6 +46,8 @@ module CodeRay module Encoders border: 1px solid silver; font-family: 'Courier New', 'Terminal', monospace; color: black; + width: 100%; + padding: 2px; } .CodeRay pre { margin: 0px; } @@ -56,12 +58,14 @@ span.CodeRay { white-space: pre; border: 0; } table.CodeRay { border-collapse: collapse; } table.CodeRay td { padding: 2px 4px; vertical-align: top; } -.CodeRay .line_numbers { +.CodeRay .line_numbers, .CodeRay .no { background-color: #def; color: gray; text-align: right; } .CodeRay .line_numbers tt { font-weight: bold; } +.CodeRay .no { padding: 0px 4px; } +.CodeRay .code { width: 100%; } .CodeRay .code { } diff --git a/lib/coderay/encoders/helpers/html_output.rb b/lib/coderay/encoders/helpers/html_output.rb index c873896..f6a2b11 100644 --- a/lib/coderay/encoders/helpers/html_output.rb +++ b/lib/coderay/encoders/helpers/html_output.rb @@ -100,9 +100,9 @@ module CodeRay def numerize! mode = :table, options = {} return self unless mode - offset = options.fetch :line_numbers_offset, DEFAULT_OPTIONS[:line_numbers_offset] - unless offset.is_a? Integer - raise ArgumentError, "Invalid value %p for :offset; Integer expected." % offset + start = options.fetch :line_number_start, DEFAULT_OPTIONS[:line_number_start] + unless start.is_a? Integer + raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start end unless NUMERIZABLE_WRAPPINGS.include? options[:wrap] @@ -130,11 +130,11 @@ module CodeRay case mode when :inline - max_width = line_count.to_s.size - line = offset - 1 + max_width = (start + line_count).to_s.size + line = start gsub!(/^/) do - line += 1 line_number = bolding.call line + line += 1 "#{ line_number.rjust(max_width) } " end wrap! :div @@ -144,7 +144,7 @@ module CodeRay # Because even monospace fonts seem to have different heights when bold, # I make the newline bold, both in the code and the line numbers. # FIXME Still not working perfect for Mr. Internet Exploder - line_numbers = (offset ... offset + line_count).to_a.map(&bolding).join("\n") + line_numbers = (start ... start + line_count).to_a.map(&bolding).join("\n") line_numbers << "\n" # also for Mr. MS Internet Exploder :-/ line_numbers.gsub!(/\n/) { "\n" } @@ -196,19 +196,22 @@ module CodeRay #-- don't include the templates in docu - SPAN = `<%CONTENT%>` + SPAN = `<%CONTENT%>` - DIV, DIV_TABLE, PAGE = - <<-`DIV`, <<-`DIV_TABLE`, <<-`PAGE` + DIV = <<-`DIV`
<%CONTENT%>
DIV + + DIV_TABLE = <<-`DIV_TABLE`
<%LINE_NUMBERS%>
<%CONTENT%>
DIV_TABLE + + PAGE = <<-`PAGE` -- cgit v1.2.1