Sha256: 5d41e8565a21c7738713b5de9b1143f52c78a40d4df740720373c7cadad64e8f

Contents?: true

Size: 1.74 KB

Versions: 4

Compression:

Stored size: 1.74 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, 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

4 entries across 4 versions & 1 rubygems

Version Path
slideshow-0.9.10 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-0.9.9 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-0.9.8 lib/slideshow/helpers/syntax/sh_helper.rb
slideshow-0.9.7 lib/slideshow/helpers/syntax/sh_helper.rb