middleman-presentation-core 0.16.0.alpha
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rdebugrc +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +52 -0
- data/.simplecov +25 -0
- data/.yardopts +5 -0
- data/Guardfile +13 -0
- data/LICENSE.software +21 -0
- data/Rakefile +200 -0
- data/config/license_finder.yml +13 -0
- data/cucumber.yml +2 -0
- data/doc/licenses/dependencies.csv +55 -0
- data/doc/licenses/dependencies.db +0 -0
- data/doc/licenses/dependencies.html +1415 -0
- data/doc/licenses/dependencies.md +603 -0
- data/doc/licenses/dependencies_detailed.csv +190 -0
- data/doc/yard/.keep +0 -0
- data/features/build_presentation.feature +62 -0
- data/features/code_highlighting.feature +43 -0
- data/features/components.feature +29 -0
- data/features/create_plugin-cli.feature +11 -0
- data/features/create_presentation-cli.feature +349 -0
- data/features/create_slide-cli.feature +188 -0
- data/features/create_slides-templates-cli.feature +114 -0
- data/features/create_theme-cli.feature +58 -0
- data/features/default_slides.feature +58 -0
- data/features/edit_slide-cli.feature +121 -0
- data/features/export_presentation-cli.feature +23 -0
- data/features/grouping_slides.feature +150 -0
- data/features/ignore_slides.feature +103 -0
- data/features/init_application-cli.feature +59 -0
- data/features/init_predefined_slides.feature +9 -0
- data/features/language_detection.feature +0 -0
- data/features/list_assets-cli.feature +13 -0
- data/features/list_components-cli.feature +13 -0
- data/features/list_helpers-cli.feature +13 -0
- data/features/list_plugins-cli.feature +13 -0
- data/features/list_styles-cli.feature +17 -0
- data/features/plugins.feature +63 -0
- data/features/presentation.feature +57 -0
- data/features/rename_slide-cli.feature +176 -0
- data/features/render_slides.feature +76 -0
- data/features/show_config-cli.feature +25 -0
- data/features/show_footer.feature +14 -0
- data/features/show_slide_number.feature +31 -0
- data/features/show_support_information-cli.feature +12 -0
- data/features/support/aruba.rb +18 -0
- data/features/support/ci.rb +3 -0
- data/features/support/env.rb +25 -0
- data/features/support/fixtures.rb +21 -0
- data/features/support/hash.rb +2 -0
- data/features/support/reporting.rb +2 -0
- data/features/version_number.feature +15 -0
- data/fixtures/middleman-presentation-simple_plugin/Rakefile +1 -0
- data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-plugin.rb +0 -0
- data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-simple_plugin/helpers.rb +13 -0
- data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-simple_plugin/plugin.rb +34 -0
- data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-simple_plugin/version.rb +8 -0
- data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-simple_plugin.rb +11 -0
- data/fixtures/middleman-presentation-simple_plugin/middleman-presentation-simple_plugin.gemspec +22 -0
- data/fixtures/middleman-presentation-simple_plugin/vendor/assets/stylesheets/test_simple.scss +3 -0
- data/lib/middleman-presentation-core/application_config.rb +198 -0
- data/lib/middleman-presentation-core/asset.rb +103 -0
- data/lib/middleman-presentation-core/asset_component.rb +34 -0
- data/lib/middleman-presentation-core/asset_list.rb +84 -0
- data/lib/middleman-presentation-core/asset_store.rb +73 -0
- data/lib/middleman-presentation-core/assets_loader.rb +95 -0
- data/lib/middleman-presentation-core/assets_manager.rb +73 -0
- data/lib/middleman-presentation-core/cache.rb +49 -0
- data/lib/middleman-presentation-core/cli/base.rb +30 -0
- data/lib/middleman-presentation-core/cli/base_group.rb +11 -0
- data/lib/middleman-presentation-core/cli/build.rb +13 -0
- data/lib/middleman-presentation-core/cli/build_presentation.rb +57 -0
- data/lib/middleman-presentation-core/cli/change.rb +13 -0
- data/lib/middleman-presentation-core/cli/change_slide.rb +82 -0
- data/lib/middleman-presentation-core/cli/create.rb +16 -0
- data/lib/middleman-presentation-core/cli/create_plugin.rb +62 -0
- data/lib/middleman-presentation-core/cli/create_presentation.rb +300 -0
- data/lib/middleman-presentation-core/cli/create_slide.rb +52 -0
- data/lib/middleman-presentation-core/cli/create_theme.rb +81 -0
- data/lib/middleman-presentation-core/cli/edit.rb +13 -0
- data/lib/middleman-presentation-core/cli/edit_slide.rb +49 -0
- data/lib/middleman-presentation-core/cli/export.rb +11 -0
- data/lib/middleman-presentation-core/cli/export_presentation.rb +55 -0
- data/lib/middleman-presentation-core/cli/init.rb +12 -0
- data/lib/middleman-presentation-core/cli/init_application.rb +48 -0
- data/lib/middleman-presentation-core/cli/init_predefined_slides.rb +31 -0
- data/lib/middleman-presentation-core/cli/list.rb +66 -0
- data/lib/middleman-presentation-core/cli/reset_thor.rb +18 -0
- data/lib/middleman-presentation-core/cli/runner.rb +47 -0
- data/lib/middleman-presentation-core/cli/serve.rb +13 -0
- data/lib/middleman-presentation-core/cli/serve_presentation.rb +30 -0
- data/lib/middleman-presentation-core/cli/shared.rb +51 -0
- data/lib/middleman-presentation-core/cli/show.rb +70 -0
- data/lib/middleman-presentation-core/comparable_slide.rb +69 -0
- data/lib/middleman-presentation-core/component.rb +86 -0
- data/lib/middleman-presentation-core/components_manager.rb +96 -0
- data/lib/middleman-presentation-core/configuration_file.rb +15 -0
- data/lib/middleman-presentation-core/css_class_extracter.rb +41 -0
- data/lib/middleman-presentation-core/custom_template.rb +15 -0
- data/lib/middleman-presentation-core/erb_template.rb +15 -0
- data/lib/middleman-presentation-core/errors.rb +10 -0
- data/lib/middleman-presentation-core/existing_slide.rb +92 -0
- data/lib/middleman-presentation-core/frontend_component.rb +75 -0
- data/lib/middleman-presentation-core/group_template.rb +15 -0
- data/lib/middleman-presentation-core/helpers_manager.rb +37 -0
- data/lib/middleman-presentation-core/ignore_file.rb +52 -0
- data/lib/middleman-presentation-core/liquid_template.rb +15 -0
- data/lib/middleman-presentation-core/list.rb +7 -0
- data/lib/middleman-presentation-core/locale_configurator.rb +84 -0
- data/lib/middleman-presentation-core/logger.rb +8 -0
- data/lib/middleman-presentation-core/main.rb +55 -0
- data/lib/middleman-presentation-core/markdown_template.rb +15 -0
- data/lib/middleman-presentation-core/middleman_environment.rb +108 -0
- data/lib/middleman-presentation-core/middleman_extension.rb +12 -0
- data/lib/middleman-presentation-core/middleman_step_definitions.rb +131 -0
- data/lib/middleman-presentation-core/new_slide.rb +140 -0
- data/lib/middleman-presentation-core/overwrite_sass.rb +22 -0
- data/lib/middleman-presentation-core/plugin.rb +8 -0
- data/lib/middleman-presentation-core/plugin_api.rb +65 -0
- data/lib/middleman-presentation-core/plugins_manager.rb +7 -0
- data/lib/middleman-presentation-core/predefined_slide_templates_directory.rb +15 -0
- data/lib/middleman-presentation-core/presentation_helper.rb +69 -0
- data/lib/middleman-presentation-core/register_extension.rb +4 -0
- data/lib/middleman-presentation-core/roles/comparable_by_name.rb +24 -0
- data/lib/middleman-presentation-core/slide_group.rb +33 -0
- data/lib/middleman-presentation-core/slide_list.rb +52 -0
- data/lib/middleman-presentation-core/slide_name.rb +61 -0
- data/lib/middleman-presentation-core/start.rb +68 -0
- data/lib/middleman-presentation-core/step_definitions.rb +238 -0
- data/lib/middleman-presentation-core/syntax_highlighter.rb +42 -0
- data/lib/middleman-presentation-core/test_helpers.rb +22 -0
- data/lib/middleman-presentation-core/transformers/file_keeper.rb +13 -0
- data/lib/middleman-presentation-core/transformers/group_slides.rb +34 -0
- data/lib/middleman-presentation-core/transformers/ignore_slides.rb +28 -0
- data/lib/middleman-presentation-core/transformers/remove_duplicate_slides.rb +32 -0
- data/lib/middleman-presentation-core/transformers/sort_slides.rb +13 -0
- data/lib/middleman-presentation-core/utils.rb +40 -0
- data/lib/middleman-presentation-core/version.rb +8 -0
- data/lib/middleman-presentation-core.rb +127 -0
- data/locales/de.yml +233 -0
- data/locales/en.yml +236 -0
- data/middleman-presentation-core.gemspec +40 -0
- data/source/slides/01.html.liquid +0 -0
- data/spec/asset_component_spec.rb +13 -0
- data/spec/asset_list_spec.rb +50 -0
- data/spec/asset_spec.rb +45 -0
- data/spec/asset_store_spec.rb +61 -0
- data/spec/assets_manager_spec.rb +111 -0
- data/spec/components_manager_spec.rb +142 -0
- data/spec/css_class_extracter_spec.rb +28 -0
- data/spec/existing_slide_spec.rb +177 -0
- data/spec/frontend_component_spec.rb +94 -0
- data/spec/helpers_manager_spec.rb +90 -0
- data/spec/ignore_file_spec.rb +75 -0
- data/spec/new_slide_spec.rb +155 -0
- data/spec/presentation_helper_spec.rb +137 -0
- data/spec/shared_examples/.keep +0 -0
- data/spec/slide_group_spec.rb +54 -0
- data/spec/slide_list_spec.rb +125 -0
- data/spec/slide_name_spec.rb +53 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/support/aruba.rb +53 -0
- data/spec/support/ci.rb +20 -0
- data/spec/support/environment.rb +18 -0
- data/spec/support/filesystem.rb +22 -0
- data/spec/support/locale.rb +2 -0
- data/spec/support/reporting.rb +2 -0
- data/spec/support/rspec.rb +9 -0
- data/spec/support/string.rb +2 -0
- data/spec/transformers/file_keeper_spec.rb +24 -0
- data/spec/transformers/group_slides_spec.rb +44 -0
- data/spec/transformers/ignore_slides_spec.rb +64 -0
- data/spec/transformers/remove_duplicate_slides_spec.rb +120 -0
- data/spec/transformers/sort_slides_spec.rb +17 -0
- data/spec/utils_spec.rb +14 -0
- data/templates/.bowerrc.tt +4 -0
- data/templates/.gitignore +5 -0
- data/templates/Gemfile.tt +32 -0
- data/templates/LICENSE.presentation +1 -0
- data/templates/Rakefile +59 -0
- data/templates/bower.json.tt +8 -0
- data/templates/bundler_config.tt +6 -0
- data/templates/config.rb.tt +2 -0
- data/templates/config.yaml.tt +17 -0
- data/templates/gitignore.tt +14 -0
- data/templates/plugin/%plugin_name%.gemspec.tt +24 -0
- data/templates/plugin/.gitignore +13 -0
- data/templates/plugin/Gemfile.tt +4 -0
- data/templates/plugin/LICENSE.txt.tt +22 -0
- data/templates/plugin/README.md.tt +31 -0
- data/templates/plugin/Rakefile +1 -0
- data/templates/plugin/lib/%plugin_name%/version.rb.tt +8 -0
- data/templates/plugin/lib/%plugin_name%.rb.tt +10 -0
- data/templates/predefined_slides.d/00_00.html.erb.tt +26 -0
- data/templates/predefined_slides.d/00_01.html.md.tt +6 -0
- data/templates/predefined_slides.d/999980.html.erb.tt +4 -0
- data/templates/predefined_slides.d/999981.html.erb.tt +27 -0
- data/templates/predefined_slides.d/999982.html.erb.tt +4 -0
- data/templates/presentation_theme/bower.json.tt +20 -0
- data/templates/presentation_theme/images/.keep +0 -0
- data/templates/presentation_theme/javascripts/%theme_name%.js.tt +0 -0
- data/templates/presentation_theme/stylesheets/%theme_name%.scss.tt +9 -0
- data/templates/presentation_theme/stylesheets/_fonts.scss.tt +0 -0
- data/templates/presentation_theme/stylesheets/_images.scss.tt +5 -0
- data/templates/presentation_theme/stylesheets/_theme.scss.tt +251 -0
- data/templates/rackup.config.erb +16 -0
- data/templates/script/bootstrap +5 -0
- data/templates/script/build +3 -0
- data/templates/script/export +3 -0
- data/templates/script/presentation +3 -0
- data/templates/script/slide +3 -0
- data/templates/script/start +43 -0
- data/templates/slides/custom.md.tt +3 -0
- data/templates/slides/erb.tt +5 -0
- data/templates/slides/group.tt +3 -0
- data/templates/slides/liquid.tt +5 -0
- data/templates/slides/markdown.tt +3 -0
- data/templates/source/index.html.erb +1 -0
- data/templates/source/javascripts/application.js.tt +3 -0
- data/templates/source/layout.erb +133 -0
- data/templates/source/stylesheets/application.scss.tt +3 -0
- metadata +574 -0
@@ -0,0 +1,349 @@
|
|
1
|
+
Feature: Initialize presentation
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to create a new presentation
|
5
|
+
In order to use it
|
6
|
+
|
7
|
+
Scenario: Initialize with long command
|
8
|
+
Given I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
9
|
+
When I cd to "presentation1"
|
10
|
+
Then the file "config.rb" should contain:
|
11
|
+
"""
|
12
|
+
activate :presentation
|
13
|
+
"""
|
14
|
+
And the file "Gemfile" should contain:
|
15
|
+
"""
|
16
|
+
middleman-presentation
|
17
|
+
"""
|
18
|
+
And a file named "bower.json" should exist
|
19
|
+
And a file named ".bowerrc" should exist
|
20
|
+
And a file named ".gitignore" should exist
|
21
|
+
And a file named "source/layout.erb" should exist
|
22
|
+
And a file named "source/slides/00_00.html.erb" should exist
|
23
|
+
And a file named "source/slides/00_01.html.md" should exist
|
24
|
+
And a file named "source/index.html.erb" should exist
|
25
|
+
And a file named "source/stylesheets/application.scss" should exist
|
26
|
+
And a file named "source/javascripts/application.js" should exist
|
27
|
+
And a file named "script/start" should exist
|
28
|
+
And a file named "Rakefile" should exist
|
29
|
+
And a directory named "source/images" should exist
|
30
|
+
And a directory named "vendor/assets/components" should exist
|
31
|
+
And the file ".middleman-presentation.yaml" should contain:
|
32
|
+
"""
|
33
|
+
project_id:
|
34
|
+
"""
|
35
|
+
Then a directory named "vendor/assets/components/middleman-presentation-theme-default" should exist
|
36
|
+
And the file "source/stylesheets/application.scss" should contain:
|
37
|
+
"""
|
38
|
+
@import 'normalize.css/normalize';
|
39
|
+
@import 'highlightjs/styles/zenburn';
|
40
|
+
@import 'reveal.js/css/reveal.min';
|
41
|
+
@import 'reveal.js/css/theme/template/mixins';
|
42
|
+
@import 'reveal.js/css/theme/template/settings';
|
43
|
+
@import 'middleman-presentation-helpers/footer/footer';
|
44
|
+
@import 'middleman-presentation-helpers/image_gallery/image_gallery';
|
45
|
+
@import 'middleman-presentation-helpers/images/images';
|
46
|
+
@import 'middleman-presentation-theme-default/stylesheets/middleman-presentation-theme-default';
|
47
|
+
"""
|
48
|
+
And the file "source/javascripts/application.js" should contain:
|
49
|
+
"""
|
50
|
+
//= require jquery/dist/jquery
|
51
|
+
//= require reveal.js/js/reveal.min
|
52
|
+
//= require reveal.js/lib/js/head.min
|
53
|
+
//= require middleman-presentation-helpers/footer/footer
|
54
|
+
//= require lightbox2/js/lightbox
|
55
|
+
"""
|
56
|
+
|
57
|
+
Scenario: Initialize in test directory
|
58
|
+
Given I successfully run `middleman-presentation create presentation test/presentation1 --title "My Presentation"`
|
59
|
+
When I cd to "test/presentation1"
|
60
|
+
Then the file "source/stylesheets/application.scss" should contain:
|
61
|
+
"""
|
62
|
+
@import 'normalize.css/normalize';
|
63
|
+
@import 'highlightjs/styles/zenburn';
|
64
|
+
@import 'reveal.js/css/reveal.min';
|
65
|
+
@import 'reveal.js/css/theme/template/mixins';
|
66
|
+
@import 'reveal.js/css/theme/template/settings';
|
67
|
+
@import 'middleman-presentation-helpers/footer/footer';
|
68
|
+
@import 'middleman-presentation-helpers/image_gallery/image_gallery';
|
69
|
+
@import 'middleman-presentation-helpers/images/images';
|
70
|
+
@import 'middleman-presentation-theme-default/stylesheets/middleman-presentation-theme-default';
|
71
|
+
"""
|
72
|
+
And the file "source/javascripts/application.js" should contain:
|
73
|
+
"""
|
74
|
+
//= require jquery/dist/jquery
|
75
|
+
//= require reveal.js/js/reveal.min
|
76
|
+
//= require reveal.js/lib/js/head.min
|
77
|
+
//= require middleman-presentation-helpers/footer/footer
|
78
|
+
//= require lightbox2/js/lightbox
|
79
|
+
"""
|
80
|
+
|
81
|
+
Scenario: Existing configuration file
|
82
|
+
Given a user config file for middleman-presentation with:
|
83
|
+
"""
|
84
|
+
author: TestUser
|
85
|
+
company: MyCompany
|
86
|
+
email_address: test_user@example.com
|
87
|
+
homepage: http://example.com
|
88
|
+
presentation_language: en
|
89
|
+
speaker: TestUser
|
90
|
+
"""
|
91
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
92
|
+
When I cd to "presentation1"
|
93
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
94
|
+
"""
|
95
|
+
author: TestUser
|
96
|
+
"""
|
97
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
98
|
+
"""
|
99
|
+
company: MyCompany
|
100
|
+
"""
|
101
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
102
|
+
"""
|
103
|
+
email_address: test_user@example.com
|
104
|
+
"""
|
105
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
106
|
+
"""
|
107
|
+
homepage: http://example.com
|
108
|
+
"""
|
109
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
110
|
+
"""
|
111
|
+
speaker: TestUser
|
112
|
+
"""
|
113
|
+
|
114
|
+
Scenario: German umlauts, French accents and special chars are not a problem for project id
|
115
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "üöà~?§$%&/()=#!"`
|
116
|
+
And I cd to "presentation1"
|
117
|
+
And the file ".middleman-presentation.yaml" should contain:
|
118
|
+
"""
|
119
|
+
project_id: uoa
|
120
|
+
"""
|
121
|
+
|
122
|
+
Scenario: Use language from configuration file
|
123
|
+
Given a user config file for middleman-presentation with:
|
124
|
+
"""
|
125
|
+
presentation_language: 'de'
|
126
|
+
"""
|
127
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
128
|
+
And I cd to "presentation1"
|
129
|
+
Then the file "source/slides/999980.html.erb" should contain:
|
130
|
+
"""
|
131
|
+
Fragen
|
132
|
+
"""
|
133
|
+
|
134
|
+
Scenario: Use default language if language in configuration file is an empty string
|
135
|
+
Given a user config file for middleman-presentation with:
|
136
|
+
"""
|
137
|
+
presentation_language: ''
|
138
|
+
"""
|
139
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
140
|
+
And I cd to "presentation1"
|
141
|
+
Then the file "source/slides/999980.html.erb" should contain:
|
142
|
+
"""
|
143
|
+
Questions
|
144
|
+
"""
|
145
|
+
|
146
|
+
Scenario: Use lang from environment as language in slides
|
147
|
+
Given I set the environment variables to:
|
148
|
+
| variable | value |
|
149
|
+
| LANG | de_DE.UTF-8|
|
150
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
151
|
+
And I cd to "presentation1"
|
152
|
+
Then the file "source/slides/999980.html.erb" should contain:
|
153
|
+
"""
|
154
|
+
Fragen
|
155
|
+
"""
|
156
|
+
|
157
|
+
Scenario: Use lang from command line as language in slides
|
158
|
+
Given I set the environment variables to:
|
159
|
+
| variable | value |
|
160
|
+
| LANG | de_DE.UTF-8|
|
161
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation" --language en`
|
162
|
+
When I cd to "presentation1"
|
163
|
+
And the file "source/slides/999980.html.erb" should contain:
|
164
|
+
"""
|
165
|
+
Questions
|
166
|
+
"""
|
167
|
+
|
168
|
+
Scenario: Ignore case of lang value
|
169
|
+
Given I set the environment variables to:
|
170
|
+
| variable | value |
|
171
|
+
| LANG | de_de.utf-8|
|
172
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
173
|
+
When I cd to "presentation1"
|
174
|
+
When I successfully run `env`
|
175
|
+
And the file "source/slides/999980.html.erb" should contain:
|
176
|
+
"""
|
177
|
+
Fragen
|
178
|
+
"""
|
179
|
+
|
180
|
+
Scenario: Use englisch language in slides based if garbabe in environment variable
|
181
|
+
Given I set the environment variables to:
|
182
|
+
| variable | value |
|
183
|
+
| LANG | asdf |
|
184
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
185
|
+
When I cd to "presentation1"
|
186
|
+
And the file "source/slides/999980.html.erb" should contain:
|
187
|
+
"""
|
188
|
+
Questions
|
189
|
+
"""
|
190
|
+
|
191
|
+
Scenario: Use englisch language in slides if given garbabe on command line
|
192
|
+
Given I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation" --language adsfasdfn`
|
193
|
+
When I cd to "presentation1"
|
194
|
+
And the file "source/slides/999980.html.erb" should contain:
|
195
|
+
"""
|
196
|
+
Questions
|
197
|
+
"""
|
198
|
+
|
199
|
+
Scenario: Use different theme
|
200
|
+
Given a user config file for middleman-presentation with:
|
201
|
+
"""
|
202
|
+
theme:
|
203
|
+
name: middleman-presentation-theme-fedux_org
|
204
|
+
github: maxmeyer/middleman-presentation-theme-fedux_org
|
205
|
+
importable_files:
|
206
|
+
- stylesheets/middleman-presentation-theme-fedux_org
|
207
|
+
"""
|
208
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
209
|
+
When I cd to "presentation1"
|
210
|
+
Then a directory named "vendor/assets/components/middleman-presentation-theme-fedux_org" should exist
|
211
|
+
And the file "source/stylesheets/application.scss" should contain:
|
212
|
+
"""
|
213
|
+
@import 'middleman-presentation-theme-fedux_org/stylesheets/middleman-presentation-theme-fedux_org';
|
214
|
+
"""
|
215
|
+
|
216
|
+
Scenario: Fails if bower is not installed
|
217
|
+
Given only the executables of gems "middleman-core, middleman-presentation" can be found in PATH
|
218
|
+
When I run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
219
|
+
Then the output should contain:
|
220
|
+
"""
|
221
|
+
cannot be found in PATH
|
222
|
+
"""
|
223
|
+
|
224
|
+
Scenario: Fails if bower update fails
|
225
|
+
Given a file named "~/bin/bower" with mode "0755" and with:
|
226
|
+
"""
|
227
|
+
#!/bin/bash
|
228
|
+
echo "Failed" >&2
|
229
|
+
exit 1
|
230
|
+
"""
|
231
|
+
And only the executables of gems "middleman-core, middleman-presentation" can be found in PATH
|
232
|
+
And I prepend "~/bin:" to environment variable "PATH"
|
233
|
+
And I run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
234
|
+
Then the output should contain:
|
235
|
+
"""
|
236
|
+
Failed
|
237
|
+
"""
|
238
|
+
|
239
|
+
Scenario: No predefined slides
|
240
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation" --no-create-predefined-slides`
|
241
|
+
Then a file named "source/slides/00.html.erb" should not exist
|
242
|
+
And a file named "source/slides/999980.html.erb" should not exist
|
243
|
+
And a file named "source/slides/999981.html.erb" should not exist
|
244
|
+
And a file named "source/slides/999982.html.erb" should not exist
|
245
|
+
|
246
|
+
Scenario: Custom start slide template
|
247
|
+
Given a user template named "predefined_slides.d/00.html.erb.tt" with:
|
248
|
+
"""
|
249
|
+
<section>
|
250
|
+
<h1>Start</h1>
|
251
|
+
</section>
|
252
|
+
"""
|
253
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
254
|
+
When I cd to "presentation1"
|
255
|
+
Then a slide named "00.html.erb" should exist with:
|
256
|
+
"""
|
257
|
+
<section>
|
258
|
+
<h1>Start</h1>
|
259
|
+
</section>
|
260
|
+
"""
|
261
|
+
|
262
|
+
Scenario: Custom questions template
|
263
|
+
Given a user template named "predefined_slides.d/999980.html.erb.tt" with:
|
264
|
+
"""
|
265
|
+
<section>
|
266
|
+
<h1>Questions? Really</h1>
|
267
|
+
</section>
|
268
|
+
"""
|
269
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
270
|
+
When I cd to "presentation1"
|
271
|
+
Then a slide named "999980.html.erb" should exist with:
|
272
|
+
"""
|
273
|
+
<section>
|
274
|
+
<h1>Questions? Really</h1>
|
275
|
+
</section>
|
276
|
+
"""
|
277
|
+
|
278
|
+
Scenario: Custom contact template
|
279
|
+
Given a user template named "predefined_slides.d/999981.html.erb.tt" with:
|
280
|
+
"""
|
281
|
+
<section>
|
282
|
+
<h1>Contact</h1>
|
283
|
+
Me and You
|
284
|
+
</section>
|
285
|
+
"""
|
286
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
287
|
+
When I cd to "presentation1"
|
288
|
+
Then a slide named "999981.html.erb" should exist with:
|
289
|
+
"""
|
290
|
+
<section>
|
291
|
+
<h1>Contact</h1>
|
292
|
+
Me and You
|
293
|
+
</section>
|
294
|
+
"""
|
295
|
+
|
296
|
+
Scenario: Custom end slide template
|
297
|
+
Given a user template named "predefined_slides.d/999982.html.erb.tt" with:
|
298
|
+
"""
|
299
|
+
<section>
|
300
|
+
<h1>See you!</h1>
|
301
|
+
</section>
|
302
|
+
"""
|
303
|
+
And I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
304
|
+
When I cd to "presentation1"
|
305
|
+
Then a slide named "999982.html.erb" should exist with:
|
306
|
+
"""
|
307
|
+
<section>
|
308
|
+
<h1>See you!</h1>
|
309
|
+
</section>
|
310
|
+
"""
|
311
|
+
|
312
|
+
Scenario: Install external asset
|
313
|
+
Given a user config file for middleman-presentation with:
|
314
|
+
"""
|
315
|
+
plugins:
|
316
|
+
- middleman-presentation-simple_plugin
|
317
|
+
"""
|
318
|
+
When I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation"`
|
319
|
+
And I cd to "presentation1"
|
320
|
+
Then a directory named "vendor/assets/components/angular" should exist
|
321
|
+
And a directory named "vendor/assets/components/impress.js" should exist
|
322
|
+
|
323
|
+
Scenario: Change presentation size
|
324
|
+
Given I successfully run `middleman-presentation create presentation presentation1 --title "My Presentation" --width 1024 --height 768 --margin 0.5`
|
325
|
+
When I cd to "presentation1"
|
326
|
+
Then the file ".middleman-presentation.yaml" should contain:
|
327
|
+
"""
|
328
|
+
width: '1024'
|
329
|
+
"""
|
330
|
+
And the file ".middleman-presentation.yaml" should contain:
|
331
|
+
"""
|
332
|
+
height: '768'
|
333
|
+
"""
|
334
|
+
And the file ".middleman-presentation.yaml" should contain:
|
335
|
+
"""
|
336
|
+
margin: '0.5'
|
337
|
+
"""
|
338
|
+
|
339
|
+
Scenario: Expand ~
|
340
|
+
Given I successfully run `middleman-presentation create presentation ~/presentation1 --title "My Presentation"`
|
341
|
+
When I cd to "presentation1"
|
342
|
+
Then the file "source/javascripts/application.js" should contain:
|
343
|
+
"""
|
344
|
+
//= require jquery/dist/jquery
|
345
|
+
//= require reveal.js/js/reveal.min
|
346
|
+
//= require reveal.js/lib/js/head.min
|
347
|
+
//= require middleman-presentation-helpers/footer/footer
|
348
|
+
//= require lightbox2/js/lightbox
|
349
|
+
"""
|
@@ -0,0 +1,188 @@
|
|
1
|
+
Feature: Add new slide
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to add a new slide
|
5
|
+
In order do build it
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
9
|
+
|
10
|
+
Scenario: Custom Slide
|
11
|
+
When I successfully run `middleman-presentation create slide 01`
|
12
|
+
Then the following files should exist:
|
13
|
+
| source/slides/01.html.md |
|
14
|
+
|
15
|
+
Scenario: Embedded Ruby Slide
|
16
|
+
When I successfully run `middleman-presentation create slide 01.erb`
|
17
|
+
Then the following files should exist:
|
18
|
+
| source/slides/01.html.erb |
|
19
|
+
|
20
|
+
Scenario: Markdown Slide
|
21
|
+
When I successfully run `middleman-presentation create slide 01.md`
|
22
|
+
Then the following files should exist:
|
23
|
+
| source/slides/01.html.md |
|
24
|
+
|
25
|
+
Scenario: Liquid Slide
|
26
|
+
When I successfully run `middleman-presentation create slide 01.l`
|
27
|
+
Then the following files should exist:
|
28
|
+
| source/slides/01.html.liquid |
|
29
|
+
|
30
|
+
Scenario: Liquid Slide (long file extension)
|
31
|
+
When I successfully run `middleman-presentation create slide 01.liquid`
|
32
|
+
Then the following files should exist:
|
33
|
+
| source/slides/01.html.liquid |
|
34
|
+
|
35
|
+
Scenario: Markdown Slide (long file extension)
|
36
|
+
When I successfully run `middleman-presentation create slide 01.markdown`
|
37
|
+
Then the following files should exist:
|
38
|
+
| source/slides/01.html.md |
|
39
|
+
|
40
|
+
Scenario: Open slide with ENV['EDITOR'] after creation
|
41
|
+
When I successfully run `middleman-presentation create slide 01.markdown --edit --editor-command echo`
|
42
|
+
Then the following files should exist:
|
43
|
+
| source/slides/01.html.md |
|
44
|
+
And the output should contain:
|
45
|
+
"""
|
46
|
+
01.html.md
|
47
|
+
"""
|
48
|
+
|
49
|
+
Scenario: Create multiple slides
|
50
|
+
When I successfully run `middleman-presentation create slide 01 02`
|
51
|
+
Then the following files should exist:
|
52
|
+
| source/slides/01.html.md |
|
53
|
+
| source/slides/02.html.md |
|
54
|
+
|
55
|
+
Scenario: Edit existing slide with ENV['EDITOR']
|
56
|
+
And a slide named "02.html.md" with:
|
57
|
+
"""
|
58
|
+
<section>
|
59
|
+
<h1>Headline</h1>
|
60
|
+
</section>
|
61
|
+
"""
|
62
|
+
When I successfully run `middleman-presentation create slide 02 --edit --editor-command echo`
|
63
|
+
And the output should contain:
|
64
|
+
"""
|
65
|
+
02.html.md
|
66
|
+
"""
|
67
|
+
|
68
|
+
Scenario: Edit non-existing slide with ENV['EDITOR']
|
69
|
+
When I successfully run `middleman-presentation create slide 02 --edit --editor-command echo`
|
70
|
+
And the output should contain:
|
71
|
+
"""
|
72
|
+
create
|
73
|
+
"""
|
74
|
+
And the output should contain:
|
75
|
+
"""
|
76
|
+
02.html.md
|
77
|
+
"""
|
78
|
+
|
79
|
+
Scenario: Edit mixing existing and non-existing slides with ENV['EDITOR']
|
80
|
+
And a slide named "02.html.md" with:
|
81
|
+
"""
|
82
|
+
<section>
|
83
|
+
<h1>Headline</h1>
|
84
|
+
</section>
|
85
|
+
"""
|
86
|
+
When I successfully run `middleman-presentation create slide 02 03 --edit --editor-command echo`
|
87
|
+
And the output should contain:
|
88
|
+
"""
|
89
|
+
02.html.md
|
90
|
+
"""
|
91
|
+
And the output should contain:
|
92
|
+
"""
|
93
|
+
03.html.md
|
94
|
+
"""
|
95
|
+
|
96
|
+
Scenario: Edit existing multiple slides with ENV['EDITOR']
|
97
|
+
And a slide named "02.html.md" with:
|
98
|
+
"""
|
99
|
+
<section>
|
100
|
+
<h1>Headline</h1>
|
101
|
+
</section>
|
102
|
+
"""
|
103
|
+
And a slide named "03.html.md" with:
|
104
|
+
"""
|
105
|
+
<section>
|
106
|
+
<h1>Headline</h1>
|
107
|
+
</section>
|
108
|
+
"""
|
109
|
+
When I successfully run `middleman-presentation create slide 02 03 --edit --editor-command echo`
|
110
|
+
And the output should contain:
|
111
|
+
"""
|
112
|
+
02.html.md
|
113
|
+
"""
|
114
|
+
And the output should contain:
|
115
|
+
"""
|
116
|
+
03.html.md
|
117
|
+
"""
|
118
|
+
|
119
|
+
Scenario: Fails on duplicate slide names
|
120
|
+
When I run `middleman-presentation create slide 02.erb 02.md 03.erb 03.md 03.liquid`
|
121
|
+
And the output should contain:
|
122
|
+
"""
|
123
|
+
Your input will result in duplicate slide file names "02.html.md", "02.html.erb", "03.html.md", "03.html.liquid", "03.html.erb", "03.html.liquid", "03.html.erb", "03.html.md"
|
124
|
+
"""
|
125
|
+
|
126
|
+
Scenario: Missing slide name
|
127
|
+
When I run `middleman-presentation create slide`
|
128
|
+
Then the output should contain:
|
129
|
+
"""
|
130
|
+
No value provided for required arguments 'names'
|
131
|
+
"""
|
132
|
+
|
133
|
+
Scenario: Using eruby in editor command
|
134
|
+
When I successfully run `middleman-presentation create slide 02 03 --edit --editor-command "echo <%= project_id %>"`
|
135
|
+
Then the output should contain:
|
136
|
+
"""
|
137
|
+
my-presentation
|
138
|
+
"""
|
139
|
+
|
140
|
+
Scenario: Using eruby in editor command and shell escape
|
141
|
+
When I successfully run `middleman-presentation create slide 02 03 --edit --editor-command "echo <%= Shellwords.shellescape(project_id) %>"`
|
142
|
+
Then the output should contain:
|
143
|
+
"""
|
144
|
+
my-presentation
|
145
|
+
"""
|
146
|
+
|
147
|
+
Scenario: Output information that a slide was created
|
148
|
+
When I successfully run `middleman-presentation create slide 01`
|
149
|
+
Then the output should contain:
|
150
|
+
"""
|
151
|
+
create slides/01.html.md
|
152
|
+
"""
|
153
|
+
|
154
|
+
Scenario: Output information that multiple slides were created
|
155
|
+
When I successfully run `middleman-presentation create slide 01 02 03`
|
156
|
+
Then the output should contain:
|
157
|
+
"""
|
158
|
+
create slides/01.html.md
|
159
|
+
create slides/02.html.md
|
160
|
+
create slides/03.html.md
|
161
|
+
"""
|
162
|
+
|
163
|
+
Scenario: Output information that a slide already exists
|
164
|
+
When I successfully run `middleman-presentation create slide 01`
|
165
|
+
When I successfully run `middleman-presentation create slide 01`
|
166
|
+
Then the output should contain:
|
167
|
+
"""
|
168
|
+
exist slides/01.html.md
|
169
|
+
"""
|
170
|
+
|
171
|
+
Scenario: Output information that multiple slides already exist
|
172
|
+
When I successfully run `middleman-presentation create slide 01 02 03`
|
173
|
+
When I successfully run `middleman-presentation create slide 01 02 03`
|
174
|
+
Then the output should contain:
|
175
|
+
"""
|
176
|
+
exist slides/01.html.md
|
177
|
+
"""
|
178
|
+
|
179
|
+
Scenario: Create Group of slides in subfolder
|
180
|
+
When I successfully run `middleman-presentation create slide 01namespace:01`
|
181
|
+
Then the following files should exist:
|
182
|
+
| source/slides/01namespace/01.html.md |
|
183
|
+
|
184
|
+
Scenario: Create Group with same name as slide
|
185
|
+
When I successfully run `middleman-presentation create slide 01:01`
|
186
|
+
Then the following files should exist:
|
187
|
+
| source/slides/01/01.html.md |
|
188
|
+
|
@@ -0,0 +1,114 @@
|
|
1
|
+
Feature: Use templates for new slides
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to add a new slide based on a template
|
5
|
+
In order do build it
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
9
|
+
|
10
|
+
Scenario: Project Erb Slide template
|
11
|
+
And a project template named "erb.tt" with:
|
12
|
+
"""
|
13
|
+
<section>
|
14
|
+
<h1>New Template</h1>
|
15
|
+
<h2><%= title %></h2>
|
16
|
+
</section>
|
17
|
+
"""
|
18
|
+
When I successfully run `middleman-presentation create slide 01.erb --title "My Title"`
|
19
|
+
Then a slide named "01.html.erb" should exist with:
|
20
|
+
"""
|
21
|
+
<section>
|
22
|
+
<h1>New Template</h1>
|
23
|
+
<h2>My Title</h2>
|
24
|
+
</section>
|
25
|
+
"""
|
26
|
+
|
27
|
+
Scenario: Project Markdown Slide template
|
28
|
+
And a project template named "markdown.tt" with:
|
29
|
+
"""
|
30
|
+
<section>
|
31
|
+
# New Template
|
32
|
+
## <%= title %>
|
33
|
+
</section>
|
34
|
+
"""
|
35
|
+
When I successfully run `middleman-presentation create slide 01.md --title "My Title"`
|
36
|
+
Then a slide named "01.html.md" should exist with:
|
37
|
+
"""
|
38
|
+
<section>
|
39
|
+
# New Template
|
40
|
+
## My Title
|
41
|
+
</section>
|
42
|
+
"""
|
43
|
+
|
44
|
+
Scenario: Project Liquid Slide template
|
45
|
+
And a project template named "liquid.tt" with:
|
46
|
+
"""
|
47
|
+
<section>
|
48
|
+
<h1>{{ page_title }}</h1>
|
49
|
+
<h2><%= title %><h2>
|
50
|
+
</section>
|
51
|
+
"""
|
52
|
+
When I successfully run `middleman-presentation create slide 01.liquid --title "My Title"`
|
53
|
+
Then a slide named "01.html.liquid" should exist with:
|
54
|
+
"""
|
55
|
+
<section>
|
56
|
+
<h1>{{ page_title }}</h1>
|
57
|
+
<h2>My Title<h2>
|
58
|
+
</section>
|
59
|
+
"""
|
60
|
+
|
61
|
+
Scenario: User markdown template
|
62
|
+
Given a user template named "markdown.tt" with:
|
63
|
+
"""
|
64
|
+
<section>
|
65
|
+
# Hey ya
|
66
|
+
</section>
|
67
|
+
"""
|
68
|
+
When I successfully run `middleman-presentation create slide 01.md --title "My Title"`
|
69
|
+
Then a slide named "01.html.md" should exist with:
|
70
|
+
"""
|
71
|
+
<section>
|
72
|
+
# Hey ya
|
73
|
+
</section>
|
74
|
+
"""
|
75
|
+
|
76
|
+
Scenario: Custom default template
|
77
|
+
When I successfully run `middleman-presentation create slide 01 --title "My Title"`
|
78
|
+
Then a slide named "01.html.md" should exist with:
|
79
|
+
"""
|
80
|
+
<section>
|
81
|
+
# My Title
|
82
|
+
</section>
|
83
|
+
"""
|
84
|
+
|
85
|
+
Scenario: Custom user markdown template
|
86
|
+
Given a user template named "custom.md.tt" with:
|
87
|
+
"""
|
88
|
+
<section>
|
89
|
+
# <%= title %>
|
90
|
+
</section>
|
91
|
+
"""
|
92
|
+
When I successfully run `middleman-presentation create slide 01 --title "My Title"`
|
93
|
+
Then a slide named "01.html.md" should exist with:
|
94
|
+
"""
|
95
|
+
<section>
|
96
|
+
# My Title
|
97
|
+
</section>
|
98
|
+
"""
|
99
|
+
|
100
|
+
Scenario: Custom user erb template
|
101
|
+
Given a user template named "custom.erb.tt" with:
|
102
|
+
"""
|
103
|
+
<section>
|
104
|
+
<h1><%= title %></h1>
|
105
|
+
</section>
|
106
|
+
"""
|
107
|
+
When I successfully run `middleman-presentation create slide 01 --title "My Title"`
|
108
|
+
Then a slide named "01.html.erb" should exist with:
|
109
|
+
"""
|
110
|
+
<section>
|
111
|
+
<h1>My Title</h1>
|
112
|
+
</section>
|
113
|
+
"""
|
114
|
+
|