2012-08-07 61 views
3

当我运行jekyll生成我的网站时,它会重新生成每一页。我如何告诉它只生成新的或已更改的页面?Jekyll每次重新编译每一页

替代地,我在做什么使Jekyll认为它需要重新创建每一页?

回答

6

Jekyll每次运行时都会自动重新生成整个站点 - 这就是它的工作原理。但是,我相信,如果你传递的标志也只会重新修改过的文件:

--watch 

为:

jekyll build --watch 

注:不是jekyll build --watch,旧版本的哲基尔使用jekyll --auto的。

+1

为了扩大这一点,它的原因重新生成*默认情况下所有的*文件是一些“不变”的文件最终可能会与旧链接,和/或您的分页(你的博客索引)可能关闭。 – elithrar 2012-08-23 02:06:03

+4

这个网站崩溃之前网站有多大? – 2012-08-23 05:25:30

+0

'--auto'已被重命名为'--watch'在1.0+ – ivotron 2013-07-27 06:57:42

2

正如mipadi所说,Jekyll编译它时重新生成整个网站。但是,--auto标志使其编译整个事情,总是

这样做是因为,正如elithrar所说,每个帖子/页面都可以相互依赖,并且因为它都是在编译期间决定的,所以不能像在WordPress或Tumblr中一样快速生成。所以,为了避免断开链接,一切都会重新生成。

从长远来看,这可能会有问题。例如,非常大的站点(> 1000个帖子)在启用LSI的情况下报告编译时间非常长,最近有一些配置选项解决了这个问题。还有其他问题,即如果你正在处理CSS/JS(或LESS,SASS,CoffeeScript,做我的客人),为什么你会重新创建整个事情?

这是关于Jekyll's issue list的反复讨论,所以如果你们能想到一个好的解决方案,请将它发布到那里。

但是,真诚吗?如果您的网站足够小,只需让它重新生成一切。这种方式更简单。