Sha256: eb5e6051b6c4b3be9cb24c1ccfaf9e126a2f633f317f0022a46d0df7e264be29

Contents?: true

Size: 743 Bytes

Versions: 8

Compression:

Stored size: 743 Bytes

Contents

# frozen_string_literal: true

require 'rouge'

module Jazzy
  # This module helps highlight code
  module Highlighter
    SWIFT = 'swift'
    OBJC = 'objective_c'

    class Formatter < Rouge::Formatters::HTML
      def initialize(language)
        @language = language
        super()
      end

      def stream(tokens, &block)
        yield "<pre class=\"highlight #{@language}\"><code>"
        super
        yield "</code></pre>\n"
      end
    end

    def self.highlight_swift(source)
      highlight(source, SWIFT)
    end

    def self.highlight_objc(source)
      highlight(source, OBJC)
    end

    def self.highlight(source, language)
      source && Rouge.highlight(source, language, Formatter.new(language))
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
jazzy-0.15.3 lib/jazzy/highlighter.rb
jazzy-0.15.2 lib/jazzy/highlighter.rb
jazzy-0.15.1 lib/jazzy/highlighter.rb
jazzy-0.15.0 lib/jazzy/highlighter.rb
jazzy-0.14.4 lib/jazzy/highlighter.rb
jazzy-0.14.3 lib/jazzy/highlighter.rb
jazzy-0.14.2 lib/jazzy/highlighter.rb
jazzy-0.14.0 lib/jazzy/highlighter.rb