Class: Rouge::Formatters::Terminal256
- Inherits:
-
Rouge::Formatter
- Object
- Rouge::Formatter
- Rouge::Formatters::Terminal256
- Defined in:
- lib/rouge/formatters/terminal256.rb
Overview
A formatter for 256-color terminals
Defined Under Namespace
Classes: EscapeSequence
Constant Summary
Constants inherited from Rouge::Formatter
Instance Attribute Summary collapse
- #theme ⇒ Object readonly
Instance Method Summary collapse
-
#escape_sequence(token) ⇒ Object
private.
- #get_style(token) ⇒ Object
-
#initialize(opts = {}) ⇒ Terminal256
constructor
A new instance of Terminal256.
- #stream(tokens, &b) ⇒ Object
- #text_style ⇒ Object
Methods inherited from Rouge::Formatter
find, format, #format, #render, tag
Constructor Details
#initialize(opts = {}) ⇒ Terminal256
Returns a new instance of Terminal256.
15 16 17 18 |
# File 'lib/rouge/formatters/terminal256.rb', line 15 def initialize(opts={}) @theme = opts[:theme] || 'thankful_eyes' @theme = Theme.find(@theme) if @theme.is_a? String end |
Instance Attribute Details
#theme ⇒ Object (readonly)
10 11 12 |
# File 'lib/rouge/formatters/terminal256.rb', line 10 def theme @theme end |
Instance Method Details
#escape_sequence(token) ⇒ Object
private
156 157 158 159 160 |
# File 'lib/rouge/formatters/terminal256.rb', line 156 def escape_sequence(token) @escape_sequences ||= {} @escape_sequences[token.name] ||= EscapeSequence.new(get_style(token)) end |
#get_style(token) ⇒ Object
162 163 164 165 166 |
# File 'lib/rouge/formatters/terminal256.rb', line 162 def get_style(token) return text_style if token.ancestors.include? Token::Tokens::Text theme.get_own_style(token) || text_style end |
#stream(tokens, &b) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/rouge/formatters/terminal256.rb', line 20 def stream(tokens, &b) tokens.each do |tok, val| escape = escape_sequence(tok) yield escape.style_string yield val.gsub("\n", "\n#{escape.style_string}") yield escape.reset_string end end |
#text_style ⇒ Object
168 169 170 171 172 173 |
# File 'lib/rouge/formatters/terminal256.rb', line 168 def text_style style = theme.get_style(Token['Text']) # don't highlight text backgrounds style.delete :bg style end |