Move drafts config up to a top level directory data file so that any content file can be a draft, not just blog posts

This commit is contained in:
Zach Leatherman 2023-01-23 17:15:18 -06:00
parent f9060d7ebd
commit 25ba65a605
3 changed files with 32 additions and 31 deletions

View File

@ -3,34 +3,4 @@ module.exports = {
"posts" "posts"
], ],
"layout": "layouts/post.njk", "layout": "layouts/post.njk",
// Draft posts:
eleventyComputed: {
permalink: data => {
if(data.draft) {
// BUILD_DRAFTS is set in eleventy.config.js
if(process.env.BUILD_DRAFTS) {
return data.permalink;
}
// Always skip during non-watch/serve builds
return false;
}
return data.permalink;
},
eleventyExcludeFromCollections: data => {
if(data.draft) {
// BUILD_DRAFTS is set in eleventy.config.js
if(process.env.BUILD_DRAFTS) {
return data.eleventyExcludeFromCollections;
}
// Always exclude from non-watch/serve builds
return true;
}
return data.eleventyExcludeFromCollections;
}
},
}; };

View File

@ -0,0 +1,31 @@
module.exports = {
// Draft posts:
eleventyComputed: {
permalink: data => {
if(data.draft) {
// BUILD_DRAFTS is set in eleventy.config.js
if(process.env.BUILD_DRAFTS) {
return data.permalink;
}
// Always skip during non-watch/serve builds
return false;
}
return data.permalink;
},
eleventyExcludeFromCollections: data => {
if(data.draft) {
// BUILD_DRAFTS is set in eleventy.config.js
if(process.env.BUILD_DRAFTS) {
return data.eleventyExcludeFromCollections;
}
// Always exclude from non-watch/serve builds
return true;
}
return data.eleventyExcludeFromCollections;
}
},
};

View File

@ -57,7 +57,7 @@ module.exports = function(eleventyConfig) {
}); });
}); });
// Drafts implementation, see `content/blog/blog.11tydata.js` for additional code. // Drafts implementation, see `content/content.11tydata.js` for additional code.
// This section *could* be simplified to an environment variable in an npm script, // This section *could* be simplified to an environment variable in an npm script,
// but this way an ENV is not required and this code works cross-platform. // but this way an ENV is not required and this code works cross-platform.
eleventyConfig.addPlugin(function enableDrafts(eleventyConfig) { eleventyConfig.addPlugin(function enableDrafts(eleventyConfig) {