middleman-presentation-core 0.16.0.alpha
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 +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
|
+
|