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,58 @@
|
|
1
|
+
Feature: Create new presentation theme
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to create my own presentation template
|
5
|
+
In order to have a default theme for all presentations created with middleman-presentation
|
6
|
+
|
7
|
+
Scenario: Non existing template
|
8
|
+
Given a presentation theme named "new_theme" does not exist
|
9
|
+
When I successfully run `middleman-presentation create theme new_theme`
|
10
|
+
Then a presentation theme named "new_theme" should exist with default files/directories created
|
11
|
+
And a directory named "middleman-presentation-theme-new_theme" is a git repository
|
12
|
+
|
13
|
+
Scenario: No javascripts
|
14
|
+
Given a presentation theme named "new_theme" does not exist
|
15
|
+
When I successfully run `middleman-presentation create theme new_theme --no-javascripts-directory`
|
16
|
+
Then a presentation theme named "new_theme" should exist
|
17
|
+
And a directory named "middleman-presentation-theme-new_theme/javascripts" should not exist
|
18
|
+
|
19
|
+
Scenario: No stylesheets
|
20
|
+
Given a presentation theme named "new_theme" does not exist
|
21
|
+
When I successfully run `middleman-presentation create theme new_theme --no-stylesheets-directory`
|
22
|
+
Then a presentation theme named "new_theme" should exist
|
23
|
+
And a directory named "middleman-presentation-theme-new_theme/stylesheets" should not exist
|
24
|
+
|
25
|
+
Scenario: No images
|
26
|
+
Given a presentation theme named "new_theme" does not exist
|
27
|
+
When I successfully run `middleman-presentation create theme new_theme --no-images-directory`
|
28
|
+
Then a presentation theme named "new_theme" should exist
|
29
|
+
And a directory named "middleman-presentation-theme-new_theme/images" should not exist
|
30
|
+
|
31
|
+
Scenario: Cleaned css classes
|
32
|
+
Given a presentation theme named "new_theme" does not exist
|
33
|
+
When I successfully run `middleman-presentation create theme new_theme --clean-css`
|
34
|
+
Then the file "middleman-presentation-theme-new_theme/stylesheets/_theme.scss" should contain:
|
35
|
+
"""
|
36
|
+
// "999981.html.erb.tt"
|
37
|
+
.mp-external-url {
|
38
|
+
}
|
39
|
+
"""
|
40
|
+
|
41
|
+
Scenario: No prefix for theme directory
|
42
|
+
Given a presentation theme named "new_theme" does not exist
|
43
|
+
When I successfully run `middleman-presentation create theme new_theme --no-prefix`
|
44
|
+
Then a directory named "new_theme" should exist
|
45
|
+
|
46
|
+
Scenario: Predefined css classes
|
47
|
+
Given a presentation theme named "new_theme" does not exist
|
48
|
+
When I successfully run `middleman-presentation create theme new_theme`
|
49
|
+
Then the file "middleman-presentation-theme-new_theme/stylesheets/_theme.scss" should contain:
|
50
|
+
"""
|
51
|
+
a.mp-external-url:after {
|
52
|
+
font-family: "FontAwesome";
|
53
|
+
content: "\f08e";
|
54
|
+
margin-left: 12px;
|
55
|
+
margin-right: 12px;
|
56
|
+
font-size: 0.7em;
|
57
|
+
}
|
58
|
+
"""
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Feature: Default slides
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to use default slides
|
5
|
+
In order to reuse them
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given a user config file for middleman-presentation with:
|
9
|
+
"""
|
10
|
+
github_url: http://example.com
|
11
|
+
email_address: mail@example.com
|
12
|
+
phone_number: 1111
|
13
|
+
"""
|
14
|
+
And I use presentation fixture "default_slides1" with title "My Presentation"
|
15
|
+
|
16
|
+
Scenario: Contact information
|
17
|
+
When the Server is running
|
18
|
+
And I go to "/"
|
19
|
+
Then I should see:
|
20
|
+
"""
|
21
|
+
Contact
|
22
|
+
"""
|
23
|
+
And I should see:
|
24
|
+
"""
|
25
|
+
http://example.com
|
26
|
+
"""
|
27
|
+
And I should see:
|
28
|
+
"""
|
29
|
+
mail@example.com
|
30
|
+
"""
|
31
|
+
And I should see:
|
32
|
+
"""
|
33
|
+
1111
|
34
|
+
"""
|
35
|
+
|
36
|
+
Scenario: Agenda
|
37
|
+
When the Server is running
|
38
|
+
And I go to "/"
|
39
|
+
Then I should see:
|
40
|
+
"""
|
41
|
+
Agenda
|
42
|
+
"""
|
43
|
+
|
44
|
+
Scenario: Questions
|
45
|
+
When the Server is running
|
46
|
+
And I go to "/"
|
47
|
+
Then I should see:
|
48
|
+
"""
|
49
|
+
Questions
|
50
|
+
"""
|
51
|
+
|
52
|
+
Scenario: The end
|
53
|
+
When the Server is running
|
54
|
+
And I go to "/"
|
55
|
+
Then I should see:
|
56
|
+
"""
|
57
|
+
The End
|
58
|
+
"""
|
@@ -0,0 +1,121 @@
|
|
1
|
+
Feature: Edit slide
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to edit an already existing slide
|
5
|
+
In order to make changes
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
9
|
+
|
10
|
+
Scenario: Existing slide
|
11
|
+
Given a slide named "01.html.erb" with:
|
12
|
+
"""
|
13
|
+
<section>
|
14
|
+
<h1>Hello World</h1>
|
15
|
+
</section>
|
16
|
+
"""
|
17
|
+
When I successfully run `middleman-presentation edit slide 01 --editor-command echo`
|
18
|
+
Then the output should contain:
|
19
|
+
"""
|
20
|
+
01.html.erb
|
21
|
+
"""
|
22
|
+
|
23
|
+
Scenario: Matching regular expression
|
24
|
+
Given a slide named "01.html.erb" with:
|
25
|
+
"""
|
26
|
+
<section>
|
27
|
+
<h1>Hello World</h1>
|
28
|
+
</section>
|
29
|
+
"""
|
30
|
+
And a slide named "002.html.erb" with:
|
31
|
+
"""
|
32
|
+
<section>
|
33
|
+
<h1>Hello World</h1>
|
34
|
+
</section>
|
35
|
+
"""
|
36
|
+
When I successfully run `middleman-presentation edit slide '0\d\d' --editor-command echo --regex`
|
37
|
+
Then the output should not contain:
|
38
|
+
"""
|
39
|
+
01.html.erb
|
40
|
+
"""
|
41
|
+
And the output should contain:
|
42
|
+
"""
|
43
|
+
002.html.erb
|
44
|
+
"""
|
45
|
+
|
46
|
+
Scenario: Matching substring
|
47
|
+
Given a slide named "01.html.erb" with:
|
48
|
+
"""
|
49
|
+
<section>
|
50
|
+
<h1>Hello World</h1>
|
51
|
+
</section>
|
52
|
+
"""
|
53
|
+
And a slide named "02.html.erb" with:
|
54
|
+
"""
|
55
|
+
<section>
|
56
|
+
<h1>Hello World</h1>
|
57
|
+
</section>
|
58
|
+
"""
|
59
|
+
When I successfully run `middleman-presentation edit slide 0 --type md --regex --editor-command echo`
|
60
|
+
Then the output should contain:
|
61
|
+
"""
|
62
|
+
01.html.erb
|
63
|
+
"""
|
64
|
+
And the output should contain:
|
65
|
+
"""
|
66
|
+
02.html.erb
|
67
|
+
"""
|
68
|
+
|
69
|
+
Scenario: Multiple slides
|
70
|
+
Given a slide named "01.html.erb" with:
|
71
|
+
"""
|
72
|
+
<section>
|
73
|
+
<h1>Hello World</h1>
|
74
|
+
</section>
|
75
|
+
"""
|
76
|
+
And a slide named "02.html.erb" with:
|
77
|
+
"""
|
78
|
+
<section>
|
79
|
+
<h1>Hello World</h1>
|
80
|
+
</section>
|
81
|
+
"""
|
82
|
+
When I successfully run `middleman-presentation edit slide 01 02 --editor-command echo`
|
83
|
+
Then the output should contain:
|
84
|
+
"""
|
85
|
+
01.html.erb
|
86
|
+
"""
|
87
|
+
And the output should contain:
|
88
|
+
"""
|
89
|
+
02.html.erb
|
90
|
+
"""
|
91
|
+
|
92
|
+
Scenario: Missing slide name = All existing slides
|
93
|
+
Given a slide named "01.html.erb" with:
|
94
|
+
"""
|
95
|
+
<section>
|
96
|
+
<h1>Hello World</h1>
|
97
|
+
</section>
|
98
|
+
"""
|
99
|
+
And a slide named "02.html.erb" with:
|
100
|
+
"""
|
101
|
+
<section>
|
102
|
+
<h1>Hello World</h1>
|
103
|
+
</section>
|
104
|
+
"""
|
105
|
+
When I successfully run `middleman-presentation edit slide --editor-command echo`
|
106
|
+
Then the output should contain:
|
107
|
+
"""
|
108
|
+
01.html.erb
|
109
|
+
"""
|
110
|
+
And the output should contain:
|
111
|
+
"""
|
112
|
+
02.html.erb
|
113
|
+
"""
|
114
|
+
|
115
|
+
Scenario: Non-Existing slide
|
116
|
+
Given a slide named "01.html.erb" does not exist
|
117
|
+
When I successfully run `middleman-presentation edit slide 01 --editor-command echo`
|
118
|
+
Then the output should not contain:
|
119
|
+
"""
|
120
|
+
01.html.erb
|
121
|
+
"""
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Feature: Export presentation
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to export an already created presentation
|
5
|
+
In order to give to the audience
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation" and date "20140901"
|
9
|
+
|
10
|
+
Scenario: Default file name
|
11
|
+
When I successfully run `middleman-presentation export presentation`
|
12
|
+
Then a file named "20140901-my-presentation.zip" should exist
|
13
|
+
|
14
|
+
Scenario: Different file name
|
15
|
+
When I successfully run `middleman-presentation export presentation --output-file presentation.zip`
|
16
|
+
Then a file named "presentation.zip" should exist
|
17
|
+
|
18
|
+
Scenario: Wrong file name
|
19
|
+
When I run `middleman-presentation export presentation --output-file presentation.tar.gz`
|
20
|
+
Then the output should contain:
|
21
|
+
"""
|
22
|
+
The provided zip filename "presentation.tar.gz" is invalid. It needs to end with ".zip".
|
23
|
+
"""
|
@@ -0,0 +1,150 @@
|
|
1
|
+
Feature: Grouping slides
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to group slides
|
5
|
+
In order to use vertical slides feature
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
9
|
+
|
10
|
+
Scenario: Read slides from filesystem
|
11
|
+
Given a slide named "01namespace/01.html.erb" with:
|
12
|
+
"""
|
13
|
+
<section>
|
14
|
+
<h1>Hello World</h1>
|
15
|
+
</section>
|
16
|
+
"""
|
17
|
+
And the Server is running
|
18
|
+
When I go to "/"
|
19
|
+
Then I should see:
|
20
|
+
"""
|
21
|
+
<section>
|
22
|
+
<!-- slides/01namespace/01.html.erb -->
|
23
|
+
<section>
|
24
|
+
<h1>Hello World</h1>
|
25
|
+
</section>
|
26
|
+
</section>
|
27
|
+
"""
|
28
|
+
|
29
|
+
Scenario: Read multiple slides from filesystem
|
30
|
+
Given a slide named "01namespace/01.html.erb" with:
|
31
|
+
"""
|
32
|
+
<section>
|
33
|
+
<h1>Hello World #1</h1>
|
34
|
+
</section>
|
35
|
+
"""
|
36
|
+
And a slide named "01namespace/02.html.erb" with:
|
37
|
+
"""
|
38
|
+
<section>
|
39
|
+
<h1>Hello World #2</h1>
|
40
|
+
</section>
|
41
|
+
"""
|
42
|
+
And the Server is running
|
43
|
+
And I go to "/"
|
44
|
+
Then I should see:
|
45
|
+
"""
|
46
|
+
<section>
|
47
|
+
<!-- slides/01namespace/01.html.erb -->
|
48
|
+
<section>
|
49
|
+
<h1>Hello World #1</h1>
|
50
|
+
</section>
|
51
|
+
<!-- slides/01namespace/02.html.erb -->
|
52
|
+
<section>
|
53
|
+
<h1>Hello World #2</h1>
|
54
|
+
</section>
|
55
|
+
</section>
|
56
|
+
"""
|
57
|
+
|
58
|
+
Scenario: Read multiple slides within multiple groups from filesystem
|
59
|
+
Given a slide named "01.html.md" with:
|
60
|
+
"""
|
61
|
+
<section>
|
62
|
+
# Test
|
63
|
+
</section>
|
64
|
+
"""
|
65
|
+
And a slide named "01namespace/01.html.erb" with:
|
66
|
+
"""
|
67
|
+
<section>
|
68
|
+
<h1>Hello World #1.1</h1>
|
69
|
+
</section>
|
70
|
+
"""
|
71
|
+
And a slide named "01namespace/02.html.md" with:
|
72
|
+
"""
|
73
|
+
<section>
|
74
|
+
# Hello World #1.2
|
75
|
+
</section>
|
76
|
+
"""
|
77
|
+
And a slide named "02namespace/01.html.erb" with:
|
78
|
+
"""
|
79
|
+
<section>
|
80
|
+
<h1>Hello World #2.1</h1>
|
81
|
+
</section>
|
82
|
+
"""
|
83
|
+
And a slide named "02namespace/02.html.erb" with:
|
84
|
+
"""
|
85
|
+
<section>
|
86
|
+
<h1>Hello World #2.2</h1>
|
87
|
+
</section>
|
88
|
+
"""
|
89
|
+
And the Server is running
|
90
|
+
And I go to "/"
|
91
|
+
Then I should see:
|
92
|
+
"""
|
93
|
+
<section>
|
94
|
+
<!-- slides/01namespace/01.html.erb -->
|
95
|
+
<section>
|
96
|
+
<h1>Hello World #1.1</h1>
|
97
|
+
</section>
|
98
|
+
<!-- slides/01namespace/02.html.md -->
|
99
|
+
<section>
|
100
|
+
<h1 id="hello-world-12">Hello World #1.2</h1>
|
101
|
+
</section>
|
102
|
+
</section>
|
103
|
+
<section>
|
104
|
+
<!-- slides/02namespace/01.html.erb -->
|
105
|
+
<section>
|
106
|
+
<h1>Hello World #2.1</h1>
|
107
|
+
</section>
|
108
|
+
<!-- slides/02namespace/02.html.erb -->
|
109
|
+
<section>
|
110
|
+
<h1>Hello World #2.2</h1>
|
111
|
+
</section>
|
112
|
+
</section>
|
113
|
+
"""
|
114
|
+
|
115
|
+
Scenario: Project Group template
|
116
|
+
Given a project template named "group.tt" with:
|
117
|
+
"""
|
118
|
+
<section>
|
119
|
+
<h1>Group Title</h1>
|
120
|
+
<%= slides %>
|
121
|
+
</section>
|
122
|
+
"""
|
123
|
+
And a slide named "01namespace/01.html.erb" with:
|
124
|
+
"""
|
125
|
+
<section>
|
126
|
+
<h1>Hello World</h1>
|
127
|
+
</section>
|
128
|
+
"""
|
129
|
+
And a slide named "01namespace/02.html.erb" with:
|
130
|
+
"""
|
131
|
+
<section>
|
132
|
+
<h1>Hello World</h1>
|
133
|
+
</section>
|
134
|
+
"""
|
135
|
+
And the Server is running
|
136
|
+
When I go to "/"
|
137
|
+
Then I should see:
|
138
|
+
"""
|
139
|
+
<section>
|
140
|
+
<h1>Group Title</h1>
|
141
|
+
<!-- slides/01namespace/01.html.erb -->
|
142
|
+
<section>
|
143
|
+
<h1>Hello World</h1>
|
144
|
+
</section>
|
145
|
+
<!-- slides/01namespace/02.html.erb -->
|
146
|
+
<section>
|
147
|
+
<h1>Hello World</h1>
|
148
|
+
</section>
|
149
|
+
</section>
|
150
|
+
"""
|
@@ -0,0 +1,103 @@
|
|
1
|
+
Feature: Ignore slides
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to ignore some slides in output
|
5
|
+
In order to make them invisible
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
9
|
+
|
10
|
+
Scenario: Ignore a slide by basename
|
11
|
+
Given a slide named "01.html.md" with:
|
12
|
+
"""
|
13
|
+
<section>
|
14
|
+
# Slide 01
|
15
|
+
</section>
|
16
|
+
"""
|
17
|
+
And a slide named "02.html.md" with:
|
18
|
+
"""
|
19
|
+
<section>
|
20
|
+
# Slide 02
|
21
|
+
</section>
|
22
|
+
"""
|
23
|
+
And the Server is running
|
24
|
+
And a file named ".slidesignore" with:
|
25
|
+
"""
|
26
|
+
01
|
27
|
+
"""
|
28
|
+
Then the following files should exist:
|
29
|
+
| source/slides/01.html.md |
|
30
|
+
| source/slides/02.html.md |
|
31
|
+
When I go to "/"
|
32
|
+
Then I should not see:
|
33
|
+
"""
|
34
|
+
Slide 01
|
35
|
+
"""
|
36
|
+
Then I should see:
|
37
|
+
"""
|
38
|
+
Slide 02
|
39
|
+
"""
|
40
|
+
When I go to "javascripts/application.js"
|
41
|
+
Then I should see:
|
42
|
+
"""
|
43
|
+
jQuery JavaScript Library
|
44
|
+
"""
|
45
|
+
When I go to "stylesheets/application.css"
|
46
|
+
Then I should see:
|
47
|
+
"""
|
48
|
+
Hakim El Hattab
|
49
|
+
"""
|
50
|
+
#When I go to "images/lightbox2/img/close.png"
|
51
|
+
#Then the status code should be "200"
|
52
|
+
|
53
|
+
Scenario: Unignore a slide
|
54
|
+
Given a slide named "01.html.md" with:
|
55
|
+
"""
|
56
|
+
<section>
|
57
|
+
# Slide 01
|
58
|
+
</section>
|
59
|
+
"""
|
60
|
+
And a slide named "02.html.md" with:
|
61
|
+
"""
|
62
|
+
<section>
|
63
|
+
# Slide 02
|
64
|
+
</section>
|
65
|
+
"""
|
66
|
+
And the Server is running
|
67
|
+
And a file named ".slidesignore" with:
|
68
|
+
"""
|
69
|
+
\.md
|
70
|
+
!02
|
71
|
+
"""
|
72
|
+
Then the following files should exist:
|
73
|
+
| source/slides/01.html.md |
|
74
|
+
| source/slides/02.html.md |
|
75
|
+
When I go to "/"
|
76
|
+
Then I should not see:
|
77
|
+
"""
|
78
|
+
Slide 01
|
79
|
+
"""
|
80
|
+
Then I should see:
|
81
|
+
"""
|
82
|
+
Slide 02
|
83
|
+
"""
|
84
|
+
When I go to "javascripts/application.js"
|
85
|
+
Then I should see:
|
86
|
+
"""
|
87
|
+
jQuery JavaScript Library
|
88
|
+
"""
|
89
|
+
When I go to "stylesheets/application.css"
|
90
|
+
Then I should see:
|
91
|
+
"""
|
92
|
+
Hakim El Hattab
|
93
|
+
"""
|
94
|
+
#When I go to "images/lightbox2/img/close.png"
|
95
|
+
#Then the status code should be "200"
|
96
|
+
|
97
|
+
Scenario: Warning on invalid ignore file
|
98
|
+
Given an empty file named ".slideignore"
|
99
|
+
When I run `middleman build`
|
100
|
+
Then the output should contain:
|
101
|
+
"""
|
102
|
+
Invalid ignore file
|
103
|
+
"""
|
@@ -0,0 +1,59 @@
|
|
1
|
+
Feature: Initialize middleman-presentation
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to initialize middleman-presentation
|
5
|
+
In order to have defaults for all presentations created with middleman-presentation
|
6
|
+
|
7
|
+
Scenario: Before init
|
8
|
+
Given I set the environment variables to:
|
9
|
+
| variable | value |
|
10
|
+
| USER | my_user|
|
11
|
+
When I successfully run `middleman-presentation init application`
|
12
|
+
Then the user config file for middleman-presentation should contain:
|
13
|
+
"""
|
14
|
+
# activate_center: true
|
15
|
+
"""
|
16
|
+
|
17
|
+
Scenario: Overwrite existing config file
|
18
|
+
Given I set the environment variables to:
|
19
|
+
| variable | value |
|
20
|
+
| USER | my_user|
|
21
|
+
And a user config file for middleman-presentation with:
|
22
|
+
"""
|
23
|
+
# activate_center: false
|
24
|
+
# theme:
|
25
|
+
# name: new_theme
|
26
|
+
# github: account/new_theme
|
27
|
+
# javascripts:
|
28
|
+
# - javascripts/new_theme
|
29
|
+
# stylesheets:
|
30
|
+
# - stylesheets/new_theme
|
31
|
+
"""
|
32
|
+
When I successfully run `middleman-presentation init application --force`
|
33
|
+
Then the user config file for middleman-presentation should contain:
|
34
|
+
"""
|
35
|
+
# activate_center: true
|
36
|
+
"""
|
37
|
+
And the user config file for middleman-presentation should contain:
|
38
|
+
"""
|
39
|
+
# theme: {:name=>"middleman-presentation-theme-default", :github=>"maxmeyer/middleman-presentation-theme-default", :importable_files=>[/stylesheets\/middleman-presentation-theme-default.scss$/], :loadable_files=>[/.*\.png$/]}
|
40
|
+
"""
|
41
|
+
|
42
|
+
Scenario: Local for presentation
|
43
|
+
Given I set the environment variables to:
|
44
|
+
| variable | value |
|
45
|
+
| USER | my_user|
|
46
|
+
And I create a new presentation with title "My Presentation"
|
47
|
+
When I successfully run `middleman-presentation init application --local`
|
48
|
+
Then the presentation config file for middleman-presentation should contain:
|
49
|
+
"""
|
50
|
+
title: My Presentation
|
51
|
+
"""
|
52
|
+
And the presentation config file for middleman-presentation should contain:
|
53
|
+
"""
|
54
|
+
version: v0.0.1
|
55
|
+
"""
|
56
|
+
And the presentation config file for middleman-presentation should contain:
|
57
|
+
"""
|
58
|
+
speaker: my_user
|
59
|
+
"""
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Feature: Initialize predefined slides
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to initialize predefined slides
|
5
|
+
In order to have defaults for all presentations created with middleman-presentation
|
6
|
+
|
7
|
+
Scenario: Default directory
|
8
|
+
When I successfully run `middleman-presentation init predefined_slides`
|
9
|
+
Then a file named "~/.config/middleman-presentation/templates/predefined_slides.d/00_00.html.erb.tt" should exist
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Show known assets
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to show all known asset files which I can use in my presentation
|
5
|
+
In order to have an overview
|
6
|
+
|
7
|
+
Scenario: List available assets
|
8
|
+
Given I create a new presentation with title "My Presentation"
|
9
|
+
When I successfully run `middleman-presentation list assets`
|
10
|
+
Then the output should contain:
|
11
|
+
"""
|
12
|
+
| Source path
|
13
|
+
"""
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Show available components
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to show all available components which I can use in my presentation
|
5
|
+
In order to have an overview
|
6
|
+
|
7
|
+
Scenario: List available components
|
8
|
+
Given I create a new presentation with title "My Presentation"
|
9
|
+
When I successfully run `middleman-presentation list components`
|
10
|
+
Then the output should contain:
|
11
|
+
"""
|
12
|
+
Name:
|
13
|
+
"""
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Show available helpers
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to show all available helpers which I can use in my presentation
|
5
|
+
In order to have an overview
|
6
|
+
|
7
|
+
Scenario: List available helpers
|
8
|
+
Given I create a new presentation with title "My Presentation"
|
9
|
+
When I successfully run `middleman-presentation list helpers`
|
10
|
+
Then the output should contain:
|
11
|
+
"""
|
12
|
+
| Name
|
13
|
+
"""
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Show available plugins
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to show all available plugins
|
5
|
+
In order to have an overview
|
6
|
+
|
7
|
+
Scenario: List available plugins
|
8
|
+
Given I create a new presentation with title "My Presentation"
|
9
|
+
When I successfully run `middleman-presentation list plugins`
|
10
|
+
Then the output should contain:
|
11
|
+
"""
|
12
|
+
| Name
|
13
|
+
"""
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: Show available default css classes
|
2
|
+
|
3
|
+
As a presentator
|
4
|
+
I want to get a list of css classess which are used in default templates
|
5
|
+
In order to know what needs to be defined
|
6
|
+
|
7
|
+
Scenario: Available css classes
|
8
|
+
Given I successfully run `middleman-presentation list style`
|
9
|
+
Then the output should contain:
|
10
|
+
"""
|
11
|
+
Available css classes in templates used by middleman-presentation:
|
12
|
+
"""
|
13
|
+
And the output should contain:
|
14
|
+
"""
|
15
|
+
mp-external-url: "999981.html.erb.tt"
|
16
|
+
"""
|
17
|
+
|