showoff 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ div.zoomed {
2
+ zoom: 50%;
3
+ -moz-transform: scale(50%);
4
+ }
5
+
6
+ #preso { margin-top: 20px; }
7
+
8
+ #main h2 {
9
+ text-align: left;
10
+ font-size: 1.5em;
11
+ }
12
+
13
+ #progress {
14
+ padding: 10px;
15
+ }
16
+ #slideSource {
17
+ padding: 10px;
18
+ background: #9d9;
19
+ }
20
+
21
+ #preview {
22
+ min-height: 430px;
23
+ background: #777;
24
+ }
25
+
26
+ #links {
27
+ background: #fff;
28
+ padding: 10px;
29
+ text-align: right;
30
+ }
31
+ #links a { color: #000; }
32
+
33
+ #slidemenu {
34
+ background: #fff;
35
+ padding: 10px;
36
+ }
37
+ #slidemenu ul li {
38
+ padding: 5px;
39
+ }
40
+
41
+ #sidebar { background: #ddd; }
42
+
43
+ #notes {
44
+ background: #ff9;
45
+ font-size: 1.5em;
46
+ min-height: 150px;
47
+ padding: 20px;
48
+ }
49
+
50
+ .menu {
51
+ height: 350px;
52
+ max-height: 350px;
53
+ overflow:auto;
54
+ }
55
+
56
+ .menu a {
57
+ display: block;
58
+ color: #000;
59
+ }
60
+ .menu > ul > li > ul {
61
+ padding-left: 20px;
62
+ }
63
+ .menu > ul > li > a {
64
+ padding: 10px;
65
+ background: #eee;
66
+ }
@@ -0,0 +1,129 @@
1
+ // presenter js
2
+ var w = null;
3
+
4
+ $(function(){
5
+ w = window.open('/');
6
+ // side menu accordian crap
7
+ $("#preso").bind("showoff:loaded", function (event) {
8
+ $(".menu > ul ul").hide()
9
+ $(".menu > ul a").click(function() {
10
+ if ($(this).next().is('ul')) {
11
+ $(this).next().toggle()
12
+ } else {
13
+ gotoSlide($(this).attr('rel'))
14
+ w.gotoSlide($(this).attr('rel'))
15
+ postSlide()
16
+ }
17
+ return false
18
+ }).next().hide()
19
+ })
20
+ });
21
+
22
+ function presPrevStep()
23
+ {
24
+ prevStep()
25
+ w.prevStep()
26
+ postSlide()
27
+ }
28
+
29
+ function presNextStep()
30
+ {
31
+ nextStep()
32
+ w.nextStep()
33
+ postSlide()
34
+ }
35
+
36
+ function postSlide()
37
+ {
38
+ if(currentSlide) {
39
+ var notes = w.getCurrentNotes()
40
+ var fileName = currentSlide.children().first().attr('ref')
41
+ $('#notes').text(notes)
42
+ $('#slideFile').text(fileName)
43
+ }
44
+ }
45
+
46
+ // See e.g. http://www.quirksmode.org/js/keys.html for keycodes
47
+ function keyDown(event)
48
+ {
49
+ var key = event.keyCode;
50
+
51
+ if (event.ctrlKey || event.altKey || event.metaKey)
52
+ return true;
53
+
54
+ debug('keyDown: ' + key)
55
+
56
+ if (key >= 48 && key <= 57) // 0 - 9
57
+ {
58
+ gotoSlidenum = gotoSlidenum * 10 + (key - 48);
59
+ return true;
60
+ }
61
+
62
+ if (key == 13) {
63
+ if (gotoSlidenum > 0) {
64
+ debug('go to ' + gotoSlidenum);
65
+ slidenum = gotoSlidenum - 1;
66
+ showSlide(true);
67
+ w.slidenum = gotoSlidenum - 1;
68
+ w.showSlide(true);
69
+ gotoSlidenum = 0;
70
+ } else {
71
+ debug('executeCode');
72
+ executeAnyCode();
73
+ w.executeAnyCode();
74
+ }
75
+ }
76
+
77
+ if (key == 16) // shift key
78
+ {
79
+ shiftKeyActive = true;
80
+ }
81
+
82
+ if (key == 32) // space bar
83
+ {
84
+ if (shiftKeyActive) {
85
+ presPrevStep()
86
+ } else {
87
+ presNextStep()
88
+ }
89
+ }
90
+ else if (key == 68) // 'd' for debug
91
+ {
92
+ debugMode = !debugMode
93
+ doDebugStuff()
94
+ }
95
+ else if (key == 37 || key == 33 || key == 38) // Left arrow, page up, or up arrow
96
+ {
97
+ presPrevStep()
98
+ }
99
+ else if (key == 39 || key == 34 || key == 40) // Right arrow, page down, or down arrow
100
+ {
101
+ presNextStep()
102
+ }
103
+ else if (key == 84 || key == 67) // T or C for table of contents
104
+ {
105
+ $('#navmenu').toggle().trigger('click')
106
+ }
107
+ else if (key == 90 || key == 191) // z or ? for help
108
+ {
109
+ $('#help').toggle()
110
+ }
111
+ else if (key == 66 || key == 70) // f for footer (also "b" which is what kensington remote "stop" button sends
112
+ {
113
+ toggleFooter()
114
+ }
115
+ else if (key == 78) // 'n' for notes
116
+ {
117
+ toggleNotes()
118
+ }
119
+ else if (key == 27) // esc
120
+ {
121
+ removeResults();
122
+ w.removeResults();
123
+ }
124
+ else if (key == 80) // 'p' for preshow
125
+ {
126
+ w.togglePreShow();
127
+ }
128
+ return true
129
+ }
data/public/js/showoff.js CHANGED
@@ -309,6 +309,22 @@ function toggleNotes()
309
309
  }
