showoff 0.19.4 → 0.20.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +24 -12
  3. data/bin/showoff +47 -24
  4. data/lib/keymap.rb +19 -5
  5. data/lib/showoff.rb +96 -44
  6. data/lib/showoff/compiler.rb +106 -0
  7. data/lib/showoff/compiler/downloads.rb +91 -0
  8. data/lib/showoff/compiler/fixups.rb +142 -0
  9. data/lib/showoff/compiler/form.rb +236 -0
  10. data/lib/showoff/compiler/glossary.rb +164 -0
  11. data/lib/showoff/compiler/i18n.rb +24 -0
  12. data/lib/showoff/compiler/notes.rb +73 -0
  13. data/lib/showoff/compiler/table_of_contents.rb +51 -0
  14. data/lib/showoff/compiler/variables.rb +71 -0
  15. data/lib/showoff/config.rb +218 -0
  16. data/lib/showoff/locale.rb +132 -0
  17. data/lib/showoff/logger.rb +15 -0
  18. data/lib/showoff/monkeypatches.rb +28 -0
  19. data/lib/showoff/presentation.rb +181 -0
  20. data/lib/showoff/presentation/section.rb +70 -0
  21. data/lib/showoff/presentation/slide.rb +113 -0
  22. data/lib/showoff/state.rb +89 -0
  23. data/lib/showoff/version.rb +2 -2
  24. data/lib/showoff_ng.rb +99 -0
  25. data/lib/showoff_utils.rb +27 -21
  26. data/public/css/font-awesome-5.6.1/css/all.min.css +5 -0
  27. data/public/css/font-awesome-5.6.1/webfonts/fa-brands-400.eot +0 -0
  28. data/public/css/font-awesome-5.6.1/webfonts/fa-brands-400.svg +1260 -0
  29. data/public/css/font-awesome-5.6.1/webfonts/fa-brands-400.ttf +0 -0
  30. data/public/css/font-awesome-5.6.1/webfonts/fa-brands-400.woff +0 -0
  31. data/public/css/font-awesome-5.6.1/webfonts/fa-brands-400.woff2 +0 -0
  32. data/public/css/font-awesome-5.6.1/webfonts/fa-regular-400.eot +0 -0
  33. data/public/css/font-awesome-5.6.1/webfonts/fa-regular-400.svg +471 -0
  34. data/public/css/font-awesome-5.6.1/webfonts/fa-regular-400.ttf +0 -0
  35. data/public/css/font-awesome-5.6.1/webfonts/fa-regular-400.woff +0 -0
  36. data/public/css/font-awesome-5.6.1/webfonts/fa-regular-400.woff2 +0 -0
  37. data/public/css/font-awesome-5.6.1/webfonts/fa-solid-900.eot +0 -0
  38. data/public/css/font-awesome-5.6.1/webfonts/fa-solid-900.svg +2760 -0
  39. data/public/css/font-awesome-5.6.1/webfonts/fa-solid-900.ttf +0 -0
  40. data/public/css/font-awesome-5.6.1/webfonts/fa-solid-900.woff +0 -0
  41. data/public/css/font-awesome-5.6.1/webfonts/fa-solid-900.woff2 +0 -0
  42. data/public/css/presenter.css +1 -0
  43. data/public/css/showoff.css +42 -10
  44. data/public/js/highlight.pack-9.15.10.js +22614 -0
  45. data/public/js/highlightjs-line-numbers.min.js +1 -0
  46. data/public/js/presenter.js +13 -11
  47. data/public/js/showoff.js +39 -31
  48. data/views/download.erb +2 -2
  49. data/views/header.erb +27 -26
  50. data/views/header_mini.erb +8 -8
  51. data/views/index.erb +56 -56
  52. data/views/onepage.erb +10 -16
  53. data/views/presenter.erb +124 -123
  54. data/views/slide.erb +29 -0
  55. data/views/stats.erb +1 -1
  56. metadata +113 -100
  57. data/locales/id.yml +0 -2
  58. data/public/css/font-awesome-4.4.0/css/font-awesome.min.css +0 -4
  59. data/public/css/font-awesome-4.4.0/fonts/FontAwesome.otf +0 -0
  60. data/public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.eot +0 -0
  61. data/public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.svg +0 -640
  62. data/public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf +0 -0
  63. data/public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.woff +0 -0
  64. data/public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2 +0 -0
  65. data/public/js/highlight.pack-9.2.0.js +0 -15448
data/views/onepage.erb CHANGED
@@ -3,6 +3,7 @@
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
6
+ <% if @baseurl %><base href="<%= @baseurl %>" /> <% end %>
6
7
  <title><%= @title %></title>
