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,63 @@
|
|
|
1
|
+
Feature: Support plugins for middleman-presentation
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to group assets and helpers in a plugin
|
|
5
|
+
In order to make them more re-usable
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given a user config file for middleman-presentation with:
|
|
9
|
+
"""
|
|
10
|
+
plugins:
|
|
11
|
+
- middleman-presentation-simple_plugin
|
|
12
|
+
"""
|
|
13
|
+
And I use presentation fixture "presentation1" with title "My Presentation"
|
|
14
|
+
|
|
15
|
+
Scenario: Use method in plugin
|
|
16
|
+
Given a slide named "01.html.erb" with:
|
|
17
|
+
"""
|
|
18
|
+
<section>
|
|
19
|
+
<h1>Hello World</h1>
|
|
20
|
+
<%= test_simple_helper1 %>
|
|
21
|
+
</section>
|
|
22
|
+
"""
|
|
23
|
+
And a slide named "02.html.erb" with:
|
|
24
|
+
"""
|
|
25
|
+
<section>
|
|
26
|
+
<h1>Hello World</h1>
|
|
27
|
+
<%= test_simple_helper2 %>
|
|
28
|
+
</section>
|
|
29
|
+
"""
|
|
30
|
+
And the Server is running
|
|
31
|
+
When I go to "/"
|
|
32
|
+
Then I should see:
|
|
33
|
+
"""
|
|
34
|
+
<section>
|
|
35
|
+
<h1>Hello World</h1>
|
|
36
|
+
test_simple_helper1
|
|
37
|
+
</section>
|
|
38
|
+
"""
|
|
39
|
+
And I should see:
|
|
40
|
+
"""
|
|
41
|
+
<section>
|
|
42
|
+
<h1>Hello World</h1>
|
|
43
|
+
test_simple_helper2
|
|
44
|
+
</section>
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: Use asset in plugin
|
|
48
|
+
Given I add a stylesheet asset named "test_simple" to the presentation
|
|
49
|
+
And the Server is running
|
|
50
|
+
When I go to "/stylesheets/application.css"
|
|
51
|
+
Then I should see:
|
|
52
|
+
"""
|
|
53
|
+
.test_simple {
|
|
54
|
+
color: black; }
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
Scenario: Use frontend from plugin
|
|
58
|
+
Given the Server is running
|
|
59
|
+
When I go to "/javascripts/application.js"
|
|
60
|
+
Then I should see:
|
|
61
|
+
"""
|
|
62
|
+
angular
|
|
63
|
+
"""
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
Feature: Run presentation
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to run an already created presentation
|
|
5
|
+
In order to use it
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
|
9
|
+
|
|
10
|
+
Scenario: Simple Slide
|
|
11
|
+
Given a slide named "01.html.erb" with:
|
|
12
|
+
"""
|
|
13
|
+
<section>
|
|
14
|
+
</section>
|
|
15
|
+
<section>
|
|
16
|
+
<h1>Hello World</h1>
|
|
17
|
+
</section>
|
|
18
|
+
"""
|
|
19
|
+
And the Server is running
|
|
20
|
+
And I go to "/"
|
|
21
|
+
Then I should see:
|
|
22
|
+
"""
|
|
23
|
+
Hello World
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
Scenario: Malformed Slide
|
|
27
|
+
Given a slide named "01.html.erb" with:
|
|
28
|
+
"""
|
|
29
|
+
<section>
|
|
30
|
+
<%= asdfasdf() %>
|
|
31
|
+
</section>
|
|
32
|
+
"""
|
|
33
|
+
And the Server is running
|
|
34
|
+
And I go to "/" and see the following error message:
|
|
35
|
+
"""
|
|
36
|
+
NoMethodError: undefined method `asdfasdf
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
Scenario: Run it
|
|
40
|
+
Given the Server is running
|
|
41
|
+
When I go to "/"
|
|
42
|
+
Then I should see:
|
|
43
|
+
"""
|
|
44
|
+
My Presentation
|
|
45
|
+
"""
|
|
46
|
+
When I go to "javascripts/application.js"
|
|
47
|
+
Then I should see:
|
|
48
|
+
"""
|
|
49
|
+
jQuery JavaScript Library
|
|
50
|
+
"""
|
|
51
|
+
When I go to "stylesheets/application.css"
|
|
52
|
+
Then I should see:
|
|
53
|
+
"""
|
|
54
|
+
Hakim El Hattab
|
|
55
|
+
"""
|
|
56
|
+
#When I go to "images/lightbox2/img/close.png"
|
|
57
|
+
#Then the status code should be "200"
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Feature: Rename slide
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to rename an already existing slide
|
|
5
|
+
In order to make its name fit the need
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
|
9
|
+
|
|
10
|
+
Scenario: Full-name
|
|
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 change slide 01 --base-name 02`
|
|
18
|
+
Then a slide named "02.html.erb" should exist
|
|
19
|
+
|
|
20
|
+
Scenario: Full-name for multiple files
|
|
21
|
+
Given a slide named "01.html.erb" with:
|
|
22
|
+
"""
|
|
23
|
+
<section>
|
|
24
|
+
<h1>Hello World</h1>
|
|
25
|
+
</section>
|
|
26
|
+
"""
|
|
27
|
+
When I run `middleman-presentation change slide 01 02 --base-name 02.html.md`
|
|
28
|
+
Then the output should contain:
|
|
29
|
+
"""
|
|
30
|
+
You pass to many arguments. Only "1" argument(s) are allowed.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
Scenario: File suffix
|
|
34
|
+
Given a slide named "01.html.erb" with:
|
|
35
|
+
"""
|
|
36
|
+
<section>
|
|
37
|
+
<h1>Hello World</h1>
|
|
38
|
+
</section>
|
|
39
|
+
"""
|
|
40
|
+
When I successfully run `middleman-presentation change slide 01 --type md`
|
|
41
|
+
Then a slide named "01.html.md" should exist
|
|
42
|
+
|
|
43
|
+
Scenario: File suffix with prefixing dot
|
|
44
|
+
Given a slide named "01.html.erb" with:
|
|
45
|
+
"""
|
|
46
|
+
<section>
|
|
47
|
+
<h1>Hello World</h1>
|
|
48
|
+
</section>
|
|
49
|
+
"""
|
|
50
|
+
When I successfully run `middleman-presentation change slide 01 --type .md`
|
|
51
|
+
Then a slide named "01.html.md" should exist
|
|
52
|
+
|
|
53
|
+
Scenario: File suffix for multiple files
|
|
54
|
+
Given a slide named "01.html.erb" with:
|
|
55
|
+
"""
|
|
56
|
+
<section>
|
|
57
|
+
<h1>Hello World</h1>
|
|
58
|
+
</section>
|
|
59
|
+
"""
|
|
60
|
+
And a slide named "02.html.erb" with:
|
|
61
|
+
"""
|
|
62
|
+
<section>
|
|
63
|
+
<h1>Hello World</h1>
|
|
64
|
+
</section>
|
|
65
|
+
"""
|
|
66
|
+
When I successfully run `middleman-presentation change slide 01 02 --type md`
|
|
67
|
+
Then a slide named "01.html.md" should exist
|
|
68
|
+
And a slide named "02.html.md" should exist
|
|
69
|
+
|
|
70
|
+
Scenario: Missing slide name = All existing slides
|
|
71
|
+
Given a slide named "01.html.erb" with:
|
|
72
|
+
"""
|
|
73
|
+
<section>
|
|
74
|
+
<h1>Hello World</h1>
|
|
75
|
+
</section>
|
|
76
|
+
"""
|
|
77
|
+
And a slide named "02.html.erb" with:
|
|
78
|
+
"""
|
|
79
|
+
<section>
|
|
80
|
+
<h1>Hello World</h1>
|
|
81
|
+
</section>
|
|
82
|
+
"""
|
|
83
|
+
When I successfully run `middleman-presentation change slide --type md`
|
|
84
|
+
Then a slide named "01.html.md" should exist
|
|
85
|
+
Then a slide named "02.html.md" should exist
|
|
86
|
+
|
|
87
|
+
Scenario: Matching substring
|
|
88
|
+
Given a slide named "01.html.erb" with:
|
|
89
|
+
"""
|
|
90
|
+
<section>
|
|
91
|
+
<h1>Hello World</h1>
|
|
92
|
+
</section>
|
|
93
|
+
"""
|
|
94
|
+
And a slide named "02.html.erb" with:
|
|
95
|
+
"""
|
|
96
|
+
<section>
|
|
97
|
+
<h1>Hello World</h1>
|
|
98
|
+
</section>
|
|
99
|
+
"""
|
|
100
|
+
When I successfully run `middleman-presentation change slide 0 --type md --regex`
|
|
101
|
+
Then a slide named "01.html.md" should exist
|
|
102
|
+
Then a slide named "02.html.md" should exist
|
|
103
|
+
|
|
104
|
+
Scenario: Matching regular expression
|
|
105
|
+
Given a slide named "00.html.erb" with:
|
|
106
|
+
"""
|
|
107
|
+
<section>
|
|
108
|
+
<h1>Hello World</h1>
|
|
109
|
+
</section>
|
|
110
|
+
"""
|
|
111
|
+
And a slide named "01.html.erb" with:
|
|
112
|
+
"""
|
|
113
|
+
<section>
|
|
114
|
+
<h1>Hello World</h1>
|
|
115
|
+
</section>
|
|
116
|
+
"""
|
|
117
|
+
And a slide named "002.html.erb" with:
|
|
118
|
+
"""
|
|
119
|
+
<section>
|
|
120
|
+
<h1>Hello World</h1>
|
|
121
|
+
</section>
|
|
122
|
+
"""
|
|
123
|
+
When I successfully run `middleman-presentation change slide '0[0-1]' --type md --regex`
|
|
124
|
+
Then a slide named "00.html.md" should exist
|
|
125
|
+
Then a slide named "01.html.md" should exist
|
|
126
|
+
|
|
127
|
+
Scenario: Change erb => md automatically
|
|
128
|
+
Given a slide named "01.html.erb" with:
|
|
129
|
+
"""
|
|
130
|
+
<section>
|
|
131
|
+
<h1>Hello World</h1>
|
|
132
|
+
</section>
|
|
133
|
+
"""
|
|
134
|
+
When I successfully run `middleman-presentation change slide 01`
|
|
135
|
+
Then a slide named "01.html.md" should exist
|
|
136
|
+
|
|
137
|
+
Scenario: Change md => erb automatically
|
|
138
|
+
Given a slide named "01.html.md" with:
|
|
139
|
+
"""
|
|
140
|
+
<section>
|
|
141
|
+
# Hello World
|
|
142
|
+
</section>
|
|
143
|
+
"""
|
|
144
|
+
When I successfully run `middleman-presentation change slide 01`
|
|
145
|
+
Then a slide named "01.html.erb" should exist
|
|
146
|
+
|
|
147
|
+
Scenario: Change other => md automatically
|
|
148
|
+
Given a slide named "01.html.liquid" with:
|
|
149
|
+
"""
|
|
150
|
+
<section>
|
|
151
|
+
<h1>Hello World</h1>
|
|
152
|
+
</section>
|
|
153
|
+
"""
|
|
154
|
+
When I successfully run `middleman-presentation change slide 01`
|
|
155
|
+
Then a slide named "01.html.md" should exist
|
|
156
|
+
|
|
157
|
+
Scenario: Non existing slide
|
|
158
|
+
Given a slide named "01.html.erb" does not exist
|
|
159
|
+
When I run `middleman-presentation change slide 01 --type md`
|
|
160
|
+
Then the output should contain:
|
|
161
|
+
"""
|
|
162
|
+
I cannot find a slide which matches "01"
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
Scenario: Edit after change
|
|
166
|
+
Given a slide named "01.html.erb" with:
|
|
167
|
+
"""
|
|
168
|
+
<section>
|
|
169
|
+
<h1>Hello World</h1>
|
|
170
|
+
</section>
|
|
171
|
+
"""
|
|
172
|
+
When I successfully run `middleman-presentation change slide 01 --type md --edit --editor-command echo`
|
|
173
|
+
Then the output should contain:
|
|
174
|
+
"""
|
|
175
|
+
01.html.erb
|
|
176
|
+
"""
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Feature: Render different kind of templates
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to use the template engine which fits best for a given use case
|
|
5
|
+
In order to reduce the amount of time to create a new presentation
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given I use presentation fixture "presentation1" with title "My Presentation"
|
|
9
|
+
|
|
10
|
+
Scenario: Markdown Slide
|
|
11
|
+
Given a slide named "01.html.md" with:
|
|
12
|
+
"""
|
|
13
|
+
<section>
|
|
14
|
+
# Hello world
|
|
15
|
+
</section>
|
|
16
|
+
"""
|
|
17
|
+
And the Server is running
|
|
18
|
+
And I go to "/"
|
|
19
|
+
Then I should see:
|
|
20
|
+
"""
|
|
21
|
+
<section>
|
|
22
|
+
<h1 id="hello-world">Hello world</h1>
|
|
23
|
+
</section>
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
Scenario: Erb Slide
|
|
27
|
+
Given a slide named "01.html.erb" with:
|
|
28
|
+
"""
|
|
29
|
+
<section>
|
|
30
|
+
<%= 'test_string' %>
|
|
31
|
+
</section>
|
|
32
|
+
"""
|
|
33
|
+
And the Server is running
|
|
34
|
+
And I go to "/"
|
|
35
|
+
Then I should see:
|
|
36
|
+
"""
|
|
37
|
+
<section>
|
|
38
|
+
test_string
|
|
39
|
+
</section>
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
Scenario: Liquid Slide
|
|
43
|
+
Given a slide named "01.html.liquid" with:
|
|
44
|
+
"""
|
|
45
|
+
<section>
|
|
46
|
+
{{ 'test_string' }}
|
|
47
|
+
</section>
|
|
48
|
+
"""
|
|
49
|
+
And the Server is running
|
|
50
|
+
And I go to "/"
|
|
51
|
+
Then I should see:
|
|
52
|
+
"""
|
|
53
|
+
<section>
|
|
54
|
+
test_string
|
|
55
|
+
</section>
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
Scenario: Markdown + Erb Slide
|
|
59
|
+
Given a slide named "01.html.md.erb" with:
|
|
60
|
+
"""
|
|
61
|
+
<section>
|
|
62
|
+
# Hello world
|
|
63
|
+
|
|
64
|
+
<%= 'test_string' %>
|
|
65
|
+
</section>
|
|
66
|
+
"""
|
|
67
|
+
And the Server is running
|
|
68
|
+
And I go to "/"
|
|
69
|
+
Then I should see:
|
|
70
|
+
"""
|
|
71
|
+
<section>
|
|
72
|
+
<h1 id="hello-world">Hello world</h1>
|
|
73
|
+
|
|
74
|
+
<p>test_string</p>
|
|
75
|
+
</section>
|
|
76
|
+
"""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Feature: Configuration
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to a list of configuration options
|
|
5
|
+
In order to use it
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given a user config file for middleman-presentation with:
|
|
9
|
+
"""
|
|
10
|
+
slides_ignore_file: '.ignore'
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
Scenario: Show config
|
|
14
|
+
When I successfully run `middleman-presentation show config`
|
|
15
|
+
Then the output should contain:
|
|
16
|
+
"""
|
|
17
|
+
.ignore
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
Scenario: Show config with default values
|
|
21
|
+
When I successfully run `middleman-presentation show config --defaults`
|
|
22
|
+
Then the output should contain:
|
|
23
|
+
"""
|
|
24
|
+
.slidesignore
|
|
25
|
+
"""
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Feature: Show footer
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to show a footer fot the presentation
|
|
5
|
+
In order to make to add some meta information
|
|
6
|
+
|
|
7
|
+
Scenario: Print link
|
|
8
|
+
Given I create a new presentation with title "My Presentation"
|
|
9
|
+
And the Server is running
|
|
10
|
+
When I go to "/"
|
|
11
|
+
Then I should see:
|
|
12
|
+
"""
|
|
13
|
+
<footer
|
|
14
|
+
"""
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Feature: Show slide number on slides
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to show the number of the current slide on the current slide
|
|
5
|
+
In order to make the audience aware what comes next
|
|
6
|
+
|
|
7
|
+
Scenario: Slide number is activated
|
|
8
|
+
Given a user config file for middleman-presentation with:
|
|
9
|
+
"""
|
|
10
|
+
activate_slide_number: true
|
|
11
|
+
"""
|
|
12
|
+
And I create a new presentation with title "My Presentation"
|
|
13
|
+
And the Server is running
|
|
14
|
+
When I go to "/"
|
|
15
|
+
Then I should see:
|
|
16
|
+
"""
|
|
17
|
+
slideNumber: true
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
Scenario: Slide number is not activated
|
|
21
|
+
Given a user config file for middleman-presentation with:
|
|
22
|
+
"""
|
|
23
|
+
activate_slide_number: false
|
|
24
|
+
"""
|
|
25
|
+
And I create a new presentation with title "My Presentation"
|
|
26
|
+
And the Server is running
|
|
27
|
+
When I go to "/"
|
|
28
|
+
Then I should see:
|
|
29
|
+
"""
|
|
30
|
+
slideNumber: false
|
|
31
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: Show information
|
|
2
|
+
|
|
3
|
+
As a user
|
|
4
|
+
I want to get information about the system
|
|
5
|
+
In order to provide them for support
|
|
6
|
+
|
|
7
|
+
Scenario: Show support information
|
|
8
|
+
When I successfully run `middleman-presentation show support_information`
|
|
9
|
+
Then the output should contain:
|
|
10
|
+
"""
|
|
11
|
+
kernelversion
|
|
12
|
+
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'aruba/cucumber'
|
|
3
|
+
|
|
4
|
+
module Middleman
|
|
5
|
+
module Presentation
|
|
6
|
+
# Spec Helpers
|
|
7
|
+
module FeatureHelper
|
|
8
|
+
# Helpers for aruba
|
|
9
|
+
module Aruba
|
|
10
|
+
def dirs
|
|
11
|
+
@dirs ||= %w(tmp cucumber)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
World(Middleman::Presentation::FeatureHelper::Aruba)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'aruba/cucumber'
|
|
3
|
+
|
|
4
|
+
require 'simplecov'
|
|
5
|
+
SimpleCov.command_name 'cucumber'
|
|
6
|
+
SimpleCov.start
|
|
7
|
+
|
|
8
|
+
# middleman
|
|
9
|
+
require 'middleman-core'
|
|
10
|
+
require 'middleman-core/step_definitions'
|
|
11
|
+
require 'middleman-core/step_definitions/builder_steps'
|
|
12
|
+
require 'middleman-core/step_definitions/middleman_steps'
|
|
13
|
+
# require 'middleman-presentation-core/middleman_step_definitions'
|
|
14
|
+
|
|
15
|
+
# middleman-presentation
|
|
16
|
+
require 'middleman-presentation-core/step_definitions'
|
|
17
|
+
|
|
18
|
+
# Pull in all of the gems including those in the `test` group
|
|
19
|
+
require 'bundler'
|
|
20
|
+
Bundler.require :default, :test, :development
|
|
21
|
+
|
|
22
|
+
ENV['TEST'] = 'true'
|
|
23
|
+
ENV['AUTOLOAD_SPROCKETS'] = 'false'
|
|
24
|
+
|
|
25
|
+
PROJECT_ROOT_PATH = File.expand_path('../../../', __FILE__)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Middleman
|
|
3
|
+
module Presentation
|
|
4
|
+
module FeatureHelper
|
|
5
|
+
# Helper for fixtures
|
|
6
|
+
module Fixtures
|
|
7
|
+
def fixtures_manager
|
|
8
|
+
@fixtures_manager ||= FeduxOrgStdlib::FixturesManagement::FixturesManager.new
|
|
9
|
+
|
|
10
|
+
@fixtures_manager.load_fixtures(File.expand_path('../../../fixtures', __FILE__))
|
|
11
|
+
|
|
12
|
+
@fixtures_manager
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
World(Middleman::Presentation::FeatureHelper::Fixtures)
|
|
20
|
+
|
|
21
|
+
FileUtils.rm_rf Middleman::Presentation::TestHelpers.temporary_fixture_path('.')
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Feature: Show version number
|
|
2
|
+
|
|
3
|
+
As a presentator
|
|
4
|
+
I want to add a version number to a new presentation
|
|
5
|
+
In order to display it
|
|
6
|
+
|
|
7
|
+
Scenario: Default version number
|
|
8
|
+
Given I successfully run `middleman-presentation create presentation presentation1 --title "Test"`
|
|
9
|
+
And I cd to "presentation1"
|
|
10
|
+
And the Server is running
|
|
11
|
+
When I go to "/"
|
|
12
|
+
Then I should see:
|
|
13
|
+
"""
|
|
14
|
+
v0.0.1
|
|
15
|
+
"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Middleman
|
|
3
|
+
module Presentation
|
|
4
|
+
# Simple Plugin
|
|
5
|
+
module SimplePlugin
|
|
6
|
+
extend PluginApi
|
|
7
|
+
|
|
8
|
+
add_assets(
|
|
9
|
+
path: File.expand_path('../../../../../../vendor/assets', __FILE__),
|
|
10
|
+
importable_files: ['.*\.scss']
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
add_component(
|
|
14
|
+
name: 'angular',
|
|
15
|
+
version: 'latest',
|
|
16
|
+
importable_files: ['.*\.js']
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
add_component(
|
|
20
|
+
name: 'impress.js',
|
|
21
|
+
version: 'latest',
|
|
22
|
+
importable_files: ['js/impress\.js']
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
add_helpers do
|
|
26
|
+
def test_simple_helper1
|
|
27
|
+
'test_simple_helper1'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
add_helpers Middleman::Presentation::SimplePlugin::Helpers
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/fixtures/middleman-presentation-simple_plugin/lib/middleman-presentation-simple_plugin.rb
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'middleman-presentation-simple_plugin/version'
|
|
2
|
+
require 'middleman-presentation-simple_plugin/helpers'
|
|
3
|
+
require 'middleman-presentation-simple_plugin/plugin'
|
|
4
|
+
|
|
5
|
+
module Middleman
|
|
6
|
+
module Presentation
|
|
7
|
+
# Fixture for testing
|
|
8
|
+
module SimplePlugin
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
data/fixtures/middleman-presentation-simple_plugin/middleman-presentation-simple_plugin.gemspec
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'middleman-presentation-simple_plugin/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'middleman-presentation-simple_plugin'
|
|
8
|
+
spec.version = Middleman::Presentation::SimplePlugin::VERSION
|
|
9
|
+
spec.authors = ['blub']
|
|
10
|
+
spec.email = ['eamil@examlple.com']
|
|
11
|
+
spec.summary = 'Simple plugin fixture'
|
|
12
|
+
spec.homepage = ''
|
|
13
|
+
spec.license = 'MIT'
|
|
14
|
+
|
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
18
|
+
spec.require_paths = ['lib']
|
|
19
|
+
|
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
|
21
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
22
|
+
end
|