reveal-ck 0.1.4 → 0.1.5

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDU1YTM4NTM5MWM4Y2U0NmFlN2ZiYTBiNmQ5NWQ0ZTc1OThkYTNiMg==
4
+ Mjg0NzYyNTNiNjY1NjZjZjE0MzBiYjQ2YjJlOGQ1YWE2ODRkYjNlMg==
5
5
  data.tar.gz: !binary |-
6
- MTExYzMwYWIzZTdiMDAwMDExNTg4MjNmNDE5ZTRjYjI4YTBkNDgwOA==
6
+ YzE0MDdlYzUwMjk3NmY1MzViOTI2NzJkZTY0N2Q1NmIwYTczZjNjOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZjU3MDUxN2QyMWExN2IyZGUwZWI1ODFhYTYyYzYwZDE3ODM5MjExOGJlMmVi
10
- NjRlNmU3M2YzYWIzMGIyM2JlNzJiODcxZDFiMTlkYmE5ZTdhODMxNjE2ZDk2
11
- NGU2NGIxZjY0ZGVhYWVlZjdhOTFkMTNmNTVlYTAzODAyMTU1YjQ=
9
+ MDZjNGNkNTAxOGZmOGIzNjFjOWI2ZGEzYjE2YjcyZTMxNDQzMGQwNGNjNGM4
10
+ ZDM1ZDM3MGYzYTgwZGY0NjhhZjFhYzY2YzEwZDkyMTQ4NThmODgwMDQxNzI4
11
+ ZTY1ZmVmODYzOTQwZTc5OTFiMTVhMDEyOTZlZTdlMDM3YmE0YWU=
12
12
  data.tar.gz: !binary |-
13
- MWEwMWJlNTMyNWVhMWVkNDI0OGRiNTI5YzcwOWExODZjZWQ3N2VhYWI2NTZj
14
- MzljMGQwMjNiMjc2ZDJhMjIwMTU1OTcyM2VmZWRmZDlhMjUwM2RiMGZiNjgz
15
- MWYyNTM1ZThlOTRkNzhiODNhZGYzNTNkODIyZDk5N2FhNjgzMzk=
13
+ NzYyY2MyYWQyNjcwYzFlMGIxMWY3NDYxOGU4MDQ3NjMyZDk4MWRkNjI4Yjg4
14
+ NmEzZDVjNTMzMzU5MTY4NzBmMTMxZjJjMWU0ODJiY2MyMTcyNzgwZTg1YzI0
15
+ NGU1NDgwMzE5MTQzZGZlZmM2ZjBjN2Q2YTNlYjEwM2I4ZWQ4MGU=
data/README.md CHANGED
@@ -55,6 +55,41 @@ there's minimal markup.
55
55
  In the end, [reveal.js][reveal-js], can make things pretty, but only
56
56
  you can make a presentation that is worthwhile.
57
57
 
58
+ ## One Last Thought: Slides in Ruby
59
+
60
+ Slim and Haml are decent, but the approach outlined so far means that
61
+ a user of reveal-ck needs to understand markup and conventions within
62
+ reveal.js. A templating language makes things less verbose, but it's
63
+ still a templating language.
64
+
65
+ If you'd like to go one step further, reveal-ck gives you the
66
+ opportunity to author slides in ruby. It comes with a small number of
67
+ pre-built templates that encapsulate reveal.js tag names, attributes,
68
+ and classes aside and provides classes that enable you to create
69
+ slides programmatically. See `examples/programmatic-slides.rb` for an
70
+ example.
71
+
72
+ What's more, once we've got programmatic support, it's not too much
73
+ harder to build a DSL. So, now you can create a file named `slides.rb`
74
+ (which replaces `slides.slim` or `slides.haml`) and write something
75
+ like this:
76
+
77
+ ```ruby
78
+ slide 'title',
79
+ title: 'Here we go!',
80
+ author: 'Jed Northridge'
81
+
82
+ slide 'quote',
83
+ content: "when you don't create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create."
84
+
85
+ ['3', '2', '1', 'Contact!'].each do |s|
86
+ slide 'text', content: s
87
+ end
88
+ ```
89
+
90
+ You can now run `reveal-ck generate` with `slides.rb` and build slides
91
+ in ruby.
92
+
58
93
  [jedcn-reveal-ck]: http://jedcn.com/posts/reveal-ck
