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.
- data/.gitignore +4 -0
- data/.gitmodules +3 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +95 -0
- data/Rakefile +26 -0
- data/bin/briefing +28 -0
- data/briefing.gemspec +19 -0
- data/lib/briefing/app.rb +20 -0
- data/lib/briefing/public/css/print/paper.css +176 -0
- data/lib/briefing/public/css/print/pdf.css +160 -0
- data/lib/briefing/public/css/reveal.css +1281 -0
- data/lib/briefing/public/css/reveal.min.css +7 -0
- data/lib/briefing/public/css/shaders/tile-flip.fs +64 -0
- data/lib/briefing/public/css/shaders/tile-flip.vs +141 -0
- data/lib/briefing/public/css/theme/README.md +5 -0
- data/lib/briefing/public/css/theme/beige.css +163 -0
- data/lib/briefing/public/css/theme/default.css +163 -0
- data/lib/briefing/public/css/theme/night.css +150 -0
- data/lib/briefing/public/css/theme/serif.css +150 -0
- data/lib/briefing/public/css/theme/simple.css +152 -0
- data/lib/briefing/public/css/theme/sky.css +156 -0
- data/lib/briefing/public/css/theme/source/beige.scss +50 -0
- data/lib/briefing/public/css/theme/source/default.scss +42 -0
- data/lib/briefing/public/css/theme/source/night.scss +35 -0
- data/lib/briefing/public/css/theme/source/serif.scss +33 -0
- data/lib/briefing/public/css/theme/source/simple.scss +38 -0
- data/lib/briefing/public/css/theme/source/sky.scss +41 -0
- data/lib/briefing/public/css/theme/template/mixins.scss +29 -0
- data/lib/briefing/public/css/theme/template/settings.scss +33 -0
- data/lib/briefing/public/css/theme/template/theme.scss +163 -0
- data/lib/briefing/public/js/reveal.js +1634 -0
- data/lib/briefing/public/js/reveal.min.js +8 -0
- data/lib/briefing/public/lib/css/zenburn.css +115 -0
- data/lib/briefing/public/lib/font/league_gothic-webfont.eot +0 -0
- data/lib/briefing/public/lib/font/league_gothic-webfont.svg +230 -0
- data/lib/briefing/public/lib/font/league_gothic-webfont.ttf +0 -0
- data/lib/briefing/public/lib/font/league_gothic-webfont.woff +0 -0
- data/lib/briefing/public/lib/font/league_gothic_license +2 -0
- data/lib/briefing/public/lib/js/classList.js +2 -0
- data/lib/briefing/public/lib/js/head.min.js +8 -0
- data/lib/briefing/public/lib/js/html5shiv.js +7 -0
- data/lib/briefing/public/plugin/highlight/highlight.js +14 -0
- data/lib/briefing/public/plugin/markdown/markdown.js +37 -0
- data/lib/briefing/public/plugin/markdown/showdown.js +62 -0
- data/lib/briefing/public/plugin/notes/notes.html +143 -0
- data/lib/briefing/public/plugin/notes/notes.js +98 -0
- data/lib/briefing/public/plugin/notes-server/client.js +57 -0
- data/lib/briefing/public/plugin/notes-server/index.js +58 -0
- data/lib/briefing/public/plugin/notes-server/notes.html +139 -0
- data/lib/briefing/public/plugin/postmessage/example.html +39 -0
- data/lib/briefing/public/plugin/postmessage/postmessage.js +42 -0
- data/lib/briefing/public/plugin/remotes/remotes.js +19 -0
- data/lib/briefing/public/plugin/zoom-js/zoom.js +251 -0
- data/lib/briefing/slides.rb +37 -0
- data/lib/briefing/version.rb +3 -0
- data/lib/briefing/views/index.erb +79 -0
- data/lib/briefing.rb +5 -0
- data/vendor/.gitkeep +0 -0
- 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,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
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: []
|