Class: RDoc::Markup::ToAnsi
Overview
Outputs RDoc markup with vibrant ANSI color!
Instance Attribute Summary
Attributes inherited from ToRdoc
#indent, #list_index, #list_type, #list_width, #prefix, #res, #width
Instance Method Summary (collapse)
-
- (Object) accept_list_item_end(list_item)
Overrides indent width to ensure output lines up correctly.
-
- (Object) accept_list_item_start(list_item)
Adds coloring to note and label list items.
-
- (Object) init_tags
Maps attributes to ANSI sequences.
-
- (ToAnsi) initialize
constructor
Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!.
-
- (Object) start_accepting
Starts accepting with a reset screen.
Methods inherited from ToRdoc
#accept_blank_line, #accept_heading, #accept_list_end, #accept_list_start, #accept_paragraph, #accept_raw, #accept_rule, #accept_verbatim, #attributes, #end_accepting, #handle_special_SUPPRESSED_CROSSREF, #use_prefix, #wrap
Methods inherited from Formatter
#add_tag, #annotate, #convert, #convert_flow, #convert_special, #convert_string, #in_tt?, #off_tags, #on_tags, #tt?
Constructor Details
- (ToAnsi) initialize
Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!
11 12 13 14 15 16 17 18 |
# File 'lib/rdoc/markup/to_ansi.rb', line 11 def initialize super @headings.clear @headings[1] = ["\e[1;32m", "\e[m"] @headings[2] = ["\e[4;32m", "\e[m"] @headings[3] = ["\e[32m", "\e[m"] end |
Instance Method Details
- (Object) accept_list_item_end(list_item)
Overrides indent width to ensure output lines up correctly.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/rdoc/markup/to_ansi.rb', line 32 def accept_list_item_end list_item width = case @list_type.last when :BULLET then 2 when :NOTE, :LABEL then @res << "\n" unless res.length == 1 2 else bullet = @list_index.last.to_s @list_index[-1] = @list_index.last.succ bullet.length + 2 end @indent -= width end |
- (Object) accept_list_item_start(list_item)
Adds coloring to note and label list items
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rdoc/markup/to_ansi.rb', line 51 def accept_list_item_start list_item bullet = case @list_type.last when :BULLET then '*' when :NOTE, :LABEL then attributes(list_item.label) + ":\n" else @list_index.last.to_s + '.' end case @list_type.last when :NOTE, :LABEL then @indent += 2 @prefix = bullet + (' ' * @indent) else @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1) width = bullet.gsub(/\e\[[\d;]*m/, '').length + 1 @indent += width end end |
- (Object) init_tags
Maps attributes to ANSI sequences
23 24 25 26 27 |
# File 'lib/rdoc/markup/to_ansi.rb', line 23 def add_tag :BOLD, "\e[1m", "\e[m" add_tag :TT, "\e[7m", "\e[m" add_tag :EM, "\e[4m", "\e[m" end |
- (Object) start_accepting
Starts accepting with a reset screen
77 78 79 80 81 |
# File 'lib/rdoc/markup/to_ansi.rb', line 77 def start_accepting super @res = ["\e[0m"] end |