[英]Custom Jekyll Plugin (Liquid Filter?) rendering script tags as text, not as JavaScript
[英]Jekyll/Liquid: Create custom tag/filter with parameters
我正在嘗試為我的基於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}
}
紅寶石代碼如下:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.