Home

Awesome

webidx

webidx is a client-side search engine for static websites.

It works by using a simple Perl script (webidx.pl) to generate an SQLite database containing an index of static HTML files. The SQLite database is then published alongside the static content.

The search functionality is implemented in webidx.js which uses sql.js to provide an interface to the SQLite file.

You can see a live demo of it here.

How to use it

  1. use webidx.pl to generate the index:
$ /path/to/webidx.pl -x index.html -x archives.html --xP secret_files -o https://example.com -z . ./index.db

You can run webidx.pl --help to see all the available command-line options.

  1. Include sql.js, pako and webidx.js in your web page:
<script src="https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.10.1/sql-wasm.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js"></script>
<script src="/path/to/webidx.js"></script>
  1. Create a search form:
<form onsubmit="window.webidx.search({dbfile:'/webidx.db.gz',query:document.getElementById('q').value});return false;">
  <input id="q" type="search">
</form>

When the user hits the return key in the search box, a modal dialog will pop up containing search results!

The object that's passed to window.webidx.search() can have the following properties: