reveal.rb 0.3.0 → 0.4.0

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -0
  3. data/Gemfile.lock +15 -1
  4. data/README.md +8 -1
  5. data/Rakefile +7 -0
  6. data/lib/reveal/cli.rb +15 -97
  7. data/lib/reveal/command.rb +109 -0
  8. data/lib/reveal/templates/revealjs/css/print/paper.css +193 -167
  9. data/lib/reveal/templates/revealjs/css/print/pdf.css +20 -53
  10. data/lib/reveal/templates/revealjs/css/reveal.css +1175 -0
  11. data/lib/reveal/templates/revealjs/css/theme/beige.css +183 -60
  12. data/lib/reveal/templates/revealjs/css/theme/black.css +267 -0
  13. data/lib/reveal/templates/revealjs/css/theme/blood.css +190 -80
  14. data/lib/reveal/templates/revealjs/css/theme/league.css +273 -0
  15. data/lib/reveal/templates/revealjs/css/theme/moon.css +174 -51
  16. data/lib/reveal/templates/revealjs/css/theme/night.css +171 -42
  17. data/lib/reveal/templates/revealjs/css/theme/serif.css +187 -58
  18. data/lib/reveal/templates/revealjs/css/theme/simple.css +179 -50
  19. data/lib/reveal/templates/revealjs/css/theme/sky.css +176 -47
  20. data/lib/reveal/templates/revealjs/css/theme/solarized.css +174 -51
  21. data/lib/reveal/templates/revealjs/css/theme/white.css +267 -0
  22. data/lib/reveal/templates/revealjs/index.html +411 -0
  23. data/lib/reveal/templates/revealjs/js/reveal.js +4508 -0
  24. data/lib/reveal/templates/revealjs/lib/css/zenburn.css +74 -71
  25. data/lib/reveal/templates/revealjs/lib/font/{league_gothic_license → league-gothic/LICENSE} +0 -0
  26. data/lib/reveal/templates/revealjs/lib/font/league-gothic/league-gothic.css +10 -0
  27. data/lib/reveal/templates/revealjs/lib/font/league-gothic/league-gothic.eot +0 -0
  28. data/lib/reveal/templates/revealjs/lib/font/league-gothic/league-gothic.ttf +0 -0
  29. data/lib/reveal/templates/revealjs/lib/font/league-gothic/league-gothic.woff +0 -0
  30. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/LICENSE +45 -0
  31. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
  32. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.ttf +0 -0
  33. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
  34. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
  35. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.ttf +0 -0
  36. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
  37. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
  38. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.ttf +0 -0
  39. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
  40. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot +0 -0
  41. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf +0 -0
  42. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff +0 -0
  43. data/lib/reveal/templates/revealjs/lib/font/source-sans-pro/source-sans-pro.css +39 -0
  44. data/lib/reveal/templates/revealjs/lib/js/html5shiv.js +0 -0
  45. data/lib/reveal/templates/revealjs/plugin/highlight/highlight.js +2 -4
  46. data/lib/reveal/templates/revealjs/plugin/leap/leap.js +4 -2
  47. data/lib/reveal/templates/revealjs/plugin/markdown/example.html +3 -3
  48. data/lib/reveal/templates/revealjs/plugin/markdown/example.md +0 -0
  49. data/lib/reveal/templates/revealjs/plugin/markdown/markdown.js +10 -9
  50. data/lib/reveal/templates/revealjs/plugin/markdown/marked.js +2 -33
  51. data/lib/reveal/templates/revealjs/plugin/math/math.js +1 -1
  52. data/lib/reveal/templates/revealjs/plugin/multiplex/client.js +0 -0
  53. data/lib/reveal/templates/revealjs/plugin/multiplex/index.js +0 -0
  54. data/lib/reveal/templates/revealjs/plugin/multiplex/master.js +0 -0
  55. data/lib/reveal/templates/revealjs/plugin/notes/notes.html +321 -182
  56. data/lib/reveal/templates/revealjs/plugin/notes/notes.js +89 -45
  57. data/lib/reveal/templates/revealjs/plugin/notes-server/client.js +49 -46
  58. data/lib/reveal/templates/revealjs/plugin/notes-server/index.js +28 -21
  59. data/lib/reveal/templates/revealjs/plugin/notes-server/notes.html +351 -97
  60. data/lib/reveal/templates/revealjs/plugin/print-pdf/print-pdf.js +24 -20
  61. data/lib/reveal/templates/revealjs/plugin/remotes/remotes.js +0 -0
  62. data/lib/reveal/templates/revealjs/plugin/search/search.js +0 -0
  63. data/lib/reveal/templates/revealjs/plugin/zoom-js/zoom.js +78 -58
  64. data/lib/reveal/templates/template.html +17 -24
  65. data/lib/reveal/version.rb +1 -1
  66. data/lib/reveal.rb +1 -0
  67. data/reveal.rb.gemspec +3 -0
  68. data/spec/lib/reveal/cli_spec.rb +26 -0
  69. data/spec/lib/reveal/command_spec.rb +165 -0
  70. metadata +65 -28
  71. data/lib/reveal/templates/revealjs/css/reveal.min.css +0 -7
  72. data/lib/reveal/templates/revealjs/css/theme/README.md +0 -25
  73. data/lib/reveal/templates/revealjs/css/theme/default.css +0 -148
  74. data/lib/reveal/templates/revealjs/css/theme/source/beige.scss +0 -50
  75. data/lib/reveal/templates/revealjs/css/theme/source/blood.scss +0 -91
  76. data/lib/reveal/templates/revealjs/css/theme/source/default.scss +0 -42
  77. data/lib/reveal/templates/revealjs/css/theme/source/moon.scss +0 -68
  78. data/lib/reveal/templates/revealjs/css/theme/source/night.scss +0 -35
  79. data/lib/reveal/templates/revealjs/css/theme/source/serif.scss +0 -35
  80. data/lib/reveal/templates/revealjs/css/theme/source/simple.scss +0 -38
  81. data/lib/reveal/templates/revealjs/css/theme/source/sky.scss +0 -46
  82. data/lib/reveal/templates/revealjs/css/theme/source/solarized.scss +0 -74
  83. data/lib/reveal/templates/revealjs/css/theme/template/mixins.scss +0 -29
  84. data/lib/reveal/templates/revealjs/css/theme/template/settings.scss +0 -34
  85. data/lib/reveal/templates/revealjs/css/theme/template/theme.scss +0 -170
  86. data/lib/reveal/templates/revealjs/js/reveal.min.js +0 -9
  87. data/lib/reveal/templates/revealjs/lib/font/league_gothic-webfont.eot +0 -0
  88. data/lib/reveal/templates/revealjs/lib/font/league_gothic-webfont.svg +0 -230
  89. data/lib/reveal/templates/revealjs/lib/font/league_gothic-webfont.ttf +0 -0
  90. data/lib/reveal/templates/revealjs/lib/font/league_gothic-webfont.woff +0 -0
  91. data/lib/reveal/templates/revealjs/plugin/postmessage/example.html +0 -39
  92. data/lib/reveal/templates/revealjs/plugin/postmessage/postmessage.js +0 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa51e087315e2a6fe1b291e91648cf39a6944445
