Merge branch 'master' of ssh://git.ikiwiki.info
[ikiwiki] / doc / todo / OpenSearch.mdwn
1 [[plugins/search]] could provide [OpenSearch](http://www.opensearch.org/)
2 metadata.  Various software supports OpenSearch (see the Wikipedia article on
3 [[!wikipedia OpenSearch]]); in particular, browsers like Firefox and Iceweasel
4 will automatically discover an OpenSearch search and offer it in the search
5 box.
6
7 More specifically, we want to follow the [OpenSearch Description Document
8 standard](http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document),
9 by having a `link` with `rel="search"` and
10 `type="application/opensearchdescription+xml"` in the headers of HTML, RSS,
11 and Atom pages.  The `href` of that `link` should point to an
12 OpenSearchDescription XML file with contents generated based on the
13 information in `ikiwiki.setup`, and the `title` attribute of the `link` should
14 contain the wiki title from `ikiwiki.setup`.
15
16 --[[JoshTriplett]]
17
18 > I support adding this. I think all that is needed, beyond the simple task
19 > of adding the link header, is to make the search plugin write out
20 > the xml file, probably based on a template.
21
22 > One problem is that the 
23 > [specification](http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document)
24 > for the XML file contains a number of silly limits to field lenghs. 
25 > For example, it wants a "ShortName" that identifies the search engine,
26 > to be 16 characters or less. The Description is limited to 1024,
27 > the LongName to 48. This limits what existing config settings can be
28 > reused for those. 
29
30 > Another semi-problem is that the specification saz: 
31
32 >> OpenSearch description documents should include at least one Query element of role="example" that is expected to return search results. Search clients may use this example query to validate that the search engine is working properly.
33
34 > How should ikiwiki know what example query will return actual results?
35 > (How would a client know if a HTML page contains results or not, anyway?)
36 > Sillyness. Ignore this? --[[Joey]]
37
38 [[wishlist]]