我正在使用plugin来计算基于Google Analytics的帖子和网页的网页浏览量。要显示页面查看计数,我使用的是Liquid标签{% pageview %}
。有没有办法将这些数据添加到YAML前端,所以可以通过类似{{ 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标签将此数据合并到帖子的数据(集合中的文档)?并通过{{ page.views }}
使用。
答案 0 :(得分:1)
您可以使用generator plugin在帖子或页面中添加一些data['views']
。
答案 1 :(得分:1)
以下是我制作的插件的代码:
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