将多个参数传递给jekyll中的自定义插件

格努乔

我正在与jekyll一起制作一个网站。
然后,我使用构建了内容插件的自定义表格ruby

这是代码

require 'nokogiri'

module Jekyll

  module TOCGenerator
    TOC_CONTAINER_HTML = '<ul>%1</ul>'

    def toc(html,op)
      toc_top_tag = "h1"
      item_number = 0
      toc_html = ''
      sub_url = html['url']

      doc = Nokogiri::HTML(html['content'])
      doc.css(toc_top_tag).each do |tag|
        toc_html += create_level_html(sub_url, tag['id'], tag.text)
        item_number += 1
      end

      return '' unless item_number > 0

      if 0 < item_number
        toc_table = TOC_CONTAINER_HTML
        .gsub('%1', toc_html)
      end
    end

    private
    def create_level_html(url, anchor_id, tocText)
      link = '<a href="%1#%2">%3</a>'
      .gsub('%1', url)
      .gsub('%2', anchor_id.to_s)
      .gsub('%3', tocText)
      '<li>%1</li>'
      .gsub('%1', link)
    end
  end
end

Liquid::Template.register_filter(Jekyll::TOCGenerator)

并在一些文件中

<div>
{{ page | toc }}
</div>

效果很好。

为了增强其功能,我想向render添加一些参数toc所以我像这样添加了函数的参数头。

def toc(html,option)

但是当我在jekyll模板中调用函数时,会出现这样的错误

  Liquid Exception: Liquid error (line 41): wrong number of arguments (given 1, expected 2) in /_layouts/default.html

我也试过{{ (three,1) | toc }}{{ three, 1 | toc }}{{ three | 1 | toc }}调用函数以2个参数,但结果turend了同样的方式。

我怎么用多个参数在jekyll中调用fucntion?

提前致谢。

汤姆·斯洛明斯基

这个答案不太可能与原始海报有关,但是如果有人像我一样从Google来到这里,这就是我的解决方法。

插件代码:

module Jekyll
  module YourFilter
    def yourFilter( input, arg1, arg2 )
      # your code
    end
  end
end

Liquid::Template.register_filter(Jekyll::YourFilter)

您内容中的标记代码:

{{ 'Lorem ipsum' | yourFilter: 'argument 1', 'argument 2' }}

关键是标签代码中的过滤器名称后面有一个分号。这似乎允许插件解析多个参数,而不仅仅是最后一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义参数传递给Phonegap插件

来自分类Dev

将多个逗号分隔的参数传递给自定义<<运算符

来自分类Dev

将参数传递给.isl文件中定义的自定义消息

来自分类Dev

将参数传递给自定义异常

来自分类Dev

将参数传递给自定义中间件

来自分类Dev

如何将参数传递给自定义操作?

来自分类Dev

将参数传递给自定义UITableViewCell

来自分类Dev

将参数传递给自定义组件

来自分类Dev

将事件参数传递给自定义指令

来自分类Dev

将外部参数传递给自定义视图

来自分类Dev

将参数传递给Kotlin中的自定义吸气剂

来自分类Dev

如何将参数传递给DOJO中的自定义小部件?

来自分类Dev

如何将参数输入传递给R中的自定义函数?

来自分类Dev

将额外的参数传递给AngularJS中的自定义排序功能

来自分类Dev

将参数传递给cakephp 3.x中的自定义查找方法

来自分类Dev

将额外的参数传递给AngularJS中的自定义排序功能

来自分类Dev

如何将函数作为参数传递给Javascript中的自定义函数

来自分类Dev

如何将参数输入传递给R中的自定义函数?

来自分类Dev

将 kwargs 传递给 Django 中的自定义字段

来自分类Dev

在线crm动态,将自定义url参数传递给插件

来自分类Dev

自定义转换后如何将内容传递给jekyll默认转换器?

来自分类Dev

如何将Windows工作流的参数中参数传递给自定义代码活动属性?

来自分类Dev

是否可以将单选按钮列表作为asp.net中的参数传递给自定义类中的方法

来自分类Dev

将参数传递到自定义的Rails路线中

来自分类Dev

将默认参数和自定义参数传递给槽函数

来自分类Dev

如何将参数传递给自定义事件侦听器并防止reactjs中的默认设置?

来自分类Dev

是否可以通过DITA-OT将自定义ANT参数传递到自定义插件中?

来自分类Dev

对于C ++ sort(),如何将参数传递给自定义比较函数?

来自分类Dev

Omnipay-如何将“自定义”或“发票”参数传递给Paypal?

Related 相关文章

  1. 1

    将自定义参数传递给Phonegap插件

  2. 2

    将多个逗号分隔的参数传递给自定义<<运算符

  3. 3

    将参数传递给.isl文件中定义的自定义消息

  4. 4

    将参数传递给自定义异常

  5. 5

    将参数传递给自定义中间件

  6. 6

    如何将参数传递给自定义操作?

  7. 7

    将参数传递给自定义UITableViewCell

  8. 8

    将参数传递给自定义组件

  9. 9

    将事件参数传递给自定义指令

  10. 10

    将外部参数传递给自定义视图

  11. 11

    将参数传递给Kotlin中的自定义吸气剂

  12. 12

    如何将参数传递给DOJO中的自定义小部件?

  13. 13

    如何将参数输入传递给R中的自定义函数?

  14. 14

    将额外的参数传递给AngularJS中的自定义排序功能

  15. 15

    将参数传递给cakephp 3.x中的自定义查找方法

  16. 16

    将额外的参数传递给AngularJS中的自定义排序功能

  17. 17

    如何将函数作为参数传递给Javascript中的自定义函数

  18. 18

    如何将参数输入传递给R中的自定义函数?

  19. 19

    将 kwargs 传递给 Django 中的自定义字段

  20. 20

    在线crm动态,将自定义url参数传递给插件

  21. 21

    自定义转换后如何将内容传递给jekyll默认转换器?

  22. 22

    如何将Windows工作流的参数中参数传递给自定义代码活动属性?

  23. 23

    是否可以将单选按钮列表作为asp.net中的参数传递给自定义类中的方法

  24. 24

    将参数传递到自定义的Rails路线中

  25. 25

    将默认参数和自定义参数传递给槽函数

  26. 26

    如何将参数传递给自定义事件侦听器并防止reactjs中的默认设置?

  27. 27

    是否可以通过DITA-OT将自定义ANT参数传递到自定义插件中?

  28. 28

    对于C ++ sort(),如何将参数传递给自定义比较函数?

  29. 29

    Omnipay-如何将“自定义”或“发票”参数传递给Paypal?

热门标签

归档