7
8
 
8
9
  <% if @favicon %>
@@ -10,38 +11,31 @@
10
11
  <% end %>
11
12
 
12
13
  <% if @inline %>
13
-
14
- <%= inline_css(['font-awesome-4.4.0/css/font-awesome.min.css', 'mermaid-6.0.0.css', "highlight/#{@highlightStyle}.css"], 'public/css') %>
14
+ <%= inline_css(['font-awesome-5.6.1/css/all.min.css', 'mermaid-6.0.0.css', "highlight/#{@highlightStyle}.css"], 'public/css') %>
15
15
  <%= inline_css(['showoff.css', 'onepage.css'], 'public/css') %>
16
16
  <%= inline_css(css_files) %>
17
17
 
18
- <%= inline_js(['jquery-2.1.4.min.js', 'showoff.js', 'highlight.pack-9.2.0.js'], 'public/js') %>
18
+ <%= inline_js(['jquery-2.1.4.min.js', 'showoff.js', 'highlight.pack-9.15.10.js', 'highlightjs-line-numbers.min.js'], 'public/js') %>
19
19
  <%= inline_js(['bigtext-0.1.8.js', 'simpleStrings-0.0.1.js', 'mermaid-6.0.0-min.js'], 'public/js') %>
20
20
 
21
- <%= inline_js(@languages, 'public/js') if @languages %>
22
21
  <%= inline_js(js_files) %>
23
22
 
24
23
  <% else %>