59
94
  [github-jedcn-reveal-ck-template]: http://github.com/jedcn/reveal-ck-template
60
95
  [reveal-js]: http://lab.hakim.se/reveal-js
data/bin/reveal-ck CHANGED
@@ -14,20 +14,17 @@ command :generate do |c|
14
14
 
15
15
  require 'rake' # for FileList
16
16
 
17
- revealjs_root = File.expand_path(File.join(File.dirname(__FILE__), '..', 'reveal.js'))
18
- revealjs_files = FileList["#{revealjs_root}/**/*"]
19
-
20
17
  image_files = FileList["images/**/*"]
21
18
 
22
19
  output_dir = 'slides'
23
20
 
24
21
  slides_file = 'slides.haml' if File.exists? 'slides.haml'
25
22
  slides_file = 'slides.slim' if File.exists? 'slides.slim'
23
+ slides_file = 'slides.rb' if File.exists? 'slides.rb'
26
24
 
27
25
  config = RevealCK::Config.new config_file: 'config.toml'
28
26
 
29
27
  builder = RevealCK::PresentationBuilder.new({
30
- revealjs_files: revealjs_files,
31
28
  image_files: image_files,
32
29
  output_dir: output_dir,
33
30
  slides_file: slides_file,
data/lib/reveal-ck.rb CHANGED
@@ -3,8 +3,17 @@ require_relative 'reveal-ck/config'
3
3
  require_relative 'reveal-ck/file_string_replacer'
4
4
  require_relative 'reveal-ck/file_slicer'
5
5
  require_relative 'reveal-ck/file_splicer'
6
+ require_relative 'reveal-ck/template_finder'
6
7
  require_relative 'reveal-ck/template_processor'
8
+ require_relative 'reveal-ck/slide'
9
+ require_relative 'reveal-ck/presentation'
7
10
  require_relative 'reveal-ck/build_task'
8
11
  require_relative 'reveal-ck/builder'
12
+ require_relative 'reveal-ck/slides_html_builder'
9
13
  require_relative 'reveal-ck/slide_builder'
10
14
  require_relative 'reveal-ck/presentation_builder'
15
+
16
+ module RevealCK
17
+ revealjs_root = File.expand_path(File.join(File.dirname(__FILE__), '..', 'reveal.js'))
18
+ REVEALJS_FILES = Dir.glob "#{revealjs_root}/**/*"
19
+ end
@@ -0,0 +1,47 @@
1
+ module RevealCK
2
+ class Presentation
3
+
4
+ attr_accessor :theme, :title, :author
5
+
6
+ def initialize
7
+ @slides = []
8
+ @theme = 'default'
9
+ end
10
+
11
+ def add_slide(slide)
12
+ @slides << slide
13
+ end
14
+
15
+ def content
16
+ s = ""
17
+ @slides.each do |slide|
18
+ s << slide.html
19
+ s << "\n\n"
20
+ end
21
+ s
22
+ end
23
+
24
+ end
25
+ end
26
+
27
+ module RevealCK
28
+ class Presentation
29
+
30
+ def self.load(file)
31
+ presentation = Presentation.new
32
+ content = File.open(file).read
33
+ presentation.eval content
34
+ presentation
35
+ end
36
+
37
+ def eval(s)
38
+ instance_eval s
39
+ end
40
+
41
+ def slide(template, variables)
42
+ variables[:template] = template
43
+ add_slide(Slide.new(variables))
44
+ end
45
+
46
+ end
47
+ end
@@ -7,12 +7,14 @@ module RevealCK
7
7
  #
8
8
  class PresentationBuilder < Builder
9
9
 
10
- attr_reader :revealjs_files, :image_files, :slides_file, :config
10
+ attr_reader :image_files, :slides_file, :config
11
11
  attr_reader :tasks
12
12
 
13
13
  def initialize(args)
14
- @revealjs_files, @image_files = args[:revealjs_files], args[:image_files]
14
+ @image_files = args[:image_files]
15
15
  @slides_file = args[:slides_file]
16
+ @presentation = args[:presentation]
17
+ raise 'either :slides_file or :presentation is required' unless @slides_file || @presentation
16
18
  @output_dir = args[:output_dir]
17
19
  @config = args[:config]
18
20
  end
@@ -36,29 +38,39 @@ module RevealCK
36
38
  FileUtils.mkdir_p output_dir, verbose: false
37
39
  }
38
40
 
39
- add_task "Transforming #{slides_file} into #{output_dir('slides_html')}'}",
40
- lambda {
41
- processor = TemplateProcessor.open slides_file
42
- File.open(output_dir('slides.html'), 'w') { |f| f << processor.output }
43
- }
41
+ if @slides_file
42
+ add_task "Transforming #{slides_file} into #{output_dir('slides.html')}'}",
43
+ lambda {
44
+ builder = SlidesHtmlBuilder.new input_file: @slides_file
45
+ builder.write_to file: output_dir('slides.html')
46
+ }
47
+ else
48
+ add_task "Transforming Presentation into #{output_dir('slides.html')}'}",
49
+ lambda {
50
+ builder = SlidesHtmlBuilder.new presentation: @presentation
51
+ builder.write_to file: output_dir('slides.html')
52
+ }
53
+ end
44
54
 
45
55
  add_task "Bundling up the revealjs stuff into #{output_dir}/",
46
56
  lambda {
47
- FileUtils.cp_r revealjs_files, output_dir, verbose: false
57
+ FileUtils.cp_r RevealCK::REVEALJS_FILES, output_dir, verbose: false
48
58
  }
49
59
 
50
- add_task "Copying in images into #{output_dir('images')}",
51
- lambda {
52
- FileUtils.mkdir_p output_dir('images'), verbose: false
53
- FileUtils.cp_r image_files, output_dir('images'), verbose: false
54
- }
60
+ if image_files
61
+ add_task "Copying in images into #{output_dir('images')}",
62
+ lambda {
63
+ FileUtils.mkdir_p output_dir('images'), verbose: false
64
+ FileUtils.cp_r image_files, output_dir('images'), verbose: false
65
+ }
66
+ end
55
67
 
56
68
  add_task "Creating slides/index.html",
57
69
  lambda {
58
70
  slide_builder = SlideBuilder.new({
59
71
  user_slides: output_dir('slides.html'),
60
72
  reveal_slides: output_dir('index.html'),
61
- config: config
73
+ config: @presentation || config
62
74
  })
63
75
  slide_builder.build!
64
76
  }
@@ -0,0 +1,20 @@
1
+ module RevealCK
2
+ #
3
+ # Public: A Slide produces HTML output to be included in a
4
+ # presentation. Presently, this output is based upon a template.
5
+ #
6
+ class Slide
7
+
8
+ def initialize(args)
9
+ template = args[:template] || raise(':template is required')
10
+ file = TemplateFinder.new.find template
11
+ @template = TemplateProcessor.open file
12
+ @variables = args
13
+ end
14
+
15
+ def html
16
+ @template.output({}, @variables)
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,30 @@
1
+ module RevealCK
2
+ class SlidesHtmlBuilder
3
+
4
+ def initialize(args)
5
+ @input_file = args[:input_file]
6
+ @presentation = args[:presentation]
7
+ raise 'either :input_file or :presentation are required' unless @input_file || @presentation
8
+ end
9
+
10
+ def render
11
+ if @input_file
12
+ if @input_file.end_with? '.rb'
13
+ presentation = RevealCK::Presentation.load @input_file
14
+ presentation.content
15
+ else
16
+ template = TemplateProcessor.open @input_file
17
+ template.output({}, {})
18
+ end
19
+ else
20
+ @presentation.content
21
+ end
22
+ end
23
+
24
+ def write_to(args)
25
+ file = args[:file] || raise(':file is required')
26
+ File.open(file, 'w') { |f| f << render }
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,35 @@
1
+ module RevealCK
2
+ #
3
+ # Public: This class is home to a simple algorithm for looking up
4
+ # files in a series of directories. Directory order matters, and the
5
+ # first match for the file will be returned. It'll raise if it can't
6
+ # find the file you've asked for.
7
+ #
8
+ class TemplateFinder
9
+
10
+ attr_reader :paths
11
+
12
+ def initialize(args={})
13
+ @paths = args[:paths] || default_paths
14
+ end
15
+
16
+ def default_paths
17
+ pwd = Dir.pwd
18
+ pwd_templates = File.join Dir.pwd, 'templates'
19
+ reveal_ck_templates =
20
+ File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'templates'))
21
+
22
+ [pwd, pwd_templates, reveal_ck_templates]
23
+ end
24
+
25
+ def find(template_name)
26
+ paths.each do |path|
27
+ glob_pattern = "#{File.join(path, template_name)}*"
28
+ matching_templates = Dir.glob glob_pattern
29
+ return matching_templates[0] unless matching_templates.empty?
30
+ end
31
+ raise "Unable to find #{template_name} in #{paths}"
32
+ end
33
+
34
+ end
35
+ end
@@ -12,7 +12,7 @@ module RevealCK
12
12
  @template = Tilt.new file
