如何在 Jekyll 中将 Liquid 标签添加到 YAML 前端?
How to add a Liquid tag into YAML front matter in Jekyll?
我正在使用 plugin 计算 post 的页面浏览量和基于 Google 分析的页面。为了显示页面浏览量,我使用了 Liquid 标签 {% pageview %}
。有什么方法可以将此数据添加到 YAML front matter,以便可以通过 {{ page.views }}
?
之类的方式在其他页面上的流行 post 列表中访问它
这是插件中 Liquid 标签的代码:
class PageViewTag < Liquid::Tag
def initialize(name, marker, token)
@params = Hash[*marker.split(/(?:: *)|(?:, *)/)]
super
end
def render(context)
site = context.environments.first['site']
if !site['page-view']
return ''
end
post = context.environments.first['post']
if post == nil
post = context.environments.first['page']
if post == nil
return ''
end
end
pv = post['_pv']
if pv == nil
return ''
end
html = pv.to_s.reverse.gsub(/...(?=.)/,"\&\u2009").reverse
return html
end #render
end # PageViewTag
我如何才能不注册 Liquid 标签,而是将此数据合并到 post(集合中的文档)的数据中?并通过 {{ page.views }}
.
使用
您可以使用 generator plugin 向您的帖子或页面添加一些 data['views']
。
这是我制作的插件的代码:
require 'jekyll'
module Jekyll
class PageviewsData < Jekyll::Generator
safe :true
priority :low
def generate(site)
# require ga-page-view plugin
if !site.config['page-view']
return
end
site.collections.each do |label, collection|
collection.docs.each { |doc|
pv = doc.data['_pv']
views = pv.to_s.reverse.gsub(/...(?=.)/,"\&\u2009").reverse
doc.data.merge!('views' => views)
}
end
end
end
end
我正在使用 plugin 计算 post 的页面浏览量和基于 Google 分析的页面。为了显示页面浏览量,我使用了 Liquid 标签 {% pageview %}
。有什么方法可以将此数据添加到 YAML front matter,以便可以通过 {{ page.views }}
?
这是插件中 Liquid 标签的代码:
class PageViewTag < Liquid::Tag
def initialize(name, marker, token)
@params = Hash[*marker.split(/(?:: *)|(?:, *)/)]
super
end
def render(context)
site = context.environments.first['site']
if !site['page-view']
return ''
end
post = context.environments.first['post']
if post == nil
post = context.environments.first['page']
if post == nil
return ''
end
end
pv = post['_pv']
if pv == nil
return ''
end
html = pv.to_s.reverse.gsub(/...(?=.)/,"\&\u2009").reverse
return html
end #render
end # PageViewTag
我如何才能不注册 Liquid 标签,而是将此数据合并到 post(集合中的文档)的数据中?并通过 {{ page.views }}
.
您可以使用 generator plugin 向您的帖子或页面添加一些 data['views']
。
这是我制作的插件的代码:
require 'jekyll'
module Jekyll
class PageviewsData < Jekyll::Generator
safe :true
priority :low
def generate(site)
# require ga-page-view plugin
if !site.config['page-view']
return
end
site.collections.each do |label, collection|
collection.docs.each { |doc|
pv = doc.data['_pv']
views = pv.to_s.reverse.gsub(/...(?=.)/,"\&\u2009").reverse
doc.data.merge!('views' => views)
}
end
end
end
end