Sha256: e319ee5051436a75dadb9ab4a2ef8c1917617a44fed178a4ff267407d87281d3

Contents?: true

Size: 789 Bytes

Versions: 14

Compression:

Stored size: 789 Bytes

Contents

require 'uv'

module Bricks
  module Uv
    module SyntaxMethods
      SYNTAXES = Hash[*::Uv.syntaxes.map{|s| [s,true]}.flatten]

      def to_html(opts = {})
        theme = opts[:theme] || 'idle'
        line_numbers = (opts[:line_numbers] == 'true') && !opts[:inline]
        code_class = "#{theme}_code"

        if SYNTAXES[@code_lang]
          res = ::Uv.parse(@text, 'xhtml', @code_lang, line_numbers, theme)
          if opts[:inline]
            res.gsub(/\A<pre class=.#{theme}.>/,"<code class='#{code_class}'>").gsub(%r{</pre>\Z}, '</code>')
          else
            res.gsub(/\A<pre class=.#{theme}.>/,"<pre class='#{code_class}'>").gsub(%r{</pre>\Z}, '</pre>')
          end
        else
          super
        end
      end
    end # SyntaxMethods
  end # Uv
end # Bricks

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
zena-1.2.8 bricks/uv/lib/bricks/uv.rb
zena-1.2.7 bricks/uv/lib/bricks/uv.rb
zena-1.2.6 bricks/uv/lib/bricks/uv.rb
zena-1.2.5 bricks/uv/lib/bricks/uv.rb
zena-1.2.4 bricks/uv/lib/bricks/uv.rb
zena-1.2.3 bricks/uv/lib/bricks/uv.rb
zena-1.2.2 bricks/uv/lib/bricks/uv.rb
zena-1.2.1 bricks/uv/lib/bricks/uv.rb
zena-1.2.0 bricks/uv/lib/bricks/uv.rb
zena-1.1.3 bricks/uv/lib/bricks/uv.rb
zena-1.1.2 bricks/uv/lib/bricks/uv.rb
zena-1.1.1 bricks/uv/lib/bricks/uv.rb
zena-1.1.0 bricks/uv/lib/bricks/uv.rb
zena-1.0.0 bricks/uv/lib/bricks/uv.rb