class Deck::SlideDeck

Attributes

extensions[R]

Public Instance Methods

body_attributes() click to toggle source
# File lib/deck/slide_deck.rb, line 101
def body_attributes
  {:class => "deck-container"}
end
body_content() click to toggle source
# File lib/deck/slide_deck.rb, line 105
def body_content
  slides
  slide_navigation
  toc
  deck_status
  goto_slide
  permalink
  scripts
end
deck_status() click to toggle source
# File lib/deck/slide_deck.rb, line 172
def deck_status
  p :class => 'deck-status' do
    span :class => 'deck-status-current' do
    end
    text '/'
    span :class => 'deck-status-total' do
    end
  end
end
default_slide() click to toggle source
# File lib/deck/slide_deck.rb, line 133
def default_slide
  slide 'readme' do
    h2 "deck.rb"
    ul {
      li "based on deck.js"
      li "create a subclass of Deck (see introduction.rb)"
      li "run erector to build it"
    }
    pre "erector --to-html ./deck.rb  # generates deck.html"
  end
end
entity(entity_id) click to toggle source

todo: promote into Text todo: support numbers a la ‘Ӓ’

# File lib/deck/slide_deck.rb, line 32
def entity entity_id
  raw("&#{entity_id};")
end
goto_slide() click to toggle source
# File lib/deck/slide_deck.rb, line 182
def goto_slide
  form :action => '.', :method => 'get', :class => 'goto-form' do
    label :for => 'goto-slide' do
      text 'Go to slide:'
    end
    input :type => 'text', :name => 'slidenum', :id => 'goto-slide', :list => 'goto-datalist'
    datalist :id => 'goto-datalist' do
    end
    input :type => 'submit', :value => 'Go'
  end
end
head_content() click to toggle source
Calls superclass method
# File lib/deck/slide_deck.rb, line 53
def head_content
  super
  meta 'charset' => 'utf-8'
  meta 'http-equiv' => "X-UA-Compatible", 'content' => "IE=edge,chrome=1"
  meta :name => "viewport", :content => "width=1024, user-scalable=no"
  meta :name => "description", :content => @description if @description
  meta :name => "author", :content => @author if @author

  #  <!-- Core and extension CSS files -->
  stylesheet public_asset("deck.js/core/deck.core.css")
  extensions.each do |extension|
    stylesheet public_asset("deck.js/extensions/#{extension}/deck.#{extension}.css")
  end

  # <!-- Theme CSS files -->
  stylesheet public_asset("deck.js/themes/style/#{@style}.css"), :id => "style-theme-link"
  stylesheet public_asset("deck.js/themes/transition/#{@transition}.css"), :id => "transition-theme-link"

  stylesheet public_asset("coderay.css")
  stylesheet public_asset("tables.css")
  stylesheet public_asset("toc.css")
end
page_title() click to toggle source
# File lib/deck/slide_deck.rb, line 26
def page_title
  @title
end
public_asset(path) click to toggle source
# File lib/deck/slide_deck.rb, line 49
def public_asset path
  "/#{path}"
end
scripts() click to toggle source
# File lib/deck/slide_deck.rb, line 76
    def scripts
      script :src => public_asset("deck.js/modernizr.custom.js")

      # comment 'Grab CDN jQuery, with a protocol relative URL; fall back to local if offline'
      # script :src => '//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js'
      script :src => public_asset('deck.js/jquery-1.7.2.min.js')

      jquery <<-JAVASCRIPT
    $('.slide_toc .toggle').click(function(){
      $('.slide_toc .table').toggle();
    });
      JAVASCRIPT

      comment 'Deck Core and extensions'
      script :type => "text/javascript", :src => public_asset('deck.js/core/deck.core.js')

      extensions.each do |extension|
        script :type => "text/javascript", :src => public_asset("deck.js/extensions/#{extension}/deck.#{extension}.js")
      end

      # fire up deck.js
      script raw("$(function(){$.deck('.slide');});")

    end
slide(slide_id) { || ... } click to toggle source
# File lib/deck/slide_deck.rb, line 115
def slide slide_id
  # todo: use Slide object, but without markdown
  # slide = Slide.new(:slide_id => slide_id)
  section.slide :id => slide_id do
    yield
  end
end
slide_navigation() click to toggle source
# File lib/deck/slide_deck.rb, line 145
def slide_navigation
  a :href => '#', :class => 'deck-prev-link', :title => 'Previous' do
    character 8592
  end
  a :href => '#', :class => 'deck-next-link', :title => 'Next' do
    character 8594
  end
end
slides() click to toggle source
# File lib/deck/slide_deck.rb, line 123
def slides
  if @slides
    @slides.each do |slide|
      widget slide
    end
  else
    default_slide
  end
end
stylesheet(src, attributes = {}) click to toggle source

todo: promote into Page

# File lib/deck/slide_deck.rb, line 45
def stylesheet src, attributes = {}
  link({:rel => "stylesheet", :href => src}.merge(attributes))
end
toc() click to toggle source
# File lib/deck/slide_deck.rb, line 154
def toc
  div.slide_toc do
    div.toggle "[contents]"
    div.table do
      h2 @title
      ul do
        if @slides
          @slides.each do |slide|
            li do
              a slide.title, :href => "##{slide.slide_id}"
            end
          end
        end
      end
    end
  end
end