Jekyll + indextank = static websites with fulltext search

For a while I have been wanting to write a Jekyll plugin to automatically index all pages on IndexTank. I was reminded to this by the introduction of Tapir and decided to finally go ahead and create the plugin.

I’m about to graduate for my Software Engineering Bachelor and will be starting as a Ruby and IOS developer at Kabisa soon. I haven’t done much Ruby work yet (I used to be more of a Python guy), so this was an excellent chance for me to practice my Ruby skills a bit.

Jekyll_indextank is a Jekyll plugin that automatically indexes all your Jekyll sites’ pages on IndexTank, except for those that you exclude (404 and index pages for example).

For those not familiair with IndexTank, it’s a hosted full-text search solution. It provides a HTTP api which, since yesterday, supports anonymous search access with JSONP callbacks. This allows for easy accessing the API through JavaScript; ideal for static websites.

Now to get going, all you need to do is signup for a (free) IndexTank account, create an index (make sure to enable the public search api), download the Jekyll_indextank plugin, put it in the _plugins directory of your Jekyll site and add some settings for your IndexTank api key etc to your _config.yml. Now all posts will be automatically indexed when you generate your jekyll site, pretty cool huh?

Now all there is left do for you is to create a HTML form and hook up some JavaScript (possible with jQuery) to access the IndexTank search api. I’m out of time now, but I’ll update this post tomorrow with an example to get you going.

Update:
Please note that you should not consider this software stable yet. I think it’s pretty useful already, but currently it’s more of a proof of concept. I am planning on continuing development, so stay tuned.

Update:
See https://github.com/PascalW/jekyll_indextank/blob/master/examples/example.html for a very basic example of a HTML/JavaScript implementation on your website. It displays search results in a div.