310
310
  }
311
311
 
312
+ function executeAnyCode()
313
+ {
314
+ var $jsCode = $('.execute .sh_javascript code:visible')
315
+ if ($jsCode.length > 0) {
316
+ executeCode.call($jsCode);
317
+ }
318
+ var $rubyCode = $('.execute .sh_ruby code:visible')
319
+ if ($rubyCode.length > 0) {
320
+ executeRuby.call($rubyCode);
321
+ }
322
+ var $coffeeCode = $('.execute .sh_coffeescript code:visible')
323
+ if ($coffeeCode.length > 0) {
324
+ executeCoffee.call($coffeeCode);
325
+ }
326
+ }
327
+
312
328
  function debug(data)
313
329
  {
314
330
  $('#debugInfo').text(data)
@@ -338,20 +354,8 @@ function keyDown(event)
338
354
  gotoSlidenum = 0;
339
355
  } else {
340
356
  debug('executeCode');
341
- var $jsCode = $('.execute .sh_javascript code:visible')
342
- if ($jsCode.length > 0) {
343
- executeCode.call($jsCode);
344
- }
345
- var $rubyCode = $('.execute .sh_ruby code:visible')
346
- if ($rubyCode.length > 0) {
347
- executeRuby.call($rubyCode);
348
- }
349
- var $coffeeCode = $('.execute .sh_coffeescript code:visible')
350
- if ($coffeeCode.length > 0) {
351
- executeCoffee.call($coffeeCode);
352
- }
357
+ executeAnyCode();
353
358
  }
354
-
355
359
  }
356
360
 
357
361
 
@@ -410,7 +414,7 @@ function keyDown(event)
410
414
  }
411
415
  else if (key == 80) // 'p' for preshow
412
416
  {
413
- runPreShow();
417
+ togglePreShow();
414
418
  }
415
419
  return true
416
420
  }
@@ -539,7 +543,7 @@ var preshow_images;
539
543
  var preshow_imagesTotal = 0;
540
544
  var preshow_des = null;
541
545
 
