Class: Deck::SlideDeck
- Inherits:
-
Erector::Widgets::Page
- Object
- Erector::Widgets::Page
- Deck::SlideDeck
- Defined in:
- lib/deck/slide_deck.rb
Instance Attribute Summary collapse
-
#extensions ⇒ Object
readonly
Returns the value of attribute extensions.
Instance Method Summary collapse
- #body_attributes ⇒ Object
- #body_content ⇒ Object
- #deck_status ⇒ Object
- #default_slide ⇒ Object
-
#entity(entity_id) ⇒ Object
todo: promote into Text todo: support numbers a la ‘Ӓ’.
- #goto_slide ⇒ Object
- #head_content ⇒ Object
- #page_title ⇒ Object
- #permalink ⇒ Object
- #public_asset(path) ⇒ Object
- #scripts ⇒ Object
- #slide(slide_id) ⇒ Object
- #slide_navigation ⇒ Object
- #slides ⇒ Object
-
#stylesheet(src, attributes = {}) ⇒ Object
todo: promote into Page.
- #toc ⇒ Object
Instance Attribute Details
#extensions ⇒ Object (readonly)
Returns the value of attribute extensions.
24 25 26 |
# File 'lib/deck/slide_deck.rb', line 24 def extensions @extensions end |
Instance Method Details
#body_attributes ⇒ Object
101 102 103 |
# File 'lib/deck/slide_deck.rb', line 101 def body_attributes {:class => "deck-container"} end |
#body_content ⇒ Object
105 106 107 108 109 110 111 112 113 |
# File 'lib/deck/slide_deck.rb', line 105 def body_content toc deck_status permalink scripts end |
#deck_status ⇒ Object
172 173 174 175 176 177 178 179 180 |
# 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 ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/deck/slide_deck.rb', line 133 def '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) ⇒ Object
todo: promote into Text todo: support numbers a la ‘Ӓ’
32 33 34 |
# File 'lib/deck/slide_deck.rb', line 32 def entity entity_id raw("&#{entity_id};") end |
#goto_slide ⇒ Object
182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/deck/slide_deck.rb', line 182 def 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 ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/deck/slide_deck.rb', line 53 def head_content super 'charset' => 'utf-8' 'http-equiv' => "X-UA-Compatible", 'content' => "IE=edge,chrome=1" :name => "viewport", :content => "width=1024, user-scalable=no" :name => "description", :content => @description if @description :name => "author", :content => if # <!-- 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 ⇒ Object
26 27 28 |
# File 'lib/deck/slide_deck.rb', line 26 def page_title @title end |
#permalink ⇒ Object
194 195 196 |
# File 'lib/deck/slide_deck.rb', line 194 def permalink a "#", :href => '.', :title => 'Permalink to this slide', :class => 'deck-permalink' end |
#public_asset(path) ⇒ Object
49 50 51 |
# File 'lib/deck/slide_deck.rb', line 49 def public_asset path "/#{path}" end |
#scripts ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# 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 "$('.slide_toc .toggle').click(function(){\n $('.slide_toc .table').toggle();\n});\n JAVASCRIPT\n\n comment 'Deck Core and extensions'\n script :type => \"text/javascript\", :src => public_asset('deck.js/core/deck.core.js')\n\n extensions.each do |extension|\n script :type => \"text/javascript\", :src => public_asset(\"deck.js/extensions/\#{extension}/deck.\#{extension}.js\")\n end\n\n # fire up deck.js\n script \"$(function(){$.deck('.slide');});\"\n\nend\n" |
#slide(slide_id) ⇒ Object
115 116 117 118 119 120 121 |
# File 'lib/deck/slide_deck.rb', line 115 def # todo: use Slide object, but without markdown # slide = Slide.new(:slide_id => slide_id) section. :id => do yield end end |
#slide_navigation ⇒ Object
145 146 147 148 149 150 151 152 |
# File 'lib/deck/slide_deck.rb', line 145 def 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 ⇒ Object
123 124 125 126 127 128 129 130 131 |
# File 'lib/deck/slide_deck.rb', line 123 def if .each do || end else end end |
#stylesheet(src, attributes = {}) ⇒ Object
todo: promote into Page
45 46 47 |
# File 'lib/deck/slide_deck.rb', line 45 def stylesheet src, attributes = {} link({:rel => "stylesheet", :href => src}.merge(attributes)) end |
#toc ⇒ Object
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/deck/slide_deck.rb', line 154 def toc div. do div.toggle "[contents]" div.table do h2 @title ul do if .each do || li do a .title, :href => "##{slide.slide_id}" end end end end end end end |