7

这里是 Jekyll 的新人(之前在海德)。

  • 放置在 _plugins/ 目录中的 Ruby 文件显然会被忽略。
  • 我在 Ubuntu 12.04 上使用 0.11.2 版的 Jekyll,以及 ruby​​ 1.8.7。

是否应该添加额外的配置参数来加载这些插件?文档没有这么说 - 理智的默认值应该是查看_plugins,它们应该是自动需要的。如何调试 Jekyll 插件的加载?

4

2 回答 2

2

对于我的 jekyll 实例(也是 0.11.2,但在 Mac 上使用 ruby​​ 1.9.2p290),我不必添加任何额外的配置,但您可以尝试将以下行添加到顶层“_config.yml”文件。

plugins:     _plugins

或者,可能,

plugins:     ./_plugins

测试您的插件是否正常工作的最简单方法是删除所有插件,除了您知道可以工作的插件。我汇总了以下内容,这些内容在我的安装中按预期工作。

  1. 在 jekyll 源目录的根目录中创建一个名为“plugin_test.md”的新文件,其内容如下:

    ---
    layout: default
    title: Plugin Test
    ---
    
    the quick brown fox jumps over the lazy dog.
    
    Testing plugin output of '_plugins/testplugin.rb': {% testplugin %}
    

    请注意,您可能需要将“布局:默认”更改为您实际使用的任何内容。

  2. 在“_plugins/testplugin.rb”创建一个新文件,内容如下:

    module Jekyll
      class TestPlugin < Liquid::Tag
        def render(context)
          "It's Working!"
        end
      end
    end
    
    Liquid::Template.register_tag('testplugin', Jekyll::TestPlugin)
    
  3. 在源目录上运行 jekyll。

testplugin.rb 所做的只是用{% testplugin %}文本“它正在工作!”替换液体标签的实例。如果您的插件正在触发,您将看到输出

Testing plugin output of '_plugins/testplugin.rb': It's Working!" 

在输出站点根目录的“plugin_test.html”页面上。如果你看到:

Testing plugin output of '_plugins/testplugin.rb':

这意味着插件没有触发。如果您遇到这种情况,我认为这表明某些东西很不正常,并且建议您重新安装 jekyll。

于 2012-06-21T00:21:36.677 回答
1

我知道我有点晚了,但对于仍然遇到这个问题的其他人,我想添加我的解决方案:重新启动服务器以使新添加的插件正常工作。所以停止jekyll serve(Ctrl C) 并用 重新启动它jekyll serve

于 2016-07-15T21:36:53.210 回答