0

Jekyll 正在我的本地机器(OS X 10.7.4,ruby 1.9.3)上处理我的 _plugins 文件夹,但它没有在服务器上处理它们(Ubuntu 12.04,ruby 1.9.3)。两者都安装了相同版本的 Jekyll (0.11.2)。

我正在尝试使用 generate_sitemap 插件,在这里

我正在通过 git 和 post-receive 挂钩进行部署,如下所示:

#!/bin/bash -l

GIT_REPO=/my_repo.git
TMP_GIT_CLONE=/my_temp_folder/
PUBLIC_WWW=/my_public_folder/

git clone $GIT_REPO $TMP_GIT_CLONE
jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

我在部署时看到此错误:

remote: /home/ed/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.

但是,根据我的阅读,这是一个 Maruku 警告,与插件无关。

有人对我可以尝试解决的问题有任何想法吗?我有点不知所措。

4

3 回答 3

5

Jekyll 很难调试,但它是一个很棒的工具!!!

我假设您的 _plugins 文件夹中有多个插件。

所以也许你的一个或一些插件会导致问题。

如果我是对的,您可以执行以下操作:

  • 杀死你的杰基尔
  • 在另一个位置(不在 _plugins 文件夹中)创建插件的备份。
  • 在你的 _plugins 文件夹中只留下一个插件并启动 Jekyll。
  • 如果可行,请将另一个插件复制到 _plugins 文件夹,直到找到无法通过 Jekyll 的插件。

当您找到它时,您可以将调试打印输出添加到有问题的插件中(这就是我所做的)。

类似的东西: 放“之前......”

我仅使用 Jekyll 构建了http://www.cloudifysource.org/,您可以在我们的 GitHub 存储库中找到并使用我们的许多有用示例:https ://github.com/CloudifySource/cloudifysource.github.com

于 2012-07-24T07:44:06.857 回答
2

当从 post-receive 钩子调用时,我遇到了 Jekyll 不加载插件的同样问题。

正如上面评论中提到的,将当前工作目录更改为可以$TMP_GIT_CLONE解决问题。

您不必更改 _config.yml 中的任何内容。

#!/bin/bash -l

GIT_REPO=/my_repo.git
TMP_GIT_CLONE=/my_temp_folder/
PUBLIC_WWW=/my_public_folder/

git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE                             # move to the temp dir
jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW
cd                                            # move back to allow deletion
rm -Rf $TMP_GIT_CLONE
exit

这是一个真正令人头疼的问题,因为 git 用户工作得很好,所以手动执行原始的 post-receive 钩子......无论如何,Jekyll 现在正在我的服务器上加载插件,希望这是一个正确的答案将帮助其他人找到这个解决方案。

于 2012-12-13T22:44:44.260 回答
1

最近,我开始用 jekyll构建https://github.com/alswl/code-standards-jekyll 。我在 中写了两个插件_plugins,发现很难调试。

起初,我用puts "balabala"调试,它似乎工作。但是一旦我遇到在文件夹中没有生成任何东西的问题_site,并且控制台中没有'balabala',我很恐慌。

在我阅读了 jekyll 源码后,我尝试设置auto=false_config.yml运行 jekyll 会产生一些调试跟踪堆栈错误。感谢上帝。

因此,uesauto=false将帮助您调试插件。

于 2012-08-04T03:01:48.727 回答