pockethost/packages/lander/eleventy.config.drafts.js
2024-06-05 10:15:29 -07:00

58 lines
1.7 KiB
JavaScript

function eleventyComputedPermalink() {
// When using `addGlobalData` and you *want* to return a function, you must nest functions like this.
// `addGlobalData` acts like a global data file and runs the top level function it receives.
return (data) => {
// Always skip during non-watch/serve builds
if (data.draft && !process.env.BUILD_DRAFTS) {
return false
}
return data.permalink
}
}
function eleventyComputedExcludeFromCollections() {
// When using `addGlobalData` and you *want* to return a function, you must nest functions like this.
// `addGlobalData` acts like a global data file and runs the top level function it receives.
return (data) => {
// Always exclude from non-watch/serve builds
if (data.draft && !process.env.BUILD_DRAFTS) {
return true
}
return data.eleventyExcludeFromCollections
}
}
module.exports.eleventyComputedPermalink = eleventyComputedPermalink
module.exports.eleventyComputedExcludeFromCollections =
eleventyComputedExcludeFromCollections
module.exports = (eleventyConfig) => {
eleventyConfig.addGlobalData(
'eleventyComputed.permalink',
eleventyComputedPermalink,
)
eleventyConfig.addGlobalData(
'eleventyComputed.eleventyExcludeFromCollections',
eleventyComputedExcludeFromCollections,
)
let logged = false
eleventyConfig.on('eleventy.before', ({ runMode }) => {
let text = 'Excluding'
// Only show drafts in serve/watch modes
if (runMode === 'serve' || runMode === 'watch') {
process.env.BUILD_DRAFTS = true
text = 'Including'
}
// Only log once.
if (!logged) {
console.log(`[11ty/eleventy-base-blog] ${text} drafts.`)
}
logged = true
})
}