Sha256: 7fb4cc1005f9ee1820b2123dc592d89f8f0f0987f07bc19de29cf932c22adace

Contents?: true

Size: 1010 Bytes

Versions: 35

Compression:

Stored size: 1010 Bytes

Contents

# -*- coding: utf-8 -*- #
# frozen_string_literal: true

# this file is not require'd from the root.  To use this plugin, run:
#
#    require 'rouge/plugins/redcarpet'

module Rouge
  module Plugins
    module Redcarpet
      def block_code(code, language)
        lexer =
          begin
            Lexer.find_fancy(language, code)
          rescue Guesser::Ambiguous => e
            e.alternatives.first
          end
        lexer ||= Lexers::PlainText

        # XXX HACK: Redcarpet strips hard tabs out of code blocks,
        # so we assume you're not using leading spaces that aren't tabs,
        # and just replace them here.
        if lexer.tag == 'make'
          code.gsub! %r/^    /, "\t"
        end

        formatter = rouge_formatter(lexer)
        formatter.format(lexer.lex(code))
      end

      # override this method for custom formatting behavior
      def rouge_formatter(lexer)
        Formatters::HTMLLegacy.new(:css_class => "highlight #{lexer.tag}")
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 2 rubygems

Version Path
rouge-4.5.1 lib/rouge/plugins/redcarpet.rb
rouge-4.5.0 lib/rouge/plugins/redcarpet.rb
rouge-4.4.0 lib/rouge/plugins/redcarpet.rb
rouge-4.3.0 lib/rouge/plugins/redcarpet.rb
rouge-4.2.1 lib/rouge/plugins/redcarpet.rb
rouge-4.2.0 lib/rouge/plugins/redcarpet.rb
rouge-4.1.3 lib/rouge/plugins/redcarpet.rb
rouge-4.1.2 lib/rouge/plugins/redcarpet.rb
rouge-4.1.1 lib/rouge/plugins/redcarpet.rb
mumukit-content-type-1.12.1 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/plugins/redcarpet.rb
mumukit-content-type-1.12.0 vendor/bundle/ruby/2.7.0/gems/rouge-3.30.0/lib/rouge/plugins/redcarpet.rb
rouge-4.1.0 lib/rouge/plugins/redcarpet.rb
rouge-4.0.1 lib/rouge/plugins/redcarpet.rb
rouge-4.0.0 lib/rouge/plugins/redcarpet.rb
rouge-3.30.0 lib/rouge/plugins/redcarpet.rb
rouge-3.29.0 lib/rouge/plugins/redcarpet.rb
rouge-3.28.0 lib/rouge/plugins/redcarpet.rb
rouge-3.27.0 lib/rouge/plugins/redcarpet.rb
rouge-3.26.1 lib/rouge/plugins/redcarpet.rb
mumukit-content-type-1.11.1 vendor/bundle/ruby/2.6.0/gems/rouge-3.26.0/lib/rouge/plugins/redcarpet.rb