13
13
  end
14
14
 
15
- def output(scope={}, locals = {})
15
+ def output(scope=nil, locals = {})
16
16
  @template.render scope, locals
17
17
  end
18
18
 
@@ -1,3 +1,3 @@
1
1
  module RevealCK
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -0,0 +1,3 @@
1
+ %section
2
+ %h1
3
+ Hello Haml!
@@ -0,0 +1,4 @@
1
+ slide 'quote',
2
+ headline: 'Hello Ruby!',
3
+ quote: "No. It's kinda complex. Ruby is simple in appearance, but is very complex inside, just like our human body.",
4
+ citation: 'http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/2773'
@@ -0,0 +1,2 @@
1
+ section
2
+ h1 Hello Slim!
File without changes
File without changes
File without changes
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require 'tmpdir'
3
+
4
+ module RevealCK
5
+ describe PresentationBuilder do
6
+
7
+ let :presentation do
8
+ presentation = Presentation.new
9
+ presentation.title = "Presentation Title"
10
+ presentation.author = "Presentation Author"
11
+
12
+ presentation.add_slide(Slide.new({
13
+ template: 'title',
14
+ title: presentation.title,
15
+ author: presentation.author,
16
+ site: 'http://site.com',
17
+ twitter: 'twitter'
18
+ }))
19
+ presentation
20
+ end
21
+
22
+ it 'can build reveal.js slides from a Presentation' do
23
+
24
+ tmp_dir = Dir.mktmpdir
25
+
26
+ presentation_builder = PresentationBuilder.new({
27
+ presentation: presentation,
28
+ output_dir: tmp_dir,
29
+ })
30
+ presentation_builder.build!
31
+
32
+ expect(File.exists? File.join(tmp_dir, "index.html")).to be_true
33
+ end
34
+
35
+ end
36
+ end
@@ -0,0 +1,78 @@
1
+ require 'spec_helper'
2
+
3
+ module RevealCK
4
+ describe Presentation do
5
+
6
+ describe '#add_slide' do
7
+
8
+ it 'maintains a list of slides' do
9
+ presentation = Presentation.new
10
+ presentation.add_slide double('slide', html: "first")
11
+ presentation.add_slide double('slide', html: "second")
12
+ end
13
+
14
+ end
15
+
16
+ describe '#content' do
17
+
18
+ let :presentation do
19
+ presentation = Presentation.new
20
+ presentation.add_slide double('slide', html: "first")
21
+ presentation.add_slide double('slide', html: "second")
22
+ presentation
23
+ end
24
+
25
+ let :content do
26
+ presentation.content.strip
27
+ end
28
+
29
+ it 'returns the content from each slide' do
30
+ expect(content).to start_with 'first'
31
+ expect(content).to end_with 'second'
32
+ end
33
+
34
+ end
35
+
36
+ describe '#theme' do
37
+ it 'can be set and read' do
38
+ presentation = Presentation.new
39
+ presentation.theme = 'night'
40
+ expect(presentation.theme).to eq 'night'
41
+ end
42
+
43
+ it 'has a default value of "default"' do
44
+ expect(Presentation.new.theme).to eq 'default'
45
+ end
46
+ end
47
+
48
+ it 'responds to #title= and #title' do
49
+ presentation = Presentation.new
50
+ presentation.title = 'My Favorite Slides'
51
+ expect(presentation.title).to eq 'My Favorite Slides'
52
+ end
53
+
54
+ it 'responds to #author= and #author' do
55
+ presentation = Presentation.new
56
+ presentation.author = 'Hakim El Hattab'
57
+ expect(presentation.author).to eq 'Hakim El Hattab'
58
+ end
59
+
60
+ describe '#slide' do
61
+ it 'is a shortcut for creating a new Slide and calling #add_slide' do
62
+ presentation = Presentation.new
63
+
64
+ expect(Slide)
65
+ .to(receive(:new)
66
+ .with({ template: 'text', content: 'spec' })
67
+ .and_call_original)
68
+
69
+ expect(presentation)
70
+ .to(receive(:add_slide)
71
+ .with(kind_of(Slide)))
72
+
73
+ presentation.eval "slide('text', { content: 'spec' })"
74
+ end
75
+ end
76
+
77
+ end
78
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ module RevealCK
4
+ describe Slide do
5
+
6
+ let :title_slide do
7
+ Slide.new template: 'title',
8
+ title: 'Reveal.js',
9
+ subtitle: 'HTML Presentations Made Easy',
10
+ author: 'Hakim El Hattab',
11
+ site: 'http://hakim.se',
12
+ twitter: 'hakimel'
13
+ end
14
+
15
+ describe '#html' do
16
+ it 'produces html output' do
17
+ output = title_slide.html
18
+ expect(output).to include 'Reveal.js'
19
+ end
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,102 @@
1
+ require 'spec_helper'
2
+ require 'tempfile'
3
+
4
+ module RevealCK
5
+ describe SlidesHtmlBuilder do
6
+
7
+ let :data do
8
+ File.join 'spec', 'data', 'slides_html_builder'
9
+ end
10
+
11
+ context 'when working with slim' do
12
+
13
+ let :input_file do
14
+ File.join data, 'slides.slim'
15
+ end
16
+
17
+ describe '#render' do
18
+ it 'knows how to create slide content from slim' do
19
+ builder = SlidesHtmlBuilder.new input_file: input_file
20
+ expect(builder.render).to include "<section>"
21
+ expect(builder.render).to include "<h1>"
22
+ expect(builder.render).to include "Hello Slim!"
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ context 'when working with haml' do
29
+
30
+ let :input_file do
31
+ File.join data, 'slides.haml'
32
+ end
33
+
34
+ describe '#render' do
35
+ it 'knows how to create slide content from haml' do
36
+ builder = SlidesHtmlBuilder.new input_file: input_file
37
+ expect(builder.render).to include "<section>"
38
+ expect(builder.render).to include "<h1>"
39
+ expect(builder.render).to include "Hello Haml!"
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ context 'when working with ruby' do
46
+
47
+ let :input_file do
48
+ File.join data, 'slides.rb'
49
+ end
50
+
51
+ describe '#render' do
52
+ it 'knows how to create slide content from ruby' do
53
+ builder = SlidesHtmlBuilder.new input_file: input_file
54
+ expect(builder.render).to include "<section>"
55
+ expect(builder.render).to include "<h2>"
56
+ expect(builder.render).to include "Hello Ruby!"
57
+ end
58
+ end
59
+
60
+ end
61
+
62
+ context 'when working with a Presentation' do
63
+
64
+ let :presentation do
65
+ quote = Slide.new({
66
+ template: 'quote',
67
+ content: 'Hello Ruby!',
68
+ citation: 'https://www.ruby-lang.org/en/about/'
69
+ })
70
+ presentation = Presentation.new
71
+ presentation.add_slide quote
72
+ presentation
73
+ end
74
+
75
+ describe '#render' do
76
+ it 'knows how to create slide content from a Presentation' do
77
+ builder = SlidesHtmlBuilder.new presentation: presentation
78
+ expect(builder.render).to include "<section>"
79
+ expect(builder.render).to include "<blockquote"
80
+ expect(builder.render).to include "Hello Ruby!"
81
+ end
82
+ end
83
+
84
+ end
85
+
86
+ describe '#write_to' do
87
+
88
+ it 'can write #rendered output to a file' do
89
+ input_file = File.join data, 'slides.haml'
90
+ builder = SlidesHtmlBuilder.new input_file: input_file
91
+ tmp_file = Tempfile.new 'slides.html'
92
+ builder.write_to file: tmp_file.path
93
+
94
+ written_content = File.open(tmp_file).read
95
+ expect(written_content).to include "<section>"
96
+ expect(written_content).to include "<h1>"
97
+ expect(written_content).to include "Hello Haml!"
98
+ end
99
+
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,78 @@
1
+ require 'spec_helper'
2
+ require 'tmpdir'
3
+ require 'fileutils'
4
+
5
+ module RevealCK
6
+
7
+ describe TemplateFinder do
8
+
9
+ let :reveal_ck_dir do
10
+ Dir.pwd
11
+ end
12
+
13
+ describe '#paths' do
14
+
15
+ it 'defaults to Dir.pwd, Dir.pwd/templates, and reveal-ck/templates' do
16
+ finder = TemplateFinder.new
17
+ expect(finder.paths).to include Dir.pwd
18
+ expect(finder.paths).to include File.join(Dir.pwd, 'templates')
19
+ expect(finder.paths).to include File.join(reveal_ck_dir, 'templates')
20
+ expect(finder.paths.size).to eq 3
21
+ end
22
+
23
+ it 'can be assigned via initializer' do
24
+ Dir.mktmpdir do |dir|
25
+ finder = TemplateFinder.new paths: [ dir, File.join(dir, 'templates') ]
26
+ expect(finder.paths).to include dir
27
+ expect(finder.paths).to include File.join(dir, 'templates')
28
+ expect(finder.paths.size).to eq 2
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ describe '#find' do
35
+
36
+ let :template_finder_dir do
37
+ File.join reveal_ck_dir, 'spec', 'data', 'template_finder'
38
+ end
39
+
40
+ let :automated_dir do
41
+ File.join template_finder_dir, 'automated'
42
+ end
43
+
44
+ let :custom_dir do
45
+ File.join template_finder_dir, 'custom'
46
+ end
47
+
48
+ let :reveal_ck_templates_dir do
49
+ File.join reveal_ck_dir, 'templates'
50
+ end
51
+
52
+ let :finder do
53
+ paths = [custom_dir, automated_dir, reveal_ck_templates_dir]
54
+ TemplateFinder.new paths: paths
55
+ end
56
+
57
+ it 'searches all paths to find templates' do
58
+ result = finder.find 'automated'
59
+ expect(result).to include File.join('template_finder', 'automated', 'automated.slim')
60
+ result = finder.find 'custom'
61
+ expect(result).to include File.join('template_finder', 'custom', 'custom.slim')
62
+ result = finder.find 'title'
63
+ expect(result).to include File.join('reveal-ck', 'templates', 'title.slim')
64
+ end
65
+
66
+ it 'searchs paths in order and returns the first match' do
67
+ result = finder.find 'common.haml'
68
+ expect(result).to include File.join('custom', 'common.haml')
69
+ end
70
+
71
+ it 'can search by partial file name' do
72
+ result = finder.find 'common'
73
+ expect(result).to include File.join('custom', 'common.haml')
74
+ end
75
+
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe RevealCK, '::REVEALJS_FILES' do
4
+
5
+ it 'is a list of the bundled reveal.js files' do
6
+ bundled_files = RevealCK::REVEALJS_FILES
7
+ bundled_index_html = bundled_files.find do |name|
8
+ name.include? 'reveal.js/index.html'
9
+ end
10
+
11
+ expect(bundled_files).to be_an Array
12
+ expect(bundled_index_html).to_not be_nil
13
+ end
14
+
15
+ end
@@ -0,0 +1,10 @@
1
+ - headline = headline || nil
2
+ - notes = notes || nil
3
+ - content = content || ''
4
+ section
5
+ - if headline
6
+ h2= headline
7
+ pre
8
+ code (data-trim contenteditable)== content
9
+ - if notes
10
+ aside.notes= notes
@@ -0,0 +1,14 @@
1
+ - headline = headline || nil
2
+ - notes = notes || nil
3
+ - link = link || nil
4
+ - alt = alt || ''
5
+ section
6
+ - if headline
7
+ h2= headline
8
+ - if link
9
+ a.image href="#{link}" target="_blank"
10
+ img width="#{width}" height="#{height}" src="#{src}" alt="#{alt}"/
11
+ - else
12
+ img width="#{width}" height="#{height}" src="#{src}" alt="#{alt}"/
13
+ - if notes
14
+ aside.notes= notes
@@ -0,0 +1,11 @@
1
+ - headline = headline || nil
2
+ - notes = notes || nil
3
+ - citation = citation || ''
4
+ - content = content || ''
5
+ section
6
+ - if headline
7
+ h2= headline
8
+ p
9
+ blockquote cite="#{citation}" &ldquo;#{content}&rdquo;
10
+ - if notes
11
+ aside.notes= notes
@@ -0,0 +1,9 @@
1
+ - headline = headline || nil
2
+ - notes = notes || nil
3
+ - content = content || ''
4
+ section
5
+ - if headline
6
+ h2= headline
7
+ p= content
8
+ - if notes
9
+ aside.notes= notes
@@ -0,0 +1,23 @@
1
+ - author = author || nil
2
+ - link = link || nil
3
+ - twitter = twitter || nil
4
+ - notes = notes || nil
5
+ - title = title || ''
6
+ - subtitle = subtitle || nil
7
+ section
8
+ h1= title
9
+ - if subtitle
10
+ h3= subtitle
11
+ - if author
12
+ p
13
+ small
14
+ | Created by
15
+ - if link
16
+ a<> href="#{link}"= author
17
+ - else
18
+ =<> author
19
+ - if twitter
20
+ | /
21
+ a<> href="http://twitter.com/#{twitter}"= "@#{twitter}"
22
+ - if notes
23
+ aside.notes= notes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reveal-ck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jed Northridge
@@ -243,12 +243,21 @@ files:
243
243
  - lib/reveal-ck/file_slicer.rb
