11ty是个静态网站生成工具,因此排期发布功能,就没有动态网站管理系统那么直观。对于静态网站生成工具来说,排期发布功能,需要通过定期,或在指定日期,重新执行网站的生成操作来实现。
config.addCollection('posts', collection => {
return [...collection.getFilteredByGlob('./src/posts/*.md')]
.reverse();
});
const now = new Date();
const livePosts = p => p.date <= now;
config.addCollection('posts', collection => {
return collection.getFilteredByGlob('./src/posts/*.md')
.filter(livePosts).reverse();
});
const livePosts = p => p.date <= now && !p.data.draft;
config.addCollection('drafts', collection => {
return collection.getFilteredByGlob('./src/posts/*.md')
.filter(_ => !livePosts(_)).reverse();
});
参考文献
Sharp, Remy. “Scheduled and Draft 11ty Posts.” Remysharp.com, June 26, 2019. https://remysharp.com/2019/06/26/scheduled-and-draft-11ty-posts.