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.