我正在使用Octopress作为我的博客引擎。这是完美的。但如果有很多帖子,例如400多个帖子,那么生成速度太慢了。
那么,有没有办法加速Jekyll / Octopress的产生?
感谢。
答案 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)
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。