gpt4 book ai didi

ruby - 哲基尔/液体 : Create custom tag/filter with parameters

转载 作者:行者123 更新时间:2023-12-05 04:06:29 26 4
gpt4 key购买 nike

我正在尝试为我的基于 Jekyll 的站点编写一个自定义标签,该站点接收一个 bibtex 字符串并替换/删除一些内容。

标签接收这样的 bibtex 字符串:

@article{heineman2001component,
title={Component-based software engineering},
author={Heineman, George T and Councill, William T},
journal={Putting the pieces together},
pages={5},
year={2001}
}

ruby 代码如下:

module Jekyll
class RenderBibTag < Liquid::Tag
def initialize(tag_name, input, tokens)
super
@input = input
end

def render(context)
output = (@input)#.gsub(/\bjournal\b[\w\s= \{\-\.\,\(\)]+\},/,'')
return output;
end
end
end

Liquid::Template.register_tag('render_bib', Jekyll::RenderBibTag)

如下使用 Jekyll 模板中的标签可以正常工作

{%render_bib bibstring %} #bibstring is the string above

当我尝试使用 Jekyll 变量时(例如,具有 bibtex 字符串的 page.bibtex)

{%render_bib page.bibtex %} 

它不识别/传递字符串。

有什么想法吗?

最佳答案

我找到的解决方案是使用过滤器而不是标签

(第一次回答自己的问题)

module Jekyll
module BibFilter
REGEXP = /\bjournal\b[\w\s= \{\-\.\,\(\)\-\:\+\'\/\..]+\},?/

def bibFilter(bib)
#filter text using regexp
str = "#{bib}".gsub(REGEXP,'')
#print filtered text
"#{str}"
end
end
end

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

关于ruby - 哲基尔/液体 : Create custom tag/filter with parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49815730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com