Sha256: cf822dde2dcd0a488f8123f2c97017fb5a851113e4b7f551dfb94fecdf27de02
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
module Jekyll class RelatedPosts class << self attr_accessor :lsi end attr_reader :post, :site def initialize(post) @post = post @site = post.site require 'classifier' if site.lsi end def build return [] unless self.site.posts.size > 1 if self.site.lsi build_index lsi_related_posts else most_recent_posts end end def build_index self.class.lsi ||= begin lsi = Classifier::LSI.new(:auto_rebuild => false) display("Populating LSI...") self.site.posts.each do |x| lsi.add_item(x) end display("Rebuilding index...") lsi.build_index display("") lsi end end def lsi_related_posts self.class.lsi.find_related(post.content, 11) - [self.post] end def most_recent_posts (self.site.posts - [self.post])[0..9] end def display(output) $stdout.print("\n") $stdout.print(Jekyll.logger.formatted_topic(output)) $stdout.flush end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jekyll-1.0.4 | lib/jekyll/related_posts.rb |
jekyll-1.0.3 | lib/jekyll/related_posts.rb |