91 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Gherkin
		
	
	
	
| Feature: Layout data
 | |
|   As a hacker who likes to avoid repetition
 | |
|   I want to be able to embed data into my layouts
 | |
|   In order to make the layouts slightly dynamic
 | |
| 
 | |
|   Scenario: Use custom layout data
 | |
|     Given I have a _layouts directory
 | |
|     And I have a "_layouts/999.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       ---
 | |
|       {{ content }} layout content
 | |
|       """
 | |
|     And I have an "index.html" page with layout "custom" that contains "page content"
 | |
|     And I have an "index.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       layout: 999
 | |
|       ---
 | |
|       page content
 | |
|       """
 | |
|     When I run jekyll build
 | |
|     Then the "_site/index.html" file should exist
 | |
|     And I should see "page content layout content" in "_site/index.html"
 | |
| 
 | |
|   Scenario: Use custom layout data
 | |
|     Given I have a _layouts directory
 | |
|     And I have a "_layouts/custom.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       foo: my custom data
 | |
|       ---
 | |
|       {{ content }} foo: {{ layout.foo }}
 | |
|       """
 | |
|     And I have an "index.html" page with layout "custom" that contains "page content"
 | |
|     When I run jekyll build
 | |
|     Then the "_site/index.html" file should exist
 | |
|     And I should see "page content\n foo: my custom data" in "_site/index.html"
 | |
| 
 | |
|   Scenario: Inherit custom layout data
 | |
|     Given I have a _layouts directory
 | |
|     And I have a "_layouts/custom.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       layout: base
 | |
|       foo: my custom data
 | |
|       ---
 | |
|       {{ content }}
 | |
|       """
 | |
|     And I have a "_layouts/base.html" file with content:
 | |
|       """
 | |
|       {{ content }} foo: {{ layout.foo }}
 | |
|       """
 | |
|     And I have an "index.html" page with layout "custom" that contains "page content"
 | |
|     When I run jekyll build
 | |
|     Then the "_site/index.html" file should exist
 | |
|     And I should see "page content\n foo: my custom data" in "_site/index.html"
 | |
| 
 | |
|   Scenario: Inherit custom layout data and clear when not present
 | |
|     Given I have a _layouts directory
 | |
|     And I have a "_layouts/default.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       bar: i'm default
 | |
|       ---
 | |
|       {{ content }} foo: '{{ layout.foo }}' bar: '{{ layout.bar }}'
 | |
|       """
 | |
|     And I have a "_layouts/special.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       layout: default
 | |
|       foo: my special data
 | |
|       bar: im special
 | |
|       ---
 | |
|       {{ content }}
 | |
|       """
 | |
|     And I have a "_layouts/page.html" file with content:
 | |
|       """
 | |
|       ---
 | |
|       layout: default
 | |
|       bar: im page
 | |
|       ---
 | |
|       {{ content }}
 | |
|       """
 | |
|     And I have an "index.html" page with layout "special" that contains "page content"
 | |
|     And I have an "jekyll.html" page with layout "page" that contains "page content"
 | |
|     When I run jekyll build
 | |
|     Then the "_site/index.html" file should exist
 | |
|     And I should see "page content\n foo: 'my special data' bar: 'im special'" in "_site/index.html"
 | |
|     And I should see "page content\n foo: '' bar: 'im page'" in "_site/jekyll.html"
 |