244
244
  - lib/reveal-ck/file_splicer.rb
245
245
  - lib/reveal-ck/file_string_replacer.rb
246
+ - lib/reveal-ck/presentation.rb
246
247
  - lib/reveal-ck/presentation_builder.rb
248
+ - lib/reveal-ck/slide.rb
247
249
  - lib/reveal-ck/slide_builder.rb
250
+ - lib/reveal-ck/slides_html_builder.rb
251
+ - lib/reveal-ck/template_finder.rb
248
252
  - lib/reveal-ck/template_processor.rb
249
253
  - lib/reveal-ck/version.rb
250
254
  - rakelib/cucumber.rake
251
255
  - rakelib/rspec.rake
256
+ - templates/code.slim
257
+ - templates/image.slim
258
+ - templates/quote.slim
259
+ - templates/text.slim
260
+ - templates/title.slim
252
261
  - README.md
253
262
  - features/data/images/ruby100.png
254
263
  - features/step_definitions/file_management_steps.rb
@@ -261,17 +270,30 @@ files:
261
270
  - spec/data/html/reveal-js-index.html
262
271
  - spec/data/slicer/after_remove
263
272
  - spec/data/slicer/before_remove
273
+ - spec/data/slides_html_builder/slides.haml
274
+ - spec/data/slides_html_builder/slides.rb
275
+ - spec/data/slides_html_builder/slides.slim
264
276
  - spec/data/slim/basic.slim
265
277
  - spec/data/splicer/abcd
266
278
  - spec/data/splicer/after_insert
267
279
  - spec/data/splicer/before_insert
268
280
  - spec/data/string_replacer/after_replace
269
281
  - spec/data/string_replacer/before_replace
282
+ - spec/data/template_finder/automated/automated.slim
283
+ - spec/data/template_finder/automated/common.haml
284
+ - spec/data/template_finder/custom/common.haml
285
+ - spec/data/template_finder/custom/custom.slim
270
286
  - spec/lib/reveal-ck/config_spec.rb
271
287
  - spec/lib/reveal-ck/file_slicer_spec.rb
272
288
  - spec/lib/reveal-ck/file_splicer_spec.rb
273
289
  - spec/lib/reveal-ck/file_string_replacer_spec.rb
290
+ - spec/lib/reveal-ck/presentation_builder_spec.rb
291
+ - spec/lib/reveal-ck/presentation_spec.rb
292
+ - spec/lib/reveal-ck/slide_spec.rb
293
+ - spec/lib/reveal-ck/slides_html_builder_spec.rb
294
+ - spec/lib/reveal-ck/template_finder_spec.rb
274
295
  - spec/lib/reveal-ck/template_processor_spec.rb
296
+ - spec/lib/reveal-ck_spec.rb
275
297
  - bin/reveal-ck
