如何加速Jekyll / Octopress一代?

时间:2012-11-04 09:20:39

标签: ruby jekyll octopress

我正在使用Octopress作为我的博客引擎。这是完美的。但如果有很多帖子,例如400多个帖子,那么生成速度太慢了。

那么,有没有办法加速Jekyll / Octopress的产生?

感谢。

6 个答案:

答案 0 :(得分:3)

显然,如果您只是在处理一个帖子,则无需等待整个站点生成。您正在寻找的是rake isolate [partial_post_name]任务 使用rake isolate,您只能“隔离”您正在处理的帖子,并将所有其他帖子移至source/_stash文件夹。 partial_post_name参数只是帖子文件名中的一些单词。例如,如果我想从前面的例子中隔离帖子,我会使用

rake isolate[plain-english]  

这会将所有其他帖子移至source/_stash,并仅将2011-09-29-just-type-the-title-of-the-post-here-in-plain-english.markdown帖子保留在source/_posts中。您也可以在运行rake preview时执行此操作。它只会检测到一个巨大的变化,并且从那时起只会重新生成一个帖子。

@Pavan Podila
更多信息:Tips for Speeding Up Octopress Site Generation

2013.01.08更新:
Hexo - 快速,简单&强大的博客框架,由Node.js提供支持 特点:令人难以置信的快速 - 一目了然地生成静态文件

2013.6.20更新:
gor - Go Go编写的静态网站和博客生成器引擎 gor有以下很棒的好处: 1。速度 - 在wendal.net上编辑所有近200个博客时不到1秒 2.简单 - 编译后只生成一个可执行文件,没有其他依赖

答案 1 :(得分:1)

安装Ruby GSL

gem install gsl 

你应该注意到速度的提升。

答案 2 :(得分:1)

由Node.js提供支持的

hexo我使用它,比Octopress快得多。它提供了一种简单的方法,可以非常轻松地将文章迁移到hexo。

答案 3 :(得分:1)

使用

编写时,您只能生成一个帖子
rake isolate[your-post]

然后

rake integrate

恢复正常。

要完全回答您的问题,只能生成一个帖子。您可以在该主题上看到Octopress'Issue #395,这解释了这是由于Jekyll方面的限制。

答案 4 :(得分:0)

达到了同样问题的这篇文章,但后来不太喜欢rake isolate的想法。内置任务也未与_drafts工作流集成。 所以我最终使用的是创建一个自定义的config.yml,其中排除了_posts文件夹(使用排除)并且只构建了草稿文件夹。您可以将不同的配置文件作为命令行参数传递给jekyll。我刚刚在积极撰写新帖子时使用了这个,而发布则使用相同的旧方法(这仍然需要一些时间)。这种方法只建立了草案,我很擅长。

jekyll build --watch --drafts --config _previewconfig.yml

对于那些对完整工作感兴趣的人,请看一下here

答案 5 :(得分:0)

如果您的博客中包含很多图像(以及其他静态资产在构建之间不会更改),则值得将它们从Jekyll的构建过程中排除,而是根据需要手动更新。

无论出于何种原因,Jekyll build在处理此类资产时都不聪明。它将删除public文件夹中的所有内容,并在每次构建时source 次重新复制内容。如果资产没有更改,这很浪费。可以使用Robocopy(Windows)或Rsync(Linux)之类的工具来避免这种情况,该工具只能更新已更改的内容。

要告诉Jekyll忽略文件夹,请将以下内容添加到_config.yml

exclude:     # exclude from build
  - folderPath
keep-files:  # do not delete/empty copy in `public`
  - folderPath

然后在其他地方,使用您想要更新文件夹的任何工具。


要尝试更多操作,请参见this post