diff --git a/src/Page.js b/src/Page.js index 0619285692..ace8bf19b0 100644 --- a/src/Page.js +++ b/src/Page.js @@ -399,8 +399,8 @@ Page.prototype.collectFrontMatter = function (includedPage) { this.frontMatter.src = this.src; // Title specified in site.json will override title specified in front matter this.frontMatter.title = (this.title || this.frontMatter.title || ''); - // Layout specified in front matter will override layout specified in site.json - this.frontMatter.layout = (this.frontMatter.layout || this.layout || ''); + // Layout specified in site.json will override layout specified in the front matter + this.frontMatter.layout = (this.layout || this.frontMatter.layout || LAYOUT_DEFAULT_NAME); } else { // Page is addressable but no front matter specified this.frontMatter = { diff --git a/src/Site.js b/src/Site.js index 9460f53082..e49cd2ccf8 100644 --- a/src/Site.js +++ b/src/Site.js @@ -602,7 +602,7 @@ Site.prototype.generatePages = function () { faviconUrl, pageSrc: page.src, title: page.title, - layout: page.layout || LAYOUT_DEFAULT_NAME, + layout: page.layout, searchable: page.searchable !== 'no', })); } else { @@ -610,7 +610,7 @@ Site.prototype.generatePages = function () { faviconUrl, pageSrc: page.src, title: page.title, - layout: page.layout || LAYOUT_DEFAULT_NAME, + layout: page.layout, searchable: page.searchable !== 'no', })); } diff --git a/test/test_site/expected/siteData.json b/test/test_site/expected/siteData.json index 4bb7e860ab..4c6c6bb697 100644 --- a/test/test_site/expected/siteData.json +++ b/test/test_site/expected/siteData.json @@ -62,8 +62,8 @@ "footer": "footer.md", "siteNav": "site-nav.md", "head": "myCustomHead.md, myCustomHead2.md", - "layout": "default", - "src": "index.md" + "src": "index.md", + "layout": "default" }, { "headings": {}, @@ -73,12 +73,21 @@ }, { "headings": { - "uses-a-layout": "Uses a layout" + "uses-a-front-matter-layout": "Uses a front matter layout" + }, + "title": "Hello World", + "head": "overwriteLayoutHead.md", + "layout": "testLayout", + "src": "testLayouts.md" + }, + { + "headings": { + "uses-a-site.json-layout%2C-overriding-front-matter": "Uses a site.json layout, overriding front matter" }, "title": "Hello World", "head": "overwriteLayoutHead.md", - "src": "testLayouts.md", - "layout": "testLayout" + "layout": "testLayout", + "src": "testLayoutsOverride.md" }, { "headings": { diff --git a/test/test_site/expected/testLayouts.html b/test/test_site/expected/testLayouts.html index 0239f6dd38..81de1395b2 100644 --- a/test/test_site/expected/testLayouts.html +++ b/test/test_site/expected/testLayouts.html @@ -34,7 +34,7 @@
diff --git a/test/test_site/expected/testLayoutsOverride.html b/test/test_site/expected/testLayoutsOverride.html new file mode 100644 index 0000000000..0a292379d5 --- /dev/null +++ b/test/test_site/expected/testLayoutsOverride.html @@ -0,0 +1,58 @@ + + + + + + + +