276
298
  homepage: https://github.com/jedcn/reveal-ck
277
299
  licenses:
@@ -310,14 +332,27 @@ test_files:
310
332
  - spec/data/html/reveal-js-index.html
311
333
  - spec/data/slicer/after_remove
312
334
  - spec/data/slicer/before_remove
335
+ - spec/data/slides_html_builder/slides.haml
336
+ - spec/data/slides_html_builder/slides.rb
337
+ - spec/data/slides_html_builder/slides.slim
313
338
  - spec/data/slim/basic.slim
314
339
  - spec/data/splicer/abcd
315
340
  - spec/data/splicer/after_insert
316
341
  - spec/data/splicer/before_insert
317
342
  - spec/data/string_replacer/after_replace
318
343
  - spec/data/string_replacer/before_replace
344
+ - spec/data/template_finder/automated/automated.slim
345
+ - spec/data/template_finder/automated/common.haml
346
+ - spec/data/template_finder/custom/common.haml
347
+ - spec/data/template_finder/custom/custom.slim
319
348
  - spec/lib/reveal-ck/config_spec.rb
320
349
  - spec/lib/reveal-ck/file_slicer_spec.rb
321
350
  - spec/lib/reveal-ck/file_splicer_spec.rb
322
351
  - spec/lib/reveal-ck/file_string_replacer_spec.rb
352
+ - spec/lib/reveal-ck/presentation_builder_spec.rb
353
+ - spec/lib/reveal-ck/presentation_spec.rb
354
+ - spec/lib/reveal-ck/slide_spec.rb
355
+ - spec/lib/reveal-ck/slides_html_builder_spec.rb
356
+ - spec/lib/reveal-ck/template_finder_spec.rb
323
357
  - spec/lib/reveal-ck/template_processor_spec.rb
358
+ - spec/lib/reveal-ck_spec.rb