shining 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -1,107 +1,8 @@
1
1
  # Shining
2
2
 
3
- A presentation framework to be used with Webkit. Yeah, it's all in-browser.
3
+ A framework for creating in-browser presentations.
4
4
 
5
- # Installation
6
-
7
- $ sudo gem install shining
8
-
9
- # How to use
10
-
11
- Create a new presentation by
12
-
13
- $ shine mypreso
14
-
15
- Where "mypreso" is the directory name you'll use for it. A base presentation has the
16
- following base structure.
17
-
18
- * ROOT
19
- * config.json
20
- * slides
21
- * index.html
22
-
23
- Which leads us to...
24
-
25
- # Configuration
26
-
27
- Presentation-wide configuration happens through the **config.json** file. Existing
28
- parameters are:
29
-
30
- * slides: an array containing the name of the presentation's slides. If you're using
31
- the generator to add slides, don't worry about editing it.
32
- * transitions: See next section.
33
-
34
- # Transitions
35
-
36
- Transitions take effect when you navigate back or forward your slides. Valid options are:
37
-
38
- * "fade": Fades slides out/in.
39
- * "slide": Slides them horizontally.
40
- * "slice": Cool horizontal slicing effect.
41
- * false: Setting to false disables transitions altogether.
42
-
43
- For anything not false, make sure you're passing a proper string.
44
-
45
- # Slides
46
-
47
- Easy way first. Change the directory to the presentation's directory first. Then
48
-
49
- $ shine slide mynewslide
50
-
51
- Where "mynewslide" is the name of the slide. This will create a slide in
52
- **ROOT/slides/mynewslide.html**, and a slide script in **ROOT/slides/mynewslide.js**.
53
- It will also automagically edit the **config.json** file for you, adding the new slide.
54
-
55
- You can also create slides manually by adding an HTML file to **ROOT/slides**, and then
56
- adding the file name (minus the extension) to **config.json**. Though really, just use
57
- the generator.
58
-
59
- # Slide templates
60
-
61
- Shining supports Haml and ERb templates. For now, you can use it by manually dropping
62
- a template file or either of those formats in **ROOT/slides**, and then running (from
63
- inside the presentation's directory)
64
-
65
- $ shine compile
66
-
67
- Say you have a slide template named **ROOT/slides/test.haml**. Running the aforementioned
68
- command will generate a new **test.html** from it. Note that this will _overwrite_ an
69
- existing **test.html** slide if one exists.
70
-
71
- # Slide scripts
72
-
73
- Slides can have an associated script which you can use to trigger certain actions
74
- (e.g.: effects) at a predetermined time. If you used the generator to create a slide,
75
- you'll notice a .js file got created along with it. That's the script we're talking
76
- about. So for instance, say you have 2 hidden paragraphs in your slide, and you intent
77
- to show one after another. Open that .js file and do
78
-
79
- 1, $('p:first').effect('fades-in')
80
- 3, $('p:eq(1)').effect('fades-in')
81
-
82
- The above translates to: 1 second into this slide, fade in the first
83
- paragraph. 3 seconds in, fade in the second paragraph.
84
-
85
- This is handy if you want to schedule things you'd like to see happening at certain
86
- stages during a presentation.
87
-
88
- # Steps to winning
89
-
90
- Quickly outline of things I'm going to do with this project:
91
-
92
- * More effects, because there's no such thing as visually appealing enough. Some
93
- fine tuning of the existing ones is in order as well.
94
- * More themes.
95
- * Add a CSS parser, so I can build jQuery queues with the effects and order them
96
- without the end-user needing to make sure things happen when they expect.
97
- * Better generators. For now the requirements are simple enough so they can stay
98
- as a single file, but I'm confident that will change.
99
- * Better DSL for slide scripts. I know it's awesome already, but there's always
100
- room for improvement.
101
- * Macros, or configurable shortcuts for adding things like audio and video
102
- without having to know how to use the tags.
103
- * Did I say I wanna add macros, so you'll need to know next to zero HTML in order
104
- to create *really* awesome presentations?
5
+ Please refer to the project webpage (http://shining.heroku.com) for docs.
105
6
 
106
7
  # License
107
8
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.3
@@ -123,7 +123,7 @@
123
123
  $(window).resize(function() { $('#stage').centralize() });
124
124
  loadConfig(function() {
125
125
  var startAt = document.location.hash.replace('#', '');
126
- loadSlide(startAt ? startAt : $.shining.slides.current());
126
+ loadSlide(startAt ? startAt : $.shining.slides.current(), true);
127
127
  setTitle($.shining.config.title);
128
128
  setTheme($.shining.config.theme);
129
129
  parseEffects();
@@ -143,7 +143,9 @@
143
143
  if (!name) return false;
144
144
  applyTransition(
145
145
  function() { loadSlide(name) },
146
- function() { $.shining.scripts.run($.shining.currentScript) }
146
+ function() {
147
+ $.shining.scripts.run($.shining.currentScript)
148
+ }
147
149
  )
148
150
  }
149
151
 
@@ -167,7 +169,7 @@
167
169
  return $('script:first').attr('src').match(/^vendor/);
168
170
  }
169
171
 
170
- function loadSlide(name) {
172
+ function loadSlide(name, runScript) {
171
173
  $('#stage .contents').load(
172
174
  slide(name).markup(),
173
175
  function(data) {
@@ -178,16 +180,17 @@
178
180
  $.shining.scripts.reap();
179
181
  updateControlAnchors();
180
182
  if (data) {
181
- loadSlideScript(name);
183
+ loadSlideScript(name, runScript);
182
184
  loadSlideStyle(name);
183
185
  }
184
186
  }
185
187
  );
186
188
  }
187
189
 
188
- function loadSlideScript(name) {
190
+ function loadSlideScript(name, run) {
189
191
  $.get(slide(name).script(), function(script) {
190
192
  $.shining.currentScript = script;
193
+ if (run) $.shining.scripts.run($.shining.currentScript);
191
194
  })
192
195
  }
193
196
 
data/shining.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{shining}
8
- s.version = "1.1.2"
8
+ s.version = "1.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julio Cesar Ody"]
12
- s.date = %q{2010-04-08}
12
+ s.date = %q{2010-04-12}
13
13
  s.description = %q{Webkit + CSS + Javascript = awesome presos}
14
14
  s.email = %q{julio.ody@gmail.com}
15
15
  s.executables = ["console", "shine"]
@@ -1,2 +1 @@
1
1
  JSpec.modules[0].utilities.mockRequest('config.json').and_return('{"transitions": false, "slides": ["welcome", "slide1", "slide2"]}');
2
-
@@ -1,7 +1,8 @@
1
1
  describe 'Shining'
2
2
  before_each
3
3
  window.$ = jQuery;
4
- $.fn.offset = function() { return 0 };
4
+ $.fn.offset = function() { return 0 }
5
+ $.fn.centralize = function() { return false }
5
6
  if (!$('#hidden').length) {
6
7
  var hidden = $('<div id="hidden"></div>').css({height: 0, width: 0, opacity: 0, marginLeft: -10000}).appendTo('body');
7
8
  var stage = $($(fixture('index.html')).get(0)),
@@ -53,6 +54,6 @@ describe 'Shining'
53
54
  mockRequest().and_return('<h1>Slide2</h1>');
54
55
  $.shining.nextSlide();
55
56
  $('#stage .contents h1').text().should.be 'Slide2'
56
- end
57
+ end
57
58
  end
58
59
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shining
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julio Cesar Ody
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-04-08 00:00:00 +10:00
12
+ date: 2010-04-12 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency