我使用 Octopress 作为我的博客引擎。这是完美的。但是如果有很多帖子,例如400+帖子,生成速度太慢了。
那么,有什么方法可以加快 Jekyll/Octopress 的生成速度?
谢谢。
显然,如果您只是在处理一篇文章,则无需等待整个站点生成。您正在寻找的是 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
更多信息:加快 Octopress 站点生成的提示
2013.01.08 更新:
Hexo -- 一个快速、简单、强大的博客框架,由 Node.js 提供支持。
特点:难以置信的快速 - 生成静态文件一目了然
2013.6.20 更新:
gor -- 用 Go gor 编写的静态网站和博客生成器引擎
有以下惊人的好处:1. 速度 -- 编译我在 wendal.net 上的近 200 个博客时不到 1 秒2. 简单 -- 只有编译后生成一个可执行文件,无其他依赖
您在编写时只能生成一篇文章
rake isolate[your-post]
接着
rake integrate
恢复正常。
要完全回答您的问题,您不能只生成一篇文章。你可以看到 Octopress 的第 395 期关于该主题的内容,这说明这是由于 Jekyll 方面的限制。
安装 Ruby GSL
gem install gsl
您应该注意到速度增加了。
由 Node.js 提供支持的 hexo。我正在使用它,比 Octopress 快得多。它提供了一种简单的方法,可以非常轻松地将您的文章迁移到 hexo。
遇到同样的问题,但后来不太喜欢 rake 隔离的想法。此外,内置任务不与 _drafts 工作流集成。所以我最终使用的是创建一个自定义 config.yml,其中排除了 _posts 文件夹(使用排除),并且只构建了草稿文件夹。您可以将不同的配置文件作为命令行参数传递给 jekyll。我只是在积极撰写新帖子时使用它,而在发布时使用相同的旧方法(这仍然需要一些时间)。这种方法仅构建草稿帖子,我对此很满意。
jekyll build --watch --drafts --config _previewconfig.yml
对于那些对完整工作流程感兴趣的人,请查看这里
如果您的博客有很多图像(以及其他在构建之间不会更改的静态资产),那么值得将它们从 Jekyll 的构建过程中排除,而是根据需要手动更新它们。
无论出于何种原因,Jekyll build
在处理此类资产时并不聪明。它将删除文件夹中的所有内容,并在每次构建时public
重新复制内容。如果资产没有改变,这是一种浪费。这可以通过使用诸如 Robocopy (Windows) 或 Rsync (Linux) 之类的工具来避免,这些工具只能更新已更改的内容。source
要告诉 Jekyll 忽略文件夹,请将以下内容添加到_config.yml
:
exclude: # exclude from build
- folderPath
keep-files: # do not delete/empty copy in `public`
- folderPath
然后在其他地方,使用您想要更新文件夹的任何工具。
有关您可以尝试的更多内容,请参阅此帖子。