4
- data.tar.gz: 2b7eb436b89b40a03dad5a169fd62de49259c261
3
+ metadata.gz: aeddfdafa8a8712ac291c0450ae335e32b21e895
4
+ data.tar.gz: 618130631940cf2a6aaa464045eb93cac66f18b7
5
5
  SHA512:
6
- metadata.gz: 57f2513a02b11075b09a029d4f154734108ea7eb8625c3ce56978fc29f15de17817b87d7f72d2848f918c7f4b6751fd4bad8f29e4a64ba20553c8fa63de376c1
7
- data.tar.gz: d0484008b4f5c8f6acf1662518541d19f1762aa50a0836d1e5f7b1335f6695c4cfee6f1b3f82a8ee000fd0be904042a6e330313bc9d9317c5f1f3669829aa87f
6
+ metadata.gz: c43a12a10adc8869ee97bacc1be19539d9449084e3daa28b2845d5648dcb13b25db6ed7bfe673235cee911a4ab43283eb54bdef1e12b15c4b3488e11c6260672
7
+ data.tar.gz: a0d3306ccd4bcf3dfe94e3846aabaf6501b7b7531a83a3e9d752e91a30e93621cc49cb7966dcfb92a77ec6330bc0e8117fa7027fc55f4dffb9f2e2c7e2067194
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
data/Gemfile.lock CHANGED
@@ -1,14 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- reveal.rb (0.3.0)
4
+ reveal.rb (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ byebug (3.4.0)
10
+ columnize (~> 0.8)
11
+ debugger-linecache (~> 1.2)
12
+ slop (~> 3.6)
13
+ columnize (0.8.9)
14
+ debugger-linecache (1.2.0)
15
+ m (1.3.2)
16
+ method_source (>= 0.6.7)
17
+ rake (>= 0.9.2.2)
18
+ method_source (0.8.2)
19
+ rake (0.9.6)
20
+ slop (3.6.0)
9
21
 
10
22
  PLATFORMS
11
23
  ruby
12
24
 
13
25
  DEPENDENCIES
26
+ byebug
27
+ m
14
28
  reveal.rb!
data/README.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # reveal.rb
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/ggarnier/reveal.rb/badges/gpa.svg)](https://codeclimate.com/github/ggarnier/reveal.rb)
4
+ [![Build Status](https://travis-ci.org/ggarnier/reveal.rb.svg)](https://travis-ci.org/ggarnier/reveal.rb)
5
+ [![Dependency Status](https://gemnasium.com/ggarnier/reveal.rb.png)](https://gemnasium.com/ggarnier/reveal.rb)
6
+ [![Analytics](https://ga-beacon.appspot.com/UA-25495907-3/github/reveal.rb)](https://github.com/igrigorik/ga-beacon)
7
+
3
8
  [reveal.js](https://github.com/hakimel/reveal.js) presentation generator.
4
9
 
5
- Current version uses reveal.js 2.6.2
10
+ Current version uses reveal.js 3.1.0
6
11
 
7
12
  ## Installation
8
13
 
@@ -34,12 +39,14 @@ There are two ways to order your slides:
34
39
 
35
40
  * **Manual order**: set `order` parameter to `manual` and list your slide names in `slides` parameter. This is the default configuration, and it's automatically done for you with `reveal add-slide` command. Any slide file created inside `source` directory but not included in the configuration file will be ignored. Example:
36
41
 
42
+ <pre>
37
43
  ---
38
44
  order: manual
39
45
  slides:
40
46
  - slide1
41
47
  - slide2
42
48
  - slide3
49
+ </pre>
43
50
 
44
51
  * **Alphabetical order**: if you omit `order` parameter (or set it to anything other than `manual`), `reveal generate` command will add all slide files inside `source`, in alphabetical order.
45
52
 
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ task :default => :test
5
+ Rake::TestTask.new do |t|
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
data/lib/reveal/cli.rb CHANGED
@@ -1,111 +1,29 @@
1
- require 'fileutils'
2
- require 'yaml'
1
+ require 'logger'
3
2
 
4
3
  module Reveal
5
- SOURCE_DIR = "source"
6
- OUTPUT_DIR = "output"
7
- TEMPLATE_FILENAME = "template.html"
8
- CONFIG_FILENAME = "reveal.yml"
9
- SLIDES_TAG = "<slides>"
10
-
11
4
  module Cli
12
5
  extend self
13
6
 
14
- def process args
15
- self.send(args.first.gsub("-", "_"), args[1..-1])
16
- end
17
-
18
- def create args
19
- name = args.first
20
-
21
- if File.exists?(name)
22
- puts "#{name} already exists."
23
- exit 1
24
- end
25
-
26
- FileUtils.mkdir_p(File.join(name, SOURCE_DIR))
27
- FileUtils.mkdir_p(File.join(name, OUTPUT_DIR))
28
- FileUtils.cp(File.join(templates_path, TEMPLATE_FILENAME), name)
29
- FileUtils.cp(File.join(templates_path, CONFIG_FILENAME), name)
30
- FileUtils.cp_r(File.join(templates_path, "revealjs", "."), File.join(name, OUTPUT_DIR))
31
-
32
- puts "Presentation '#{name}' created."
33
- end
34
-
35
- def add_slide args
36
- check_if_presentation_exists
37
-
38
- config["slides"] ||= []
39
-
40
- args.each do |slide_name|
41
- filepath = File.join(SOURCE_DIR, "#{slide_name}.md")
42
- FileUtils.touch(filepath)
43
- config["slides"] << slide_name
44
- puts "Slide '#{filepath}' created."
45
- end
46
-
47
- write_config
48
- end
49
-
50
- def generate args
51
- check_if_presentation_exists
52
-
53
- source_content = ""
54
-
55
- ordered_slide_names.each do |filename|
56
- source_content << <<-SLIDE
57
- <section data-markdown>
58
- <script type="text/template">
59
- #{File.read(filename)}
60
- </script>
61
- </section>
62
-
63
- SLIDE
64
- end
65
-
66
- template = File.read(TEMPLATE_FILENAME)
67
- compiled_filename = File.join(OUTPUT_DIR, "index.html")
68
- File.open(compiled_filename, "w") do |file|
69
- file.write(template.gsub(SLIDES_TAG, source_content))
70
- end
71
-
72
- puts "#{compiled_filename} presentation file generated."
7
+ def process(args)
8
+ command_name = args.first.gsub('-', '_')
9
+ command_args = args[1..-1]
10
+ Reveal::Command.new(logger).send(command_name, command_args)
11
+ rescue Exception => e
12
+ puts e.message
13
+ exit 1
73
14
  end
74
15
 
75
16
  private
76
- def check_if_presentation_exists
77
- unless File.exists?(TEMPLATE_FILENAME) && Dir.exists?(SOURCE_DIR) && Dir.exists?(OUTPUT_DIR)
78
- puts "Error: The current working directory does not seem to have a reveal.rb presentation."
79
- puts "Create one with 'reveal create <presentation name>'."
80
- exit 1
81
- end
82
- end
83
17
 
84
- def templates_path
85
- @templates_path ||= begin
86
- [
87
- File.join(File.dirname(File.expand_path($0)), "..", "lib", "reveal", "templates"),
88
- File.join(Gem.dir, "gems", "reveal.rb-#{Reveal::VERSION}", "lib", "reveal", "templates")
89
- ].select { |item| File.readable?(item) }.first
90
- end
91
- end
18
+ def logger
19
+ @logger ||= begin
20
+ logger = ::Logger.new(STDOUT)
21
+ logger.formatter = proc do |_, _, _, msg|
22
+ "#{msg}\n"
23
+ end
92
24
 
93
- def ordered_slide_names
94
- if config && config["order"] == "manual" && config["slides"]
95
- config["slides"].
96
- map { |slide_name| File.join(SOURCE_DIR, "#{slide_name}.md") }.
97
- select { |filepath| File.readable?(filepath) }
98
- else
99
- Dir.glob(File.join(SOURCE_DIR, "*.md"))
25
+ logger
100
26
  end
101
27
  end
102
-
103
- def config
104
- @config ||= YAML.load(File.read(CONFIG_FILENAME))
105
- end
106
-
107
- def write_config
108
- File.write(CONFIG_FILENAME, config.to_yaml)
109
- end
110
28
  end
111
29
  end
@@ -0,0 +1,109 @@
1
+ require 'fileutils'
2
+ require 'yaml'
3
+ require 'logger'
4
+
5
+ module Reveal
6
+ SOURCE_DIR = 'source'
7
+ OUTPUT_DIR = 'output'
8
+ TEMPLATE_FILENAME = 'template.html'
9
+ CONFIG_FILENAME = 'reveal.yml'
10
+ SLIDES_TAG = '<slides>'
11
+
12
+ class Command
13
+ def initialize(logger = ::Logger.new(STDOUT))
14
+ @logger = logger
15
+ end
16
+
17
+ def create(args)
18
+ name = Array(args).first
19
+
20
+ if File.exist?(name)
21
+ raise "ERROR: #{name} already exists."
22
+ end
23
+
24
+ FileUtils.mkdir_p(File.join(name, SOURCE_DIR))
25
+ FileUtils.mkdir_p(File.join(name, OUTPUT_DIR))
26
+
27
+ FileUtils.cp(File.join(templates_path, TEMPLATE_FILENAME), name)
28
+ FileUtils.cp(File.join(templates_path, CONFIG_FILENAME), name)
29
+ FileUtils.cp_r(File.join(templates_path, 'revealjs', '.'), File.join(name, OUTPUT_DIR))
30
+
31
+ @logger.info("Presentation '#{name}' created.")
32
+ end
33
+
34
+ def add_slide(args)
35
+ check_if_presentation_exists
36
+
37
+ config['slides'] ||= []
38
+
39
+ Array(args).each do |slide_name|
40
+ filepath = File.join(SOURCE_DIR, "#{slide_name}.md")
41
+ FileUtils.touch(filepath)
42
+ config['slides'] << slide_name
43
+ @logger.info("Slide '#{filepath}' created.")
44
+ end
45
+
46
+ write_config
47
+ end
48
+
49
+ def generate(_ = nil)
50
+ check_if_presentation_exists
51
+
52
+ source_content = ''
53
+
54
+ ordered_slide_names.each do |filename|
55
+ source_content << <<-SLIDE
56
+ <section data-markdown>
57
+ <script type="text/template">
58
+ #{File.read(filename)}
59
+ </script>
60
+ </section>
61
+
62
+ SLIDE
63
+ end
64
+
65
+ template = File.read(TEMPLATE_FILENAME)
66
+ compiled_filename = File.join(OUTPUT_DIR, 'index.html')
67
+ File.open(compiled_filename, 'w') do |file|
68
+ file.write(template.gsub(SLIDES_TAG, source_content))
69
+ end
70
+
71
+ @logger.info("'#{compiled_filename}' presentation file generated.")
72
+ end
73
+
74
+ private
75
+
76
+ def check_if_presentation_exists
77
+ unless File.exist?(TEMPLATE_FILENAME) && File.exist?(CONFIG_FILENAME) && Dir.exist?(SOURCE_DIR) && Dir.exist?(OUTPUT_DIR)
78
+ raise "ERROR: The current working directory does not seem to have a reveal.rb presentation.\nCreate one with 'reveal create <presentation name>'."
79
+ end
80
+ end
81
+
82
+ def templates_path
83
+ @templates_path ||= begin
84
+ [
85
+ File.join(File.dirname(File.expand_path($0)), '..', 'lib', 'reveal', 'templates'),
86
+ File.join(Gem.dir, 'gems', "reveal.rb-#{Reveal::VERSION}", 'lib', 'reveal', 'templates')
87
+ ].select { |item| File.readable?(item) }.first
88
+ end
89
+ end
90
+
91
+ def ordered_slide_names
92
+ if config && config['order'] == 'manual' && config['slides']
93
+ config['slides'].
94
+ map { |slide_name| File.join(SOURCE_DIR, "#{slide_name}.md") }.
95
+ select { |filepath| File.readable?(filepath) }
96
+ else
97
+ Dir.glob(File.join(SOURCE_DIR, '*.md'))
98
+ end
99
+ end
100
+
101
+ def config
102
+ @config ||= YAML.load(File.read(CONFIG_FILENAME))
103
+ end
104
+
105
+ def write_config
106
+ File.write(CONFIG_FILENAME, config.to_yaml)
107
+ end
108
+ end
109
+ end