25
- <% ['font-awesome-4.4.0/css/font-awesome.min.css', 'mermaid-6.0.0.css', "highlight/#{@highlightStyle}.css",
24
+ <% ['font-awesome-5.6.1/css/all.min.css', 'mermaid-6.0.0.css', "highlight/#{@highlightStyle}.css",
26
25
  'showoff.css', 'onepage.css'].each do |css_file| %>
27
- <link rel="stylesheet" href="<%= @asset_path %>/css/<%= css_file %>" type="text/css"/>
26
+ <link rel="stylesheet" href="css/<%= css_file %>" type="text/css"/>
28
27
  <% end %>
29
28
 
30
29
  <% css_files.each do |css_file| %>
31
- <link rel="stylesheet" href="<%= @asset_path %>/file/<%= css_file %>" type="text/css"/>
30
+ <link rel="stylesheet" href="<%= css_file %>" type="text/css"/>
32
31
  <% end %>
33
32
 
34
- <% ['jquery-2.1.4.min.js', 'showoff.js', 'highlight.pack-9.2.0.js',
35
- 'bigtext-0.1.8.js', 'simpleStrings-0.0.1.js', 'mermaid-6.0.0-min.js'].each do |js_file| %>
36
- <script type="text/javascript" src="<%= @asset_path %>/js/<%= js_file %>"></script>
33
+ <% ['jquery-2.1.4.min.js', 'showoff.js', 'highlight.pack-9.15.10.js',
34
+ 'highlightjs-line-numbers.min.js', 'bigtext-0.1.8.js', 'simpleStrings-0.0.1.js', 'mermaid-6.0.0-min.js'].each do |js_file| %>
35
+ <script type="text/javascript" src="js/<%= js_file %>"></script>
37
36
  <% end %>
38
37
  <% js_files.each do |js_file| %>
39
- <script type="text/javascript" src="<%= @asset_path %>/file/<%= js_file %>"></script>
40
- <% end %>
41
- <% if @languages %>
42
- <% @languages.each do |l| %>
43
- <script type="text/javascript" src="<%= @asset_path %>/js<%= l %>"></script>
44
- <% end %>
38
+ <script type="text/javascript" src="<%= js_file %>"></script>
45
39
  <% end %>
46
40
 
47
41
  <% end %>
data/views/presenter.erb CHANGED
@@ -3,122 +3,11 @@
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
5
  <%= erb :header %>
6
- <link rel="stylesheet" href="<%= @asset_path %>/css/presenter.css?v=<%= SHOWOFF_VERSION %>" type="text/css"/>
7
- <link href="<%= @asset_path %>/css/TimeCircles-89ac5ae.css" rel="stylesheet">
6
+ <link rel="stylesheet" type="text/css" href="css/presenter.css?v=<%= SHOWOFF_VERSION %>" />
7
+ <link rel="stylesheet" type="text/css" href="css/TimeCircles-89ac5ae.css" />
8
8
 
9
- <script type="text/javascript" src="<%= @asset_path %>/js/TimeCircles-89ac5ae.js"></script>
10
- <script type="text/javascript" src="<%= @asset_path %>/js/presenter.js?v=<%= SHOWOFF_VERSION %>"></script>
11
-
12
- <script type="text/javascript">
13
- editUrl = "<%= @edit %>";
14
- issueUrl = "<%= @issues %>";
15
- autoTour = false;
16
-
17
- // increment this each time we add features with new tour stops.
18
- tourVersion = 1;
19
-
20
- $(function() {
21
- tours['showoff:activity'] = [
22
- {
23
- element: ".currentSlide .count",
24
- intro: I18n.t('tour.activity.count')
25
- }
26
- ];
27
-
28
- tours['showoff:form'] = [
29
- {
30
- element: "#notes",
31
- intro: I18n.t('tour.form.responses'),
32
- scrollToElement: false
33
- },
34
- {
35
- element: ".currentSlide input.display",
36
- intro: I18n.t('tour.form.display')
37
- }
38
- ];
39
-
40
- tours['showoff:presenter'] = [
41
- {
42
- intro: I18n.t('tour.welcome'),
43
- version: 1
44
- },
45
- {
46
- element: "#slaveWindow",
47
- intro: I18n.t('tour.displayview'),
48
- version: 1
49
- },
50
- {
51
- element: "#annotationLabel",
52
- intro: I18n.t('tour.annotations'),
53
- version: 1
54
- },
55
- {
56
- element: "#timerSection",
57
- intro: I18n.t('tour.timer'),
58
- version: 1
59
- },
60
- {
61
- element: "#feedbackPace",
62
- intro: I18n.t('tour.pace'),
63
- version: 1
64
- },
65
- {
66
- element: "#questions",
67
- intro: I18n.t('tour.questions'),
68
- version: 1
69
- },
70
- {
71
- element: "#notes-controls",
72
- intro: I18n.t('tour.notes'),
73
- highlightClass: "tourDark",
74
- version: 1
75
- },
76
- {
77
- element: "#slideSource",
78
- intro: I18n.t('tour.slidesource'),
79
- version: 1
80
- },
81
- {
82
- element: "#settings",
83
- intro: I18n.t('tour.settings'),
84
- version: 1
85
- },
86
- {
87
- element: "#edit",
88
- intro: I18n.t('tour.edit'),
89
- version: 1
90
- },
91
- {
92
- element: "#report",
93
- intro: I18n.t('tour.report'),
94
- version: 1
95
- }
96
- ].filter(function(item) {
97
- // filter out tips for features that have been turned off
98
- return ((item['element'] == undefined) || document.querySelector(item['element']));
99
- });
100
-
101
- // Only autoshow when served from localhost, since we don't know if we have a consistent domain for our cookie otherwise.
102
- if ( location.hostname == 'localhost' || location.hostname == '127.0.0.1' ) {
103
-
104
- // enables the flag that shows feature tours
105
- autoTour = true;
106
-
107
- var clientTour = document.cookieHash['tourVersion'] || 0;
108
- if(clientTour < tourVersion) {
109
- // now make a temporary duplicate of only recent items
110
- tours['showoff:presenter:auto'] = tours['showoff:presenter'].filter(function(item) {
111
- return (item['version'] > clientTour);
112
- });
113
-
114
- // we don't need to let this record, because we've already tested clientTour
115
- showTour('showoff:presenter:auto', false);
116
- }
117
-
118
- }
119
- });
120
-
121
- </script>
9
+ <script type="text/javascript" src="js/TimeCircles-89ac5ae.js"></script>
10
+ <script type="text/javascript" src="js/presenter.js?v=<%= SHOWOFF_VERSION %>"></script>
122
11
  </head>
123
12
 
124
13
  <body class="presenter">
@@ -174,7 +63,7 @@
174
63
  <div class="right obscure"> </div>
175
64
  <span id="paceSlow"><%= I18n.t('presenter.pace.faster') %></span>
176
65
  <span id="paceFast"><%= I18n.t('presenter.pace.slower') %></span>
177
- <img id="paceMarker" src="<%= @asset_path %>/css/paceMarker.png" />
66
+ <img id="paceMarker" src="css/paceMarker.png" />
178
67
  </div>
179
68
  <% end %>
180
69
 
@@ -194,23 +83,23 @@
194
83
  <div id="presenter">
195
84
  <div id="frame">
196
85
  <div id="preview">
197
- <img id="disconnected" src="<%= @asset_path %>/css/disconnected-large.png" />
86
+ <img id="disconnected" src="css/disconnected-large.png" />
198
87
  <div id="prevSlide" class="thumb"><div class="container"></div><h3 class="label"><%= I18n.t('presenter.preview.previous') %></h3></div>
199
88
  <div id="nextSlide" class="thumb"><div class="container"></div><h3 class="label"><%= I18n.t('presenter.preview.next') %></h3></div>
200
89
  <div id="preso"><%= I18n.t('loading') %></div>
201
90
  </div>
202
91
  <div id="annotationToolbar">
203
92
  <label><%= I18n.t('presenter.annotation.tools') %></label>
204
- <i class="fa fa-pencil tool default active" data-action="draw" aria-hidden="true"></i>
93
+ <i class="fa fa-pencil-alt tool default active" data-action="draw" aria-hidden="true"></i>
205
94
  <i class="fa fa-arrow-right tool" data-action="rightArrow" aria-hidden="true"></i>
206
95
  <i class="fa fa-arrow-left tool" data-action="leftArrow" aria-hidden="true"></i>
207
96
  <i class="fa fa-bullseye tool" data-action="highlight" aria-hidden="true"></i>
208
97
  <i class="fa fa-eraser tool" data-action="erase" aria-hidden="true"></i>
209
98
  <label><%= I18n.t('presenter.annotation.lines') %></label>
210
- <i class="fa fa-square-o lines color1 active" aria-hidden="true"></i>
211
- <i class="fa fa-square-o lines color2" aria-hidden="true"></i>
212
- <i class="fa fa-square-o lines color3" aria-hidden="true"></i>
213
- <i class="fa fa-square-o lines color4" aria-hidden="true"></i>
99
+ <i class="fa fa-signature lines color1 active" aria-hidden="true"></i>
100
+ <i class="fa fa-signature lines color2" aria-hidden="true"></i>
101
+ <i class="fa fa-signature lines color3" aria-hidden="true"></i>
102
+ <i class="fa fa-signature lines color4" aria-hidden="true"></i>
214
103
  <label><%= I18n.t('presenter.annotation.shapes') %></label>
215
104
  <i class="fa fa-square shapes color1" aria-hidden="true"></i>
216
105
  <i class="fa fa-square shapes color2" aria-hidden="true"></i>
@@ -241,7 +130,7 @@
241
130
  <ul class="section-selector"></ul>
242
131
  <div class="controls" id="notes-controls">
243
132
  <a class="no-mobile fa fa-minus small" aria-hidden="true" href="#"></a>
244
- <a class="no-mobile fa fa-dot-circle-o small" aria-hidden="true" href="#"></a>
133
+ <a class="no-mobile fa fa-circle small" aria-hidden="true" href="#"></a>
245
134
  <a class="no-mobile fa fa-plus small" aria-hidden="true" href="#"></a>
246
135
  <span class="spacer"> </span>
247
136
  <a id="notesToggle" class="no-mobile fa fa-external-link-square" aria-hidden="true" href="#"></a>
@@ -311,5 +200,117 @@
311
200
  <%= @slides %>
312
201
  </div>
313
202
  </div><!-- end pagewrapper -->
203
+
204
+ <script defer type="text/javascript">
205
+ editUrl = "<%= @edit %>";
206
+ issueUrl = "<%= @issues %>";
207
+ autoTour = false;
208
+
209
+ // increment this each time we add features with new tour stops.
210
+ tourVersion = 1;
211
+
212
+ $(function() {
213
+ tours['showoff:activity'] = [
214
+ {
215
+ element: ".currentSlide .count",
216
+ intro: I18n.t('tour.activity.count')
217
+ }
218
+ ];
219
+
220
+ tours['showoff:form'] = [
221
+ {
222
+ element: "#notes",
223
+ intro: I18n.t('tour.form.responses'),
224
+ scrollToElement: false
225
+ },
226
+ {
227
+ element: ".currentSlide input.display",
228
+ intro: I18n.t('tour.form.display')
229
+ }
230
+ ];
231
+
232
+ tours['showoff:presenter'] = [
233
+ {
234
+ intro: I18n.t('tour.welcome'),
235
+ version: 1
236
+ },
237
+ {
238
+ element: "#slaveWindow",
239
+ intro: I18n.t('tour.displayview'),
240
+ version: 1
241
+ },
242
+ {
243
+ element: "#annotationLabel",
244
+ intro: I18n.t('tour.annotations'),
245
+ version: 1
246
+ },
247
+ {
248
+ element: "#timerSection",
249
+ intro: I18n.t('tour.timer'),
250
+ version: 1
251
+ },
252
+ {
253
+ element: "#feedbackPace",
254
+ intro: I18n.t('tour.pace'),
255
+ version: 1
256
+ },
257
+ {
258
+ element: "#questions",
259
+ intro: I18n.t('tour.questions'),
260
+ version: 1
261
+ },
262
+ {
263
+ element: "#notes-controls",
264
+ intro: I18n.t('tour.notes'),
265
+ highlightClass: "tourDark",
266
+ version: 1
267
+ },
268
+ {
269
+ element: "#slideSource",
270
+ intro: I18n.t('tour.slidesource'),
271
+ version: 1
272
+ },
273
+ {
274
+ element: "#settings",
275
+ intro: I18n.t('tour.settings'),
276
+ version: 1
277
+ },
278
+ {
279
+ element: "#edit",
280
+ intro: I18n.t('tour.edit'),
281
+ version: 1
282
+ },
283
+ {
284
+ element: "#report",
285
+ intro: I18n.t('tour.report'),
286
+ version: 1
287
+ }
288
+ ].filter(function(item) {
289
+ // filter out tips for features that have been turned off
290
+ return ((item['element'] == undefined) || document.querySelector(item['element']));
291
+ });
292
+
293
+ // Only autoshow when served from localhost, since we don't know if we have a consistent domain for our cookie otherwise.
294
+ if ( location.hostname == 'localhost' || location.hostname == '127.0.0.1' ) {
295
+
296
+ // enables the flag that shows feature tours
297
+ autoTour = true;
298
+
299
+ var clientTour = document.cookieHash['tourVersion'] || 0;
300
+ if(clientTour < tourVersion) {
301
+ // now make a temporary duplicate of only recent items
302
+ tours['showoff:presenter:auto'] = tours['showoff:presenter'].filter(function(item) {
303
+ return (item['version'] > clientTour);
304
+ });
305
+
306
+ // we don't need to let this record, because we've already tested clientTour
307
+ showTour('showoff:presenter:auto', false);
308
+ }
309
+
310
+ }
311
+ });
312
+
313
+ </script>
314
+
314
315
  </body>
315
316
  </html>
data/views/slide.erb ADDED
@@ -0,0 +1,29 @@
1
+ <%
2
+ if background
3
+ bgstyle="background-image: url('#{background}');"
4
+ else
5
+ bgstyle=''
6
+ end
7
+ -%>
8
+ <div id="<%= id %>" class="slide <%= slideClasses.join(' ') %>" style="<%= bgstyle %>"
9
+ data-section="<%= section %>" data-title="<%= name %>" data-transition="<%= transition %>" >
10
+ <div class="content <%= classes.join(' ') %>" ref="<%= ref %>">
11
+ <% if section_title -%>
12
+ <!-- renderers like wkhtmltopdf need an <h1> tag to use for a section title -->
13
+ <h1 class="section_title"><%= section_title %></h1>
14
+ <% end -%>
15
+
16
+ <%= content %>
17
+
18
+ </div>
19
+ <% notes.each do |section| -%>
20
+ <%= section %>
21
+ <% end -%>
22
+ <% if classes.include? 'activity' -%>
23
+ <span class="activityToggle">
24
+ <label for="activity-<%= ref %>"><%= I18n.t('activity_complete') %></label>
25
+ <input type="checkbox" class="activity" name="activity-<%= ref %>" id="activity-<%= ref %>" />
26
+ </span>
27
+ <% end -%>
28
+ <canvas class="annotations"></canvas>
29
+ </div>
data/views/stats.erb CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <script type="text/javascript">
12
12
  $(document).ready(function(){
13
- $.getJSON("/stats_data", function( json ) {
13
+ $.getJSON("stats_data", function( json ) {
14
14
  setupStats(json);
15
15
  });
16
16
  });
metadata CHANGED
@@ -1,242 +1,228 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: showoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.4
4
+ version: 0.20.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon
8
8
  - Ben Ford
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-02-13 00:00:00.000000000 Z
12
+ date: 2021-04-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: sinatra
15
+ name: commonmarker
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.3'
20
+ version: '0.21'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.3'
27
+ version: '0.21'
28
28
  - !ruby/object:Gem::Dependency
29
- name: gli
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '2.0'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '2.0'
42
- - !ruby/object:Gem::Dependency
43
- name: tilt
29
+ name: fidget
44
30
  requirement: !ruby/object:Gem::Requirement
45
31
  requirements:
46
- - - ">="
32
+ - - "~>"
47
33
  - !ruby/object:Gem::Version
48
- version: 2.0.3
34
+ version: '0.0'
49
35
  type: :runtime
50
36
  prerelease: false
51
37
  version_requirements: !ruby/object:Gem::Requirement
52
38
  requirements:
53
- - - ">="
39
+ - - "~>"
54
40
  - !ruby/object:Gem::Version
55
- version: 2.0.3
41
+ version: '0.0'
56
42
  - !ruby/object:Gem::Dependency
57
- name: fidget
43
+ name: gli
58
44
  requirement: !ruby/object:Gem::Requirement
59
45
  requirements:
60
- - - ">="
46
+ - - "~>"
61
47
  - !ruby/object:Gem::Version
62
- version: 0.0.3
48
+ version: '2.20'
63
49
  type: :runtime
64
50
  prerelease: false
65
51
  version_requirements: !ruby/object:Gem::Requirement
66
52
  requirements:
67
- - - ">="
53
+ - - "~>"
68
54
  - !ruby/object:Gem::Version
69
- version: 0.0.3
55
+ version: '2.20'
70
56
  - !ruby/object:Gem::Dependency
71
- name: json
57
+ name: htmlentities
72
58
  requirement: !ruby/object:Gem::Requirement
73
59
  requirements:
74
- - - ">="
60
+ - - "~>"
75
61
  - !ruby/object:Gem::Version
76
- version: '0'
62
+ version: '4.3'
77
63
  type: :runtime
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
66
  requirements:
81
- - - ">="
67
+ - - "~>"
82
68
  - !ruby/object:Gem::Version
83
- version: '0'
69
+ version: '4.3'
84
70
  - !ruby/object:Gem::Dependency
85
- name: parslet
71
+ name: i18n
86
72
  requirement: !ruby/object:Gem::Requirement
87
73
  requirements:
88
- - - ">="
74
+ - - "~>"
89
75
  - !ruby/object:Gem::Version
90
- version: '0'
76
+ version: '1.8'
91
77
  type: :runtime
92
78
  prerelease: false
93
79
  version_requirements: !ruby/object:Gem::Requirement
94
80
  requirements:
95
- - - ">="
81
+ - - "~>"
96
82
  - !ruby/object:Gem::Version
97
- version: '0'
83
+ version: '1.8'
98
84
  - !ruby/object:Gem::Dependency
99
- name: htmlentities
85
+ name: iso-639
100
86
  requirement: !ruby/object:Gem::Requirement
101
87
  requirements:
102
- - - ">="
88
+ - - "~>"
103
89
  - !ruby/object:Gem::Version
104
- version: '0'
90
+ version: '0.3'
105
91
  type: :runtime
106
92
  prerelease: false
107
93
  version_requirements: !ruby/object:Gem::Requirement
108
94
  requirements:
109
- - - ">="
95
+ - - "~>"
110
96
  - !ruby/object:Gem::Version
111
- version: '0'
97
+ version: '0.3'
112
98
  - !ruby/object:Gem::Dependency
113
- name: redcarpet
99
+ name: json
114
100
  requirement: !ruby/object:Gem::Requirement
115
101
  requirements:
116
- - - ">="
102
+ - - "~>"
117
103
  - !ruby/object:Gem::Version
118
- version: '0'
104
+ version: '2.5'
119
105
  type: :runtime
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
108
  requirements:
123
- - - ">="
109
+ - - "~>"
124
110
  - !ruby/object:Gem::Version
125
- version: '0'
111
+ version: '2.5'
126
112
  - !ruby/object:Gem::Dependency
127
113
  name: nokogiri
128
114
  requirement: !ruby/object:Gem::Requirement
129
115
  requirements:
130
- - - ">="
116
+ - - "~>"
131
117
  - !ruby/object:Gem::Version
132
- version: '0'
118
+ version: '1.11'
133
119
  type: :runtime
134
120
  prerelease: false
135
121
  version_requirements: !ruby/object:Gem::Requirement
136
122
  requirements:
137
- - - ">="
123
+ - - "~>"
138
124
  - !ruby/object:Gem::Version
139
- version: '0'
125
+ version: '1.11'
140
126
  - !ruby/object:Gem::Dependency
141
- name: i18n
127
+ name: parslet
142
128
  requirement: !ruby/object:Gem::Requirement
143
129
  requirements:
144
- - - ">="
130
+ - - "~>"
145
131
  - !ruby/object:Gem::Version
146
- version: '0'
132
+ version: '2.0'
147
133
  type: :runtime
148
134
  prerelease: false
149
135
  version_requirements: !ruby/object:Gem::Requirement
150
136
  requirements:
151
- - - ">="
137
+ - - "~>"
152
138
  - !ruby/object:Gem::Version
153
- version: '0'
139
+ version: '2.0'
154
140
  - !ruby/object:Gem::Dependency
155
- name: iso-639
141
+ name: rack-contrib
156
142
  requirement: !ruby/object:Gem::Requirement
157
143
  requirements:
158
- - - ">="
144
+ - - "~>"
159
145
  - !ruby/object:Gem::Version
160
- version: '0'
146
+ version: '2.3'
161
147
  type: :runtime
162
148
  prerelease: false
163
149
  version_requirements: !ruby/object:Gem::Requirement
164
150
  requirements:
165
- - - ">="
151
+ - - "~>"
166
152
  - !ruby/object:Gem::Version
167
- version: '0'
153
+ version: '2.3'
168
154
  - !ruby/object:Gem::Dependency
169
- name: rack-contrib
155
+ name: redcarpet
170
156
  requirement: !ruby/object:Gem::Requirement
171
157
  requirements:
172
- - - ">="
158
+ - - "~>"
173
159
  - !ruby/object:Gem::Version
174
- version: '0'
160
+ version: '3.5'
175
161
  type: :runtime
176
162
  prerelease: false
177
163
  version_requirements: !ruby/object:Gem::Requirement
178
164
  requirements:
179
- - - ">="
165
+ - - "~>"
180
166
  - !ruby/object:Gem::Version
181
- version: '0'
167
+ version: '3.5'
182
168
  - !ruby/object:Gem::Dependency
183
- name: sinatra-websocket
169
+ name: sinatra
184
170
  requirement: !ruby/object:Gem::Requirement
185
171
  requirements:
186
- - - ">="
172
+ - - "~>"
187
173
  - !ruby/object:Gem::Version
188
- version: '0'
174
+ version: '2.1'
189
175
  type: :runtime
190
176
  prerelease: false
191
177
  version_requirements: !ruby/object:Gem::Requirement
192
178
  requirements:
193
- - - ">="
179
+ - - "~>"
194
180
  - !ruby/object:Gem::Version
195
- version: '0'
181
+ version: '2.1'
196
182
  - !ruby/object:Gem::Dependency
197
- name: thin
183
+ name: sinatra-websocket
198
184
  requirement: !ruby/object:Gem::Requirement
199
185
  requirements:
200
186
  - - "~>"
201
187
  - !ruby/object:Gem::Version
202
- version: '1.3'
188
+ version: '0.3'
203
189
  type: :runtime
204
190
  prerelease: false
205
191
  version_requirements: !ruby/object:Gem::Requirement
206
192
  requirements:
207
193
  - - "~>"
208
194
  - !ruby/object:Gem::Version
209
- version: '1.3'
195
+ version: '0.3'
210
196
  - !ruby/object:Gem::Dependency
211
- name: commonmarker
197
+ name: tilt
212
198
  requirement: !ruby/object:Gem::Requirement
213
199
  requirements:
214
- - - "<="
200
+ - - "~>"
215
201
  - !ruby/object:Gem::Version
216
- version: 0.14.4
202
+ version: '2.0'
217
203
  type: :runtime
218
204
  prerelease: false
219
205
  version_requirements: !ruby/object:Gem::Requirement
220
206
  requirements:
221
- - - "<="
207
+ - - "~>"
222
208
  - !ruby/object:Gem::Version
223
- version: 0.14.4
209
+ version: '2.0'
224
210
  - !ruby/object:Gem::Dependency
225
211
  name: mg
226
212
  requirement: !ruby/object:Gem::Requirement
227
213
  requirements:
228
- - - ">="
214
+ - - "~>"
229
215
  - !ruby/object:Gem::Version
230
- version: '0'
216
+ version: '0.0'
231
217
  type: :development
232
218
  prerelease: false
233
219
  version_requirements: !ruby/object:Gem::Requirement
234
220
  requirements:
235
- - - ">="
221
+ - - "~>"
236
222
  - !ruby/object:Gem::Version
237
- version: '0'
223
+ version: '0.0'
238
224
  description: |2
239
- ShowOff is a Sinatra web app that reads simple configuration files for a
225
+ Showoff is a Sinatra web app that reads simple configuration files for a
240
226
  presentation. It is sort of like a Keynote web app engine. I am using it
241
227
  to do all my talks in 2010, because I have a deep hatred in my heart for
242
228
  Keynote and yet it is by far the best in the field.
@@ -258,27 +244,53 @@ files:
258
244
  - lib/commandline_parser.rb
259
245
  - lib/keymap.rb
260
246
  - lib/showoff.rb
247
+ - lib/showoff/compiler.rb
248
+ - lib/showoff/compiler/downloads.rb
249
+ - lib/showoff/compiler/fixups.rb
250
+ - lib/showoff/compiler/form.rb
251
+ - lib/showoff/compiler/glossary.rb
252
+ - lib/showoff/compiler/i18n.rb
253
+ - lib/showoff/compiler/notes.rb
254
+ - lib/showoff/compiler/table_of_contents.rb
255
+ - lib/showoff/compiler/variables.rb
256
+ - lib/showoff/config.rb
257
+ - lib/showoff/locale.rb
258
+ - lib/showoff/logger.rb
259
+ - lib/showoff/monkeypatches.rb
260
+ - lib/showoff/presentation.rb
261
+ - lib/showoff/presentation/section.rb
262
+ - lib/showoff/presentation/slide.rb
263
+ - lib/showoff/state.rb
261
264
  - lib/showoff/version.rb
265
+ - lib/showoff_ng.rb
262
266
  - lib/showoff_utils.rb
263
267
  - locales/README.md
264
268
  - locales/de.yml
265
269
  - locales/en.yml
266
270
  - locales/es.yml
267
271
  - locales/fr.yml
268
- - locales/id.yml
269
272
  - locales/ja.yml
270
273
  - locales/nl.yml
271
274
  - locales/pt.yml
272
275
  - public/css/TimeCircles-89ac5ae.css
273
276
  - public/css/disconnected-large.png
274
277
  - public/css/disconnected.png
275
- - public/css/font-awesome-4.4.0/css/font-awesome.min.css
276
- - public/css/font-awesome-4.4.0/fonts/FontAwesome.otf
277
- - public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.eot
278
- - public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.svg
279
- - public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf
280
- - public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.woff
281
- - public/css/font-awesome-4.4.0/fonts/fontawesome-webfont.woff2
278
+ - public/css/font-awesome-5.6.1/css/all.min.css
279
+ - public/css/font-awesome-5.6.1/webfonts/fa-brands-400.eot
280
+ - public/css/font-awesome-5.6.1/webfonts/fa-brands-400.svg
281
+ - public/css/font-awesome-5.6.1/webfonts/fa-brands-400.ttf
282
+ - public/css/font-awesome-5.6.1/webfonts/fa-brands-400.woff
283
+ - public/css/font-awesome-5.6.1/webfonts/fa-brands-400.woff2
284
+ - public/css/font-awesome-5.6.1/webfonts/fa-regular-400.eot
285
+ - public/css/font-awesome-5.6.1/webfonts/fa-regular-400.svg
286
+ - public/css/font-awesome-5.6.1/webfonts/fa-regular-400.ttf
287
+ - public/css/font-awesome-5.6.1/webfonts/fa-regular-400.woff
288
+ - public/css/font-awesome-5.6.1/webfonts/fa-regular-400.woff2
289
+ - public/css/font-awesome-5.6.1/webfonts/fa-solid-900.eot
290
+ - public/css/font-awesome-5.6.1/webfonts/fa-solid-900.svg
291
+ - public/css/font-awesome-5.6.1/webfonts/fa-solid-900.ttf
292
+ - public/css/font-awesome-5.6.1/webfonts/fa-solid-900.woff
293
+ - public/css/font-awesome-5.6.1/webfonts/fa-solid-900.woff2
282
294
  - public/css/highlight/agate.css
283
295
  - public/css/highlight/androidstudio.css
284
296
  - public/css/highlight/arduino-light.css
@@ -408,7 +420,8 @@ files:
408
420
  - public/js/annotations.js
409
421
  - public/js/bigtext-0.1.8.js
410
422
  - public/js/coffee-script-1.1.3-pre.js
411
- - public/js/highlight.pack-9.2.0.js
423
+ - public/js/highlight.pack-9.15.10.js
424
+ - public/js/highlightjs-line-numbers.min.js
412
425
  - public/js/intro-2.5.local.js
413
426
  - public/js/jTypeWriter-1.1.js
414
427
  - public/js/jquery-2.1.4.min.js
@@ -431,12 +444,13 @@ files:
431
444
  - views/index.erb
432
445
  - views/onepage.erb
433
446
  - views/presenter.erb
447
+ - views/slide.erb
434
448
  - views/stats.erb
435
449
  homepage: https://puppetlabs.github.io/showoff
436
450
  licenses:
437
451
  - MIT
438
452
  metadata: {}
439
- post_install_message:
453
+ post_install_message:
440
454
  rdoc_options: []
441
455
  require_paths:
442
456
  - lib
@@ -451,9 +465,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
451
465
  - !ruby/object:Gem::Version
452
466
  version: '0'
453
467
  requirements: []
454
- rubyforge_project:
455
- rubygems_version: 2.5.2
456
- signing_key:
468
+ rubygems_version: 3.2.13
469
+ signing_key:
457
470
  specification_version: 4
458
471
  summary: The best damn presentation software a developer could ever love.
459
472
  test_files: []