reveal-ck 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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