Sha256: 5412e5bb4cd5f45d4efc1ae49e879cd866f5d8b9a885bc87e190250d5153caca

Contents?: true

Size: 1.77 KB

Versions: 32

Compression:

Stored size: 1.77 KB

Contents

module Slideshow
 module Syntax
  module ShHelper

  # sh option defaults
  SH_LANG         = 'ruby'
  SH_LINE_NUMBERS = 'true'

def sh_worker( code, opts )
  
  lang         = opts.fetch( :lang, headers.get( 'code-language', SH_LANG ))
  line_numbers_value = opts.fetch( :line_numbers, headers.get( 'code-line-numbers', SH_LINE_NUMBERS ))
  line_numbers = (line_numbers_value =~ /true|yes|on/i) ? true : false
     
  # note: code gets highlighted at runtime in client (using JavaScript)  
  code_highlighted = CGI::escapeHTML( code )
  
  css_class = 'code'
  css_class_opt = opts.fetch( :class, nil ) #  large, small, tiny, etc.
  css_class << " #{css_class_opt}" if css_class_opt   # e.g. use/allow multiple classes -> code small, code large, etc.
   
  out =  %{<div class='#{css_class}'><pre class='brush: #{lang} toolbar: false gutter: #{line_numbers ? 'true' : 'false'}'>}
  out << code_highlighted
  out << %{</pre></div>\n}
    
  name        = opts.fetch( :name, nil )
  txmt_value  = opts.fetch( :txmt, headers.code_txmt )
  txmt        = (txmt_value =~ /true|yes|on/i) ? true : false
    
  # add optional href link for textmate
  if name
    out << %{<div class="codeurl">}
    out << %{<a href="txmt://open?url=file://#{File.expand_path(name)}">} if txmt  
    out << name
    out << %{</a>} if txmt
    out << %{</div>\n}
  end
          
  return out 
end  

def sv( *args, &blk )   
  # check for optional hash for options
  opts = args.last.kind_of?(Hash) ? args.pop : {}
   
  code = capture_erb(&blk)
  return if code.empty?
    
  code_highlighted = sv_worker( code, opts )
    
  concat_erb( guard_block( code_highlighted ), blk.binding )
  return
end  
    
end   # module ShHelper
end  # module Syntax
end # module Slideshow

class Slideshow::Gen
  include Slideshow::Syntax::ShHelper
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
slideshow-2.3.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-2.2.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-2.1.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-2.0.1 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-2.0.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.5 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.4 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.3 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.2 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.1 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0.beta5 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0.beta4 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0.beta3 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0.beta2 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.2.0.beta1 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.1.0 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.1.0.beta8 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.1.0.beta7 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-1.1.0.beta6 lib/slideshow/helpers/syntax/sh_helper.rb