0

我正在使用一个插件来计算基于谷歌分析的帖子和页面的页面浏览量。为了显示页面查看次数,我使用了 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 }}.

4

2 回答 2

1

您可以使用生成器插件将一些内容添加data['views']到您的帖子或页面中。

于 2015-08-17T10:35:04.417 回答
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
于 2015-08-17T19:19:51.020 回答