class Rouge::Formatters::HTMLLineTable

def initialize(formatter, opts={})

Options Hash: (**opts)
  • :code_class (String) -- Class name for rendered code cell.
  • :gutter_class (String) -- Class name for rendered line-number cell.
  • :line_class (String) -- Class name for each table row.
  • :line_id (String) -- a `sprintf` template for generating an `id`
  • :table_class (String) -- Class name for the table.
  • :start_line (Integer) -- line number to start from. Defaults to `1`.

Parameters:
  • opts (Hash) -- options for HTMLLineTable instance.
  • formatter (Rouge::Formatters::Formatter) -- An instance of a
def initialize(formatter, opts={})
  @formatter    = formatter
  @start_line   = opts.fetch :start_line,   1
  @table_class  = opts.fetch :table_class,  'rouge-line-table'
  @gutter_class = opts.fetch :gutter_class, 'rouge-gutter'
  @code_class   = opts.fetch :code_class,   'rouge-code'
  @line_class   = opts.fetch :line_class,   'lineno'
  @line_id      = opts.fetch :line_id,      'line-%i'
end

def stream(tokens, &b)

def stream(tokens, &b)
  lineno = @start_line - 1
  buffer = [%(<table class="#@table_class"><tbody>)]
  token_lines(tokens) do |line_tokens|
    lineno += 1
    buffer << %(<tr id="#{sprintf @line_id, lineno}" class="#@line_class">)
    buffer << %(<td class="#@gutter_class gl" )
    buffer << %(style="-moz-user-select: none;-ms-user-select: none;)
    buffer << %(-webkit-user-select: none;user-select: none;">)
    buffer << %(<pre>#{lineno}</pre></td>)
    buffer << %(<td class="#@code_class"><pre>)
    @formatter.stream(line_tokens) { |formatted| buffer << formatted }
    buffer << "\n</pre></td></tr>"
  end
  buffer << %(</tbody></table>)
  yield buffer.join
end