Class: RDoc::Markup::ToAnsi
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: | |
| Instance Chain: | |
| Inherits: | RDoc::Markup::ToRdoc 
 | 
| Defined in: | lib/rdoc/markup/to_ansi.rb | 
Overview
Outputs RDoc markup with vibrant ANSI color!
Class Method Summary
- 
    
      .new(markup = nil)  ⇒ ToAnsi 
    
    constructor
    Creates a new ToAnsivisitor that is ready to output vibrant ANSI color!
ToRdoc - Inherited
| .new | Creates a new formatter that will output (mostly) RDoc markup. | 
Formatter - Inherited
| .gen_relative_url | Converts a target url to one that is relative to a given path. | 
| .new | Creates a new  | 
Instance Attribute Summary
ToRdoc - Inherited
| #indent | Current indent amount for output in characters. | 
| #list_index | Stack of current list indexes for alphabetic and numeric lists. | 
| #list_type | Stack of list types. | 
| #list_width | Stack of list widths for indentation. | 
| #prefix | Prefix for the next list item. | 
| #res | Output accumulator. | 
| #width | Output width in characters. | 
Formatter - Inherited
| #in_tt? | Are we currently inside tt tags? | 
Instance Method Summary
- 
    
      #accept_list_item_end(list_item)  
    
    Overrides indent width to ensure output lines up correctly. 
- 
    
      #accept_list_item_start(list_item)  
    
    Adds coloring to note and label list items. 
- 
    
      #init_tags  
    
    Maps attributes to ANSI sequences. 
- 
    
      #start_accepting  
    
    Starts accepting with a reset screen. 
ToRdoc - Inherited
| #accept_blank_line | Adds  | 
| #accept_block_quote | Adds  | 
| #accept_heading | Adds  | 
| #accept_indented_paragraph | Adds  | 
| #accept_list_end | Finishes consumption of  | 
| #accept_list_item_end | Finishes consumption of  | 
| #accept_list_item_start | Prepares the visitor for consuming  | 
| #accept_list_start | Prepares the visitor for consuming  | 
| #accept_paragraph | Adds  | 
| #accept_raw | Adds  | 
| #accept_rule | Adds  | 
| #accept_table | Adds  | 
| #accept_verbatim | Outputs  | 
| #attributes | Applies attribute-specific markup to  | 
| #end_accepting | Returns the generated output. | 
| #handle_regexp_HARD_BREAK | Adds a newline to the output. | 
| #handle_regexp_SUPPRESSED_CROSSREF | Removes preceding \ from the suppressed crossref  | 
| #init_tags | Maps attributes to HTML sequences. | 
| #start_accepting | Prepares the visitor for text generation. | 
| #use_prefix | Adds the stored  | 
| #wrap | Wraps  | 
Formatter - Inherited
| #accept_document | Adds  | 
| #add_regexp_handling_RDOCLINK | Adds a regexp handling for links of the form rdoc-…: | 
| #add_regexp_handling_TIDYLINK | Adds a regexp handling for links of the form  | 
| #add_tag | Add a new set of tags for an attribute. | 
| #annotate | Allows  | 
| #convert | Marks up  | 
| #convert_flow | Converts flow items  | 
| #convert_regexp_handling | Converts added regexp handlings. | 
| #convert_string | Converts a string to be fancier if desired. | 
| #ignore | Use ignore in your subclass to ignore the content of a node. | 
| #off_tags | Turns off tags for  | 
| #on_tags | Turns on tags for  | 
| #parse_url | Extracts and a scheme, url and an anchor id from  | 
| #tt? | Is  | 
Constructor Details
    .new(markup = nil)  ⇒ ToAnsi 
  
Creates a new ToAnsi visitor that is ready to output vibrant ANSI color!
# File 'lib/rdoc/markup/to_ansi.rb', line 10
def initialize markup = nil super @headings.clear @headings[1] = ["\e[1;32m", "\e[m"] # bold @headings[2] = ["\e[4;32m", "\e[m"] # underline @headings[3] = ["\e[32m", "\e[m"] # just green end
Instance Method Details
#accept_list_item_end(list_item)
Overrides indent width to ensure output lines up correctly.
# File 'lib/rdoc/markup/to_ansi.rb', line 31
def accept_list_item_end list_item width = case @list_type.last when :BULLET then 2 when :NOTE, :LABEL then if @prefix then @res << @prefix.strip @prefix = nil end @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
#accept_list_item_start(list_item)
Adds coloring to note and label list items
# File 'lib/rdoc/markup/to_ansi.rb', line 55
def accept_list_item_start list_item bullet = case @list_type.last when :BULLET then '*' when :NOTE, :LABEL then labels = Array(list_item.label).map do |label| attributes(label).strip end.join "\n" labels << ":\n" unless labels.empty? labels 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
#init_tags
Maps attributes to ANSI sequences
# File 'lib/rdoc/markup/to_ansi.rb', line 22
def add_tag :BOLD, "\e[1m", "\e[m" add_tag :TT, "\e[7m", "\e[m" add_tag :EM, "\e[4m", "\e[m" end
#start_accepting
Starts accepting with a reset screen
# File 'lib/rdoc/markup/to_ansi.rb', line 87
def start_accepting super @res = ["\e[0m"] end