briefing 0.0.1

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.
Files changed (60) hide show
  1. data/.gitignore +4 -0
  2. data/.gitmodules +3 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +95 -0
  6. data/Rakefile +26 -0
  7. data/bin/briefing +28 -0
  8. data/briefing.gemspec +19 -0
  9. data/lib/briefing/app.rb +20 -0
  10. data/lib/briefing/public/css/print/paper.css +176 -0
  11. data/lib/briefing/public/css/print/pdf.css +160 -0
  12. data/lib/briefing/public/css/reveal.css +1281 -0
  13. data/lib/briefing/public/css/reveal.min.css +7 -0
  14. data/lib/briefing/public/css/shaders/tile-flip.fs +64 -0
  15. data/lib/briefing/public/css/shaders/tile-flip.vs +141 -0
  16. data/lib/briefing/public/css/theme/README.md +5 -0
  17. data/lib/briefing/public/css/theme/beige.css +163 -0
  18. data/lib/briefing/public/css/theme/default.css +163 -0
  19. data/lib/briefing/public/css/theme/night.css +150 -0
  20. data/lib/briefing/public/css/theme/serif.css +150 -0
  21. data/lib/briefing/public/css/theme/simple.css +152 -0
  22. data/lib/briefing/public/css/theme/sky.css +156 -0
  23. data/lib/briefing/public/css/theme/source/beige.scss +50 -0
  24. data/lib/briefing/public/css/theme/source/default.scss +42 -0
  25. data/lib/briefing/public/css/theme/source/night.scss +35 -0
  26. data/lib/briefing/public/css/theme/source/serif.scss +33 -0
  27. data/lib/briefing/public/css/theme/source/simple.scss +38 -0
  28. data/lib/briefing/public/css/theme/source/sky.scss +41 -0
  29. data/lib/briefing/public/css/theme/template/mixins.scss +29 -0
  30. data/lib/briefing/public/css/theme/template/settings.scss +33 -0
  31. data/lib/briefing/public/css/theme/template/theme.scss +163 -0
  32. data/lib/briefing/public/js/reveal.js +1634 -0
  33. data/lib/briefing/public/js/reveal.min.js +8 -0
  34. data/lib/briefing/public/lib/css/zenburn.css +115 -0
  35. data/lib/briefing/public/lib/font/league_gothic-webfont.eot +0 -0
  36. data/lib/briefing/public/lib/font/league_gothic-webfont.svg +230 -0
  37. data/lib/briefing/public/lib/font/league_gothic-webfont.ttf +0 -0
  38. data/lib/briefing/public/lib/font/league_gothic-webfont.woff +0 -0
  39. data/lib/briefing/public/lib/font/league_gothic_license +2 -0
  40. data/lib/briefing/public/lib/js/classList.js +2 -0
  41. data/lib/briefing/public/lib/js/head.min.js +8 -0
  42. data/lib/briefing/public/lib/js/html5shiv.js +7 -0
  43. data/lib/briefing/public/plugin/highlight/highlight.js +14 -0
  44. data/lib/briefing/public/plugin/markdown/markdown.js +37 -0
  45. data/lib/briefing/public/plugin/markdown/showdown.js +62 -0
  46. data/lib/briefing/public/plugin/notes/notes.html +143 -0
  47. data/lib/briefing/public/plugin/notes/notes.js +98 -0
  48. data/lib/briefing/public/plugin/notes-server/client.js +57 -0
  49. data/lib/briefing/public/plugin/notes-server/index.js +58 -0
  50. data/lib/briefing/public/plugin/notes-server/notes.html +139 -0
  51. data/lib/briefing/public/plugin/postmessage/example.html +39 -0
  52. data/lib/briefing/public/plugin/postmessage/postmessage.js +42 -0
  53. data/lib/briefing/public/plugin/remotes/remotes.js +19 -0
  54. data/lib/briefing/public/plugin/zoom-js/zoom.js +251 -0
  55. data/lib/briefing/slides.rb +37 -0
  56. data/lib/briefing/version.rb +3 -0
  57. data/lib/briefing/views/index.erb +79 -0
  58. data/lib/briefing.rb +5 -0
  59. data/vendor/.gitkeep +0 -0
  60. metadata +140 -0
