Merge pull request #4312 from jekyll/fix-layout-metadata
Merge pull request 4312
This commit is contained in:
commit
e097a15657
|
@ -0,0 +1,18 @@
|
||||||
|
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/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"
|
|
@ -62,10 +62,14 @@ module Jekyll
|
||||||
# and the key matches a method in which case it raises a
|
# and the key matches a method in which case it raises a
|
||||||
# DropMutationException.
|
# DropMutationException.
|
||||||
def []=(key, val)
|
def []=(key, val)
|
||||||
if self.class.mutable
|
if respond_to?("#{key}=")
|
||||||
@mutations[key] = val
|
public_send("#{key}=", val)
|
||||||
elsif respond_to? key
|
elsif respond_to? key
|
||||||
raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
|
if self.class.mutable
|
||||||
|
@mutations[key] = val
|
||||||
|
else
|
||||||
|
raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
|
||||||
|
end
|
||||||
else
|
else
|
||||||
fallback_data[key] = val
|
fallback_data[key] = val
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue