AltSearchEngines recently explained how to find over a thousand plugins that add new engines to the search box in the top right of your browser. If the one you want isn't there, or you need one for your own site, I'm going to show how you can create your own search plugin for Firefox. You don't have to write any code, all you need is an example URL.
I recently installed Lijit on my blog, and I'd like to offer a search box plugin for searching on my site. The first hurdle is finding an example URL to base the plugin on. Lijit usually displays its results in an overlay, with no change in the address bar, but I spotted the permalink button that goes to a normal web page.
For the search engine you're using, do a search for a single term (in my case "camping"), and make a note of the full URL given for the result page. In the case of my Lijit blog search, the permalink version is
http://www.lijit.com/pvs/petewarden?q=camping&pvssearchtype=site&preserved_referer=http%3A%2F%2Fpetewarden.typepad.com
To start creating your plugin, go to the Mycroft Projects Search Plugin Generator. You'll see a form with a series of fields to fill out. Luckily you will be able to ignore most of these, and I'll show you what you need to do for the others. Once all the right information is in there, submitting the form will write the plugin code for you!
The most crucial part of the form is the top "Query URL". This tells Firefox how to generate the right address for the search engine you're using. The generator takes an example search engine URL, and works out how to build links that search for any keywords.
The generator needs to know where the search terms are supposed to be in the URLs for this engine, so in the Query box below I tell it the term I was looking for, "camping".
Below that, enter a URL for the home page of the search engine you're using.
Leave the CharSet entry as None, and leave the Categories section blank. The next section, Results, is tricky. Some obscure parts of Firefox want to extract the search result links using the information from here, but all we want to do is direct the user to the right page. We should be able to leave this blank, but unfortunately the generator fails. Instead, fill in the first four boxes with "Dummy Entry", so the generator has some entries to work with.
You can leave the remaining entries in the Results section blank. Moving down to the Plugin part, there are three final boxes you need to fill.
You should enter your name and email address in angle brackets, since you're the author. The name is what appears in the drop-down menu for the search box, and the description should be a short explanation of what the plugin is for.
That's all the information you need to enter, so hit the "Send" button at the bottom of the form. Mozilla then analyzes the information you've submitted, and tries to create the right code for your plugin. You should see a couple of new sections appear at the bottom of the page. The first box is the HTML that the engine returned for your example search, which isn't that interesting. The crucial part is the lower section of text, titled Plugin Source.
This contains the actual code you need for your plugin. I've uploaded the example that the generator creates for searching this blog with Lijit here . To create your own file, cut and paste everything that's in a typewriter font inside the light grey box into your favorite text editor like NotePad or TextEdit. Make sure you're in plain text mode if it supports fonts or colors. Save the file as the name of your search engine, with the .src extension, for example petesearch.src.
Now you have two choices for how to install the plugin. If you just want to use it on your own machine, you can copy it to the directories described on this page. On Linux it's /usr/lib/Mozilla/searchplugins , for OS X use /Applications/Mozilla.app/Contents/MacOS/Search Plugins/ and Windows is C:\Program Files\Mozilla.org\Mozilla\searchplugins\ .
If you want to put it on a website for other people to install, you'll need a small section of JavaScript. Here's a cut-down version that will install it when it's clicked on.
<a href="http://petewarden.typepad.com/searchbrowser/files/petesearch.src" onclick="window.sidebar.addSearchEngine(this.href, '', 'PeteSearch', ''); return false;">Install</a>
This will work fine on Firefox, but if you want to gracefully fail on other browsers you'll need some more complex code to detect if the plugin format is supported. Here's a page from Mozilla that explains what you'll need to do. Alternatively you can just label the link as Firefox-only.
This guide shows how to create a Sherlock plugin which will work with all versions of Firefox. There's also a new standard called OpenSearch which works with Firefox 2 and Internet Explorer. It has some nifty features like being able to add your plugin to the search box whenever a user is visiting a site, but no user-friendly generator.