当我运行jekyll
生成我的站点时,它会重新生成每个页面。我如何告诉它只生成新的或已更改的页面?
或者,我在做什么让 Jekyll 认为它需要重新创建每个页面?
Jekyll 每次运行时都会自动重新生成整个站点——这就是它的工作原理。但是,我相信如果您传递标志,它只会重新生成更改的文件:
--watch
如:
jekyll build --watch
注意:jekyll build --watch
旧版本的 jekyll 使用jekyll --auto
.
正如 mipadi 所说,Jekyll 在编译时会重新生成整个站点。然而,--auto
标志使它编译整个事情,总是。
这样做是因为,正如 elithrar 所说,每个帖子/页面都可以相互依赖,并且因为这一切都是在编译时决定的,所以它不能像在 WordPress 或 Tumblr 中那样动态生成。因此,为了避免断开的链接,一切都会重新生成。
从长远来看,这可能是个问题。例如,非常大的站点(>1000 个帖子)报告启用 LSI 的编译时间非常长,最近通过一些配置选项解决了这个问题。还有其他问题,即如果您正在处理 CSS/JS(或 LESS、SASS、CoffeeScript,请做我的客人),您为什么要重新创建整个事情?
这是Jekyll 的 issue list上的一个反复讨论,所以如果你们能想到一个好的解决方案,请在此处发布。
但是,真心的?如果您的网站足够小,就让它重新生成所有内容。这种方式要简单得多。
为了加快本地开发,您可以使用--limit_posts NUM
限制要解析的帖子数量。这可以为拥有大量帖子的网站节省大量时间。
请参阅 https://jekyllrb.com/docs/configuration/#build-command-options