8

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

那么,有什么方法可以加快 Jekyll/Octopress 的生成速度?

谢谢。

4

6 回答 6

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
更多信息:加快 Octopress 站点生成的提示

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

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

于 2012-11-05T02:23:50.217 回答
1

您在编写时只能生成一篇文章

rake isolate[your-post]

接着

rake integrate

恢复正常。

要完全回答您的问题,您不能只生成一篇文章。你可以看到 Octopress 的第 395 期关于该主题的内容,这说明这是由于 Jekyll 方面的限制。

于 2013-02-11T09:20:29.930 回答
1

安装 Ruby GSL

gem install gsl 

您应该注意到速度增加了。

于 2012-11-26T20:30:29.573 回答
1

由 Node.js 提供支持的 hexo。我正在使用它,比 Octopress 快得多。它提供了一种简单的方法,可以非常轻松地将您的文章迁移到 hexo。

于 2013-01-22T03:33:49.053 回答
0

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

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

对于那些对完整工作流程感兴趣的人,请查看这里

于 2016-01-20T12:41:22.763 回答
0

如果您的博客有很多图像(以及其他在构建之间不会更改的静态资产),那么值得将它们从 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

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


有关您可以尝试的更多内容,请参阅此帖子

于 2020-08-18T21:25:42.230 回答