ikiwiki/doc/todo/OpenSearch.mdwn

39 lines
2.0 KiB
Markdown

[[plugins/search]] could provide [OpenSearch](http://www.opensearch.org/)
metadata. Various software supports OpenSearch (see the Wikipedia article on
[[!wikipedia OpenSearch]]); in particular, browsers like Firefox and Iceweasel
will automatically discover an OpenSearch search and offer it in the search
box.
More specifically, we want to follow the [OpenSearch Description Document
standard](http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document),
by having a `link` with `rel="search"` and
`type="application/opensearchdescription+xml"` in the headers of HTML, RSS,
and Atom pages. The `href` of that `link` should point to an
OpenSearchDescription XML file with contents generated based on the
information in `ikiwiki.setup`, and the `title` attribute of the `link` should
contain the wiki title from `ikiwiki.setup`.
--[[JoshTriplett]]
> I support adding this. I think all that is needed, beyond the simple task
> of adding the link header, is to make the search plugin write out
> the xml file, probably based on a template.
>
> One problem is that the
> [specification](http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document)
> for the XML file contains a number of silly limits to field lenghs.
> For example, it wants a "ShortName" that identifies the search engine,
> to be 16 characters or less. The Description is limited to 1024,
> the LongName to 48. This limits what existing config settings can be
> reused for those.
>
> Another semi-problem is that the specification saz:
>
>> 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.
>
> How should ikiwiki know what example query will return actual results?
> (How would a client know if a HTML page contains results or not, anyway?)
> Sillyness. Ignore this? --[[Joey]]
[[wishlist]]