Skip to content

Commit

Permalink
Make searchyll into a hook
Browse files Browse the repository at this point in the history
  • Loading branch information
allizad committed May 7, 2016
1 parent d6270d4 commit 46d0232
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 8 deletions.
33 changes: 31 additions & 2 deletions lib/searchyll.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
require "searchyll/version"

require "jekyll/hooks"
require "jekyll/plugin"
require "jekyll/generator"
require "searchyll/configuration"
require "searchyll/indexer"
require "nokogiri"

begin
indexers = {}

Jekyll::Hooks.register(:site, :pre_render) do |site|
config = Searchyll::Configuration.new(site)
indexers[site] = Searchyll::Indexer.new(config)
indexers[site].start
end

Jekyll::Hooks.register :site, :post_render do |site|
indexers[site].finish
end

Jekyll::Hooks.register :posts, :post_render do |post|
# strip html
nokogiri_doc = Nokogiri::HTML(post.output)

indexer = indexers[post.site]
indexer << post.data.merge({
id: post.id,
text: nokogiri_doc.xpath("//article//text()").to_s.gsub(/\s+/, " ")
})
end

require "searchyll/generator"
rescue => e
puts e.message
end
14 changes: 9 additions & 5 deletions lib/searchyll/generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,15 @@ def generate(site)

# Iterate through the site contents and send to indexer
# TODO: what are we indexing?
site.posts.each do |doc|
indexer << doc.data.merge({
id: doc.id,
content: doc.content
})
# site.posts.each do |doc|
# indexer << doc.data.merge({
# id: doc.id,
# content: doc.content
# })
# end

Jekyll::Hooks.register :posts, :post_render do |post|
puts post.output
end

# Signal to the indexer that we're done adding content
Expand Down
3 changes: 2 additions & 1 deletion searchyll.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec"
spec.add_development_dependency "guard-rspec"
spec.add_development_dependency "jekyll"
spec.add_development_dependency "jekyll", ">=3.0"

spec.add_dependency "elasticsearch-ruby"
spec.add_dependency "nokogiri"

end

0 comments on commit 46d0232

Please sign in to comment.