如何调试被忽略的插件?

时间:2012-06-16 08:19:43

标签: ruby plugins jekyll

Jekyll的新人(此前在海德)。

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

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

2 个答案:

答案 0 :(得分: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 %}
    

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

  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。

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

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

    在输出网站root的“plugin_test.html”页面上。如果你看到:

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

    这意味着插件没有触发。如果遇到这种情况,我认为这表明事情非常糟糕,并建议重新安装jekyll。

答案 1 :(得分:1)

我知道我有点迟到但对于仍然遇到这个问题的其他人我想补充一下我的决议: 重新启动服务器以使新添加的插件正常工作。因此,请停止jekyll serve(Ctrl C)并使用jekyll serve重新启动它。