@@ -0,0 +1,42 @@
1
+ /*
2
+
3
+ simple postmessage plugin
4
+
5
+ Useful when a reveal slideshow is inside an iframe.
6
+ It allows to call reveal methods from outside.
7
+
8
+ Example:
9
+ var reveal = window.frames[0];
10
+
11
+ // Reveal.prev();
12
+ reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
13
+ // Reveal.next();
14
+ reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
15
+ // Reveal.slide(2, 2);
16
+ reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
17
+
18
+ Add to the slideshow:
19
+
20
+ dependencies: [
21
+ ...
22
+ { src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
23
+ ]
24
+
25
+ */
26
+
27
+ (function (){
28
+
29
+ window.addEventListener( "message", function ( event ) {
30
+ var data = JSON.parse( event.data ),
31
+ method = data.method,
32
+ args = data.args;
33
+
34
+ if( typeof Reveal[method] === 'function' ) {
35
+ Reveal[method].apply( Reveal, data.args );
36
+ }
37
+ }, false);
38
+
39
+ }());
40
+
41
+
42
+
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Touch-based remote controller for your presentation courtesy
3
+ * of the folks at http://remotes.io
4
+ */
5
+
6
+ head.ready( 'remotes.ne.min.js', function() {
7
+
8
+ new Remotes("preview")
9
+ .on("swipe-left", function(e){ Reveal.right(); })
10
+ .on("swipe-right", function(e){ Reveal.left(); })
11
+ .on("swipe-up", function(e){ Reveal.down(); })
12
+ .on("swipe-down", function(e){ Reveal.up(); })
13
+ .on("tap", function(e){
14
+ Reveal.toggleOverview();
15
+ });
16
+
17
+ } );
18
+
19
+ head.js( 'https://raw.github.com/Remotes/Remotes/master/dist/remotes.ne.min.js' );
@@ -0,0 +1,251 @@
1
+ // Custom reveal.js integration
2
+ (function(){
3
+ document.querySelector( '.reveal' ).addEventListener( 'click', function( event ) {
4
+ if( event.altKey ) {
5
+ event.preventDefault();
6
+ zoom.to({ element: event.target, pan: false });
7
+ }
8
+ } );
9
+ })();
10
+
11
+ /*!
12
+ * zoom.js 0.2 (modified version for use with reveal.js)
13
+ * http://lab.hakim.se/zoom-js
14
+ * MIT licensed
15
+ *
16
+ * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
17
+ */
18
+ var zoom = (function(){
19
+
20
+ // The current zoom level (scale)
21
+ var level = 1;
22
+
23
+ // The current mouse position, used for panning
24
+ var mouseX = 0,
25
+ mouseY = 0;
26
+
27
+ // Timeout before pan is activated
28
+ var panEngageTimeout = -1,
29
+ panUpdateInterval = -1;
30
+
31
+ var currentOptions = null;
32
+
33
+ // Check for transform support so that we can fallback otherwise
34
+ var supportsTransforms = 'WebkitTransform' in document.body.style ||
35
+ 'MozTransform' in document.body.style ||
36
+ 'msTransform' in document.body.style ||
37
+ 'OTransform' in document.body.style ||
38
+ 'transform' in document.body.style;
39
+
40
+ if( supportsTransforms ) {
41
+ // The easing that will be applied when we zoom in/out
42
+ document.body.style.transition = 'transform 0.8s ease';
43
+ document.body.style.OTransition = '-o-transform 0.8s ease';
44
+ document.body.style.msTransition = '-ms-transform 0.8s ease';
45
+ document.body.style.MozTransition = '-moz-transform 0.8s ease';
46
+ document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
47
+ }
48
+
49
+ // Zoom out if the user hits escape
50
+ document.addEventListener( 'keyup', function( event ) {
51
+ if( level !== 1 && event.keyCode === 27 ) {
52
+ zoom.out();
53
+ }
54
+ }, false );
55
+
56
+ // Monitor mouse movement for panning
57
+ document.addEventListener( 'mousemove', function( event ) {
58
+ if( level !== 1 ) {
59
+ mouseX = event.clientX;
60
+ mouseY = event.clientY;
61
+ }
62
+ }, false );
63
+
64
+ /**
65
+ * Applies the CSS required to zoom in, prioritizes use of CSS3
66
+ * transforms but falls back on zoom for IE.
67
+ *
68
+ * @param {Number} pageOffsetX
69
+ * @param {Number} pageOffsetY
70
+ * @param {Number} elementOffsetX
71
+ * @param {Number} elementOffsetY
72
+ * @param {Number} scale
73
+ */
74
+ function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
75
+
76
+ if( supportsTransforms ) {
77
+ var origin = pageOffsetX +'px '+ pageOffsetY +'px',
78
+ transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
79
+
80
+ document.body.style.transformOrigin = origin;
81
+ document.body.style.OTransformOrigin = origin;
82
+ document.body.style.msTransformOrigin = origin;
83
+ document.body.style.MozTransformOrigin = origin;
84
+ document.body.style.WebkitTransformOrigin = origin;
85
+
86
+ document.body.style.transform = transform;
87
+ document.body.style.OTransform = transform;
88
+ document.body.style.msTransform = transform;
89
+ document.body.style.MozTransform = transform;
90
+ document.body.style.WebkitTransform = transform;
91
+ }
92
+ else {
93
+ // Reset all values
94
+ if( scale === 1 ) {
95
+ document.body.style.position = '';
96
+ document.body.style.left = '';
97
+ document.body.style.top = '';
98
+ document.body.style.width = '';
99
+ document.body.style.height = '';
100
+ document.body.style.zoom = '';
101
+ }
102
+ // Apply scale
103
+ else {
104
+ document.body.style.position = 'relative';
105
+ document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
106
+ document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
107
+ document.body.style.width = ( scale * 100 ) + '%';
108
+ document.body.style.height = ( scale * 100 ) + '%';
109
+ document.body.style.zoom = scale;
110
+ }
111
+ }
112
+
113
+ level = scale;
114
+
115
+ if( level !== 1 && document.documentElement.classList ) {
116
+ document.documentElement.classList.add( 'zoomed' );
117
+ }
118
+ else {
119
+ document.documentElement.classList.remove( 'zoomed' );
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Pan the document when the mosue cursor approaches the edges
125
+ * of the window.
126
+ */
127
+ function pan() {
128
+ var range = 0.12,
129
+ rangeX = window.innerWidth * range,
130
+ rangeY = window.innerHeight * range,
131
+ scrollOffset = getScrollOffset();
132
+
133
+ // Up
134
+ if( mouseY < rangeY ) {
135
+ window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
136
+ }
137
+ // Down
138
+ else if( mouseY > window.innerHeight - rangeY ) {
139
+ window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
140
+ }
141
+
142
+ // Left
143
+ if( mouseX < rangeX ) {
144
+ window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
145
+ }
146
+ // Right
147
+ else if( mouseX > window.innerWidth - rangeX ) {
148
+ window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
149
+ }
150
+ }
151
+
152
+ function getScrollOffset() {
153
+ return {
154
+ x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
155
+ y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
156
+ }
157
+ }
158
+
159
+ return {
160
+ /**
161
+ * Zooms in on either a rectangle or HTML element.
162
+ *
163
+ * @param {Object} options
164
+ * - element: HTML element to zoom in on
165
+ * OR
166
+ * - x/y: coordinates in non-transformed space to zoom in on
167
+ * - width/height: the portion of the screen to zoom in on
168
+ * - scale: can be used instead of width/height to explicitly set scale
169
+ */
170
+ to: function( options ) {
171
+ // Due to an implementation limitation we can't zoom in
172
+ // to another element without zooming out first
173
+ if( level !== 1 ) {
174
+ zoom.out();
175
+ }
176
+ else {
177
+ options.x = options.x || 0;
178
+ options.y = options.y || 0;
179
+
180
+ // If an element is set, that takes precedence
181
+ if( !!options.element ) {
182
+ // Space around the zoomed in element to leave on screen
183
+ var padding = 20;
184
+
185
+ options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
186
+ options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
187
+ options.x = options.element.getBoundingClientRect().left - padding;
188
+ options.y = options.element.getBoundingClientRect().top - padding;
189
+ }
190
+
191
+ // If width/height values are set, calculate scale from those values
192
+ if( options.width !== undefined && options.height !== undefined ) {
193
+ options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
194
+ }
195
+
196
+ if( options.scale > 1 ) {
197
+ options.x *= options.scale;
198
+ options.y *= options.scale;
199
+
200
+ var scrollOffset = getScrollOffset();
201
+
202
+ if( options.element ) {
203
+ scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
204
+ }
205
+
206
+ magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
207
+
208
+ if( options.pan !== false ) {
209
+
210
+ // Wait with engaging panning as it may conflict with the
211
+ // zoom transition
212
+ panEngageTimeout = setTimeout( function() {
213
+ panUpdateInterval = setInterval( pan, 1000 / 60 );
214
+ }, 800 );
215
+
216
+ }
217
+ }
218
+
219
+ currentOptions = options;
220
+ }
221
+ },
222
+
223
+ /**
224
+ * Resets the document zoom state to its default.
225
+ */
226
+ out: function() {
227
+ clearTimeout( panEngageTimeout );
228
+ clearInterval( panUpdateInterval );
229
+
230
+ var scrollOffset = getScrollOffset();
231
+
232
+ if( currentOptions && currentOptions.element ) {
233
+ scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
234
+ }
235
+
236
+ magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
237
+
238
+ level = 1;
239
+ },
240
+
241
+ // Alias
242
+ magnify: function( options ) { this.to( options ) },
243
+ reset: function() { this.out() },
244
+
245
+ zoomLevel: function() {
246
+ return level;
247
+ }
248
+ }
249
+
250
+ })();
251
+
@@ -0,0 +1,37 @@
1
+ require 'yaml'
2
+
3
+ module Briefing
4
+ class Slides
5
+ attr_reader :sections, :options
6
+
7
+ DEFAULTS = {
8
+ 'controls' => false,
9
+ 'progress' => true,
10
+ 'history' => true,
11
+ 'keyboard' => true,
12
+ 'overview' => true,
13
+ 'center' => true,
14
+ 'loop' => false,
15
+ 'rtl' => false,
16
+ 'autoSlide' => 0,
17
+ 'mouseWheel' => false,
18
+ 'rollingLinks' => false
19
+ }
20
+
21
+ def initialize(filepath)
22
+ @sections = []
23
+ buffer = []
24
+ File.open(filepath).read.each_line {|line|
25
+ if line.match /^-{3,}(.*)$/
26
+ if buffer.length > 0
27
+ @sections << buffer.join("")
28
+ end
29
+ buffer = []
30
+ else
31
+ buffer << line
32
+ end
33
+ }
34
+ @options = DEFAULTS.merge(YAML.load(@sections.shift))
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module Briefing
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,79 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title><%= @options['title'] || 'Slides' %></title>
7
+
8
+ <% if @options['author'] %>
9
+ <meta name="author" content="<%= @options['author'] %>">
10
+ <% end%>
11
+ <% if @options['description'] %>
12
+ <meta name="description" content="<%= @options['description'] %>">
13
+ <% end%>
14
+ <meta name="apple-mobile-web-app-capable" content="yes" />
15
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
16
+
17
+ <link rel="stylesheet" href="css/reveal.min.css">
18
+ <link rel="stylesheet" href="css/theme/<%= @options['theme'] || 'default' %>.css" id="theme">
19
+
20
+ <!-- For syntax highlighting -->
21
+ <link rel="stylesheet" href="lib/css/zenburn.css">
22
+
23
+ <% if @options['style'] %>
24
+ <style>
25
+ <!--
26
+ <%= @options['style'] %>
27
+ -->
28
+ </style>
29
+ <% end %>
30
+
31
+ <!-- If the query includes 'print-pdf', use the PDF print sheet -->
32
+ <script>
33
+ document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
34
+ </script>
35
+
36
+ <!--[if lt IE 9]>
37
+ <script src="lib/js/html5shiv.js"></script>
38
+ <![endif]-->
39
+ </head>
40
+
41
+ <body>
42
+
43
+ <div class="reveal">
44
+ <div class="slides">
45
+ <% @slides.sections.each {|section| %>
46
+ <section data-markdown>
47
+ <script type="text/template">
48
+ <%= section %>
49
+ </script>
50
+ </section>
51
+ <% } %>
52
+ </div>
53
+ </div>
54
+
55
+ <script src="lib/js/head.min.js"></script>
56
+ <script src="js/reveal.min.js"></script>
57
+
58
+ <script>
59
+ Reveal.initialize({
60
+ <% Briefing::Slides::DEFAULTS.each_key {|key| %>
61
+ <%= key.to_s %>: <%= @options[key] %>,
62
+ <% } %>
63
+ theme: '<%= @options['theme'] || 'default' %>', // available themes are in /css/theme
64
+ transition: '<%= @options['transition'] || 'default' %>', // default/cube/page/concave/zoom/linear/none
65
+
66
+ // Optional libraries used to extend on reveal.js
67
+ dependencies: [
68
+ { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
69
+ { src: 'plugin/markdown/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
70
+ { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
71
+ { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
72
+ { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
73
+ { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
74
+ ]
75
+ });
76
+ </script>
77
+
78
+ </body>
79
+ </html>
data/lib/briefing.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "briefing/version"
2
+ require "briefing/app"
3
+
4
+ module Briefing
5
+ end
data/vendor/.gitkeep ADDED
File without changes
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: briefing
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - kambara
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: sinatra-reloader
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Briefing is a presentation tool that lets you create slides from a text
47
+ file written in Markdown. By executing 'briefing' command and specifying a text
48
+ file, you can show it as a beautiful slides in your web browser.
49
+ email:
50
+ - kambara@sappari.org
51
+ executables:
52
+ - briefing
53
+ extensions: []
54
+ extra_rdoc_files: []
55
+ files:
56
+ - .gitignore
57
+ - .gitmodules
58
+ - Gemfile
59
+ - LICENSE
60
+ - README.md
61
+ - Rakefile
62
+ - bin/briefing
63
+ - briefing.gemspec
64
+ - lib/briefing.rb
65
+ - lib/briefing/app.rb
66
+ - lib/briefing/public/css/print/paper.css
67
+ - lib/briefing/public/css/print/pdf.css
68
+ - lib/briefing/public/css/reveal.css
69
+ - lib/briefing/public/css/reveal.min.css
70
+ - lib/briefing/public/css/shaders/tile-flip.fs
71
+ - lib/briefing/public/css/shaders/tile-flip.vs
72
+ - lib/briefing/public/css/theme/README.md
73
+ - lib/briefing/public/css/theme/beige.css
74
+ - lib/briefing/public/css/theme/default.css
75
+ - lib/briefing/public/css/theme/night.css
76
+ - lib/briefing/public/css/theme/serif.css
77
+ - lib/briefing/public/css/theme/simple.css
78
+ - lib/briefing/public/css/theme/sky.css
79
+ - lib/briefing/public/css/theme/source/beige.scss
80
+ - lib/briefing/public/css/theme/source/default.scss
81
+ - lib/briefing/public/css/theme/source/night.scss
82
+ - lib/briefing/public/css/theme/source/serif.scss
83
+ - lib/briefing/public/css/theme/source/simple.scss
84
+ - lib/briefing/public/css/theme/source/sky.scss
85
+ - lib/briefing/public/css/theme/template/mixins.scss
86
+ - lib/briefing/public/css/theme/template/settings.scss
87
+ - lib/briefing/public/css/theme/template/theme.scss
88
+ - lib/briefing/public/js/reveal.js
89
+ - lib/briefing/public/js/reveal.min.js
90
+ - lib/briefing/public/lib/css/zenburn.css
91
+ - lib/briefing/public/lib/font/league_gothic-webfont.eot
92
+ - lib/briefing/public/lib/font/league_gothic-webfont.svg
93
+ - lib/briefing/public/lib/font/league_gothic-webfont.ttf
94
+ - lib/briefing/public/lib/font/league_gothic-webfont.woff
95
+ - lib/briefing/public/lib/font/league_gothic_license
96
+ - lib/briefing/public/lib/js/classList.js
97
+ - lib/briefing/public/lib/js/head.min.js
98
+ - lib/briefing/public/lib/js/html5shiv.js
99
+ - lib/briefing/public/plugin/highlight/highlight.js
100
+ - lib/briefing/public/plugin/markdown/markdown.js
101
+ - lib/briefing/public/plugin/markdown/showdown.js
102
+ - lib/briefing/public/plugin/notes-server/client.js
103
+ - lib/briefing/public/plugin/notes-server/index.js
104
+ - lib/briefing/public/plugin/notes-server/notes.html
105
+ - lib/briefing/public/plugin/notes/notes.html
106
+ - lib/briefing/public/plugin/notes/notes.js
107
+ - lib/briefing/public/plugin/postmessage/example.html
108
+ - lib/briefing/public/plugin/postmessage/postmessage.js
109
+ - lib/briefing/public/plugin/remotes/remotes.js
110
+ - lib/briefing/public/plugin/zoom-js/zoom.js
111
+ - lib/briefing/slides.rb
112
+ - lib/briefing/version.rb
113
+ - lib/briefing/views/index.erb
114
+ - vendor/.gitkeep
115
+ homepage: https://github.com/kambara/briefing
116
+ licenses: []
117
+ post_install_message:
118
+ rdoc_options: []
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ requirements: []
134
+ rubyforge_project:
135
+ rubygems_version: 1.8.24
136
+ signing_key:
137
+ specification_version: 3
138
+ summary: A presentation tool that lets you create slides from a text file written
139
+ in Markdown
140
+ test_files: []