542
- function runPreShow() {
546
+ function togglePreShow() {
543
547
  if(preshow_running) {
544
548
  stopPreShow()
545
549
  } else {
data/views/header.erb ADDED
@@ -0,0 +1,40 @@
1
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2
+ <title><%= @title %></title>
3
+
4
+ <meta name="viewport" content="width=device-width"/>
5
+
6
+ <link rel="stylesheet" href="<%= @asset_path %>css/reset.css" type="text/css"/>
7
+ <link rel="stylesheet" href="<%= @asset_path %>css/showoff.css" type="text/css"/>
8
+
9
+ <script type="text/javascript" src="<%= @asset_path %>js/jquery-1.4.2.min.js"></script>
10
+ <script type="text/javascript" src="<%= @asset_path %>js/jquery.cycle.all.js"></script>
11
+ <script type="text/javascript" src="<%= @asset_path %>js/jquery-print.js"></script>
12
+ <script type="text/javascript" src="<%= @asset_path %>js/jquery.batchImageLoad.js"></script>
13
+
14
+ <script type="text/javascript" src="<%= @asset_path %>js/jquery.doubletap-0.1.js"></script>
15
+
16
+ <script type="text/javascript" src="<%= @asset_path %>js/fg.menu.js"></script>
17
+ <script type="text/javascript" src="<%= @asset_path %>js/showoff.js"></script>
18
+ <script type="text/javascript" src="<%= @asset_path %>js/jTypeWriter.js"> </script>
19
+ <script type="text/javascript" src="<%= @asset_path %>js/sh_main.min.js"></script>
20
+ <script type="text/javascript" src="<%= @asset_path %>js/core.js"></script>
21
+ <script type="text/javascript" src="<%= @asset_path %>js/showoffcore.js"></script>
22
+ <script type="text/javascript" src="<%= @asset_path %>js/coffee-script.js"></script>
23
+
24
+ <link type="text/css" href="<%= @asset_path %>css/fg.menu.css" media="screen" rel="stylesheet" />
25
+ <link type="text/css" href="<%= @asset_path %>css/theme/ui.all.css" media="screen" rel="stylesheet" />
26
+ <link type="text/css" href="<%= @asset_path %>css/sh_style.css" rel="stylesheet" >
27
+
28
+ <% css_files.each do |css_file| %>
29
+ <link rel="stylesheet" href="file/<%= css_file %>" type="text/css"/>
30
+ <% end %>
31
+
32
+ <% js_files.each do |js_file| %>
33
+ <script type="text/javascript" src="file/<%= js_file %>"></script>
34
+ <% end %>
35
+
36
+ <script type="text/javascript">
37
+ $(function(){
38
+ setupPreso(<%= @slides.nil? ? "true" : "false"%>, '<%= @asset_path %>');
39
+ });
40
+ </script>
data/views/index.erb CHANGED
@@ -3,51 +3,11 @@
3
3
 
4
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
5
  <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
- <title><%= @title %></title>
8
-
9
- <meta name="viewport" content="width=device-width"/>
10
-
11
- <link rel="stylesheet" href="<%= @asset_path %>css/reset.css" type="text/css"/>
12
- <link rel="stylesheet" href="<%= @asset_path %>css/showoff.css" type="text/css"/>
13
-
14
- <script type="text/javascript" src="<%= @asset_path %>js/jquery-1.4.2.min.js"></script>
15
- <script type="text/javascript" src="<%= @asset_path %>js/jquery.cycle.all.js"></script>
16
- <script type="text/javascript" src="<%= @asset_path %>js/jquery-print.js"></script>
17
- <script type="text/javascript" src="<%= @asset_path %>js/jquery.batchImageLoad.js"></script>
18
-
19
- <script type="text/javascript" src="<%= @asset_path %>js/jquery.doubletap-0.1.js"></script>
20
-
21
- <script type="text/javascript" src="<%= @asset_path %>js/fg.menu.js"></script>
22
- <script type="text/javascript" src="<%= @asset_path %>js/showoff.js"></script>
23
- <script type="text/javascript" src="<%= @asset_path %>js/jTypeWriter.js"> </script>
24
- <script type="text/javascript" src="<%= @asset_path %>js/sh_main.min.js"></script>
25
- <script type="text/javascript" src="<%= @asset_path %>js/core.js"></script>
26
- <script type="text/javascript" src="<%= @asset_path %>js/showoffcore.js"></script>
27
- <script type="text/javascript" src="<%= @asset_path %>js/coffee-script.js"></script>
28
-
29
- <link type="text/css" href="<%= @asset_path %>css/fg.menu.css" media="screen" rel="stylesheet" />
30
- <link type="text/css" href="<%= @asset_path %>css/theme/ui.all.css" media="screen" rel="stylesheet" />
31
- <link type="text/css" href="<%= @asset_path %>css/sh_style.css" rel="stylesheet" >
32
-
33
- <% css_files.each do |css_file| %>
34
- <link rel="stylesheet" href="file/<%= css_file %>" type="text/css"/>
35
- <% end %>
36
-
37
- <% js_files.each do |js_file| %>
38
- <script type="text/javascript" src="file/<%= js_file %>"></script>
39
- <% end %>
40
-
41
- <script type="text/javascript">
42
- $(function(){
43
- setupPreso(<%= @slides.nil? ? "true" : "false"%>, '<%= @asset_path %>');
44
- });
45
- </script>
6
+ <%= erb :header %>
46
7
  </head>
47
8
 
48
9
  <body>
49
10
 
50
-
51
11
  <a tabindex="0" href="#search-engines" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all" id="navmenu"><span class="ui-icon ui-icon-triangle-1-s"></span>slides</a>
52
12
  <div id="navigation" class="hidden"></div>
53
13
 
@@ -0,0 +1,64 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <%= erb :header %>
7
+ <link rel="stylesheet" href="<%= @asset_path %>css/960.css" type="text/css"/>
8
+ <link rel="stylesheet" href="<%= @asset_path %>css/presenter.css" type="text/css"/>
9
+ <script type="text/javascript" src="<%= @asset_path %>js/presenter.js"></script>
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <a tabindex="0" href="#search-engines" class="fg-button fg-button-icon-right ui-widget ui-state-default ui-corner-all" id="navmenu"><span class="ui-icon ui-icon-triangle-1-s"></span>slides</a>
15
+
16
+ <div id="help">
17
+ <table>
18
+ <tr><td class="key">z, ?</td><td>toggle help (this)</td></tr>
19
+ <tr><td class="key">space, &rarr;</td><td>next slide</td></tr>
20
+ <tr><td class="key">shift-space, &larr;</td><td>previous slide</td></tr>
21
+ <tr><td class="key">d</td><td>toggle debug mode</td></tr>
22
+ <tr><td class="key">## &lt;ret&gt;</td><td>go to slide #</td></tr>
23
+ <tr><td class="key">c, t</td><td>table of contents (vi)</td></tr>
24
+ <tr><td class="key">r</td><td>reload slides</td></tr>
25
+ <tr><td class="key">p</td><td>run preshow</td></tr>
26
+ </table>
27
+ </div>
28
+
29
+ <div id="main" class="container_12">
30
+ <div id="topbar" class="grid_12">
31
+ <div id="links">
32
+ <a href="/pdf">Generate PDF</a>
33
+ &nbsp; &nbsp;
34
+ <a href="/onepage">Single Page</a>
35
+ </div>
36
+ </div>
37
+ <div class="clear"></div>
38
+ <div id="sidebar" class="grid_4">
39
+ <div id="progress">
40
+ Slide: <span id="slideInfo"></span>
41
+ </div>
42
+ <div id="slideSource">
43
+ Source: <span id="slideFile"></span>
44
+ </div>
45
+ <div id="debugInfo"></div>
46
+ <div id="slidemenu">
47
+ <div id="navigation" class="menu"></div>
48
+ </div>
49
+ </div>
50
+ <div id="preview" class="grid_8">
51
+ <div id="preso" class="zoomed">loading presentation...</div>
52
+ </div>
53
+ <div class="clear"></div>
54
+ <div id="bottom" class="grid_12">
55
+ <div id="notes"></div>
56
+ </div>
57
+ </div>
58
+
59
+ <div id="slides" class="offscreen" <%= 'style="display:none;"' if @slides %>>
60
+ <%= @slides %>
61
+ </div>
62
+
63
+ </body>
64
+ </html>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: showoff
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 6
8
+ - 7
9
9
  - 0
10
- version: 0.6.0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Scott Chacon
@@ -131,14 +131,17 @@ files:
131
131
  - LICENSE
132
132
  - bin/showoff
133
133
  - lib/commandline_parser.rb
134
- - lib/princely.rb
135
134
  - lib/showoff.rb
136
135
  - lib/showoff_utils.rb
136
+ - views/header.erb
137
137
  - views/index.erb
138
138
  - views/onepage.erb
139
+ - views/presenter.erb
140
+ - public/css/960.css
139
141
  - public/css/fg.menu.css
140
142
  - public/css/onepage.css
141
143
  - public/css/pdf.css
144
+ - public/css/presenter.css
142
145
  - public/css/reset.css
143
146
  - public/css/sh_style.css
144
147
  - public/css/showoff.css
@@ -183,6 +186,7 @@ files:
183
186
  - public/js/jquery.ws-0.3pre.js
184
187
  - public/js/jTypeWriter.js
185
188
  - public/js/onepage.js
189
+ - public/js/presenter.js
186
190
  - public/js/sh_lang/sh_bison.min.js
187
191
  - public/js/sh_lang/sh_c.min.js
188
192
  - public/js/sh_lang/sh_caml.min.js