Recoll normally uses a full function HTML processor to display the result list and the snippets window. Depending on the version, this may be based on either Qt WebKit or Qt WebEngine. It is then possible to completely customise the result list with full support for CSS and Javascript.
It is also possible to build Recoll to use a simpler Qt QTextBrowser widget to display the HTML, which may be necessary if the ones above are not ported on the system, or to reduce the application size and dependencies. There are limits to what you can do in this case, but it is still possible to decide what data each result will contain, and how it will be displayed.
The result list presentation can be customized by adjusting two elements:
The paragraph format
HTML code inside the header section. This is also used for the snippets window.
The paragraph format and the header fragment can be edited from the Result list tab of the GUI configuration.
The header fragment is used both for the result list and the snippets window. The
snippets list is a table and has a snippets
class attribute. Each
paragraph in the result list is a table, with class respar
, but this
can be changed by editing the paragraph format.
There are a few examples on the page about customising the result list on the Recoll Web site.
This is an arbitrary HTML string which will be transformed by printf-like
%
substitutions to show the results.
Note
Any literal %
character in the input
must be quoted as %%
. E.g. <table style="width:
100%;">
should be entered as
<table style="width: 100%%;">
.
The following substitutions will be performed:
%A. Abstract
%D. Date
%I. Icon image name. This is normally determined from the MIME type. The associations are defined inside the
mimeconf
configuration file. If a thumbnail for the file is found at the standard Freedesktop location, this will be displayed instead.%K. Keywords (if any)
%L. Precooked Preview, Edit, and possibly Snippets links
%M. MIME type
%N. result Number inside the result page
%P. Parent folder Url. In the case of an embedded document, this is the parent folder for the top level container file.
%R. Relevance percentage
%S. Size information
%T. Title or Filename if not set.
%t. Title or empty.
%(filename). File name.
%U. Url
In addition to the predefined values above, all strings
like %(fieldname)
will be replaced by the value of the field
named fieldname
for this document. Only stored fields can be accessed
in this way, the value of indexed but not stored fields is not known at this point in
the search process (see field
configuration). There are currently very few fields stored by default, apart from
the values above (only author
and filename
), so
this feature will need some custom local configuration to be useful. An example
candidate would be the recipient
field which is generated by the
message input handlers.
The format of the Preview, Edit, and Snippets links is
<a href="P%N">
,
<a href="E%N">
and
<a href="A%N">
where docnum
(%N) expands to the document
number inside the result page).
A link target defined as "F%N"
will open
the document corresponding to the %P
parent
folder expansion, usually creating a file manager window on the
folder where the container file resides. E.g.:
<a href="F%N">%P</a>
A link target defined as
R%N|
will
run the corresponding script on the result file (if the document is
embedded, the script will be started on the top-level parent).
See the section about defining scripts.scriptname
The default value for the paragraph format string is:
"<table class=\"respar\">\n" "<tr>\n" "<td><a href='%U'><img src='%I' width='64'></a></td>\n" "<td>%L <i>%S</i> <b>%T</b><br>\n" "<span style='white-space:nowrap'><i>%M</i> %D</span> <i>%U</i> %i<br>\n" "%A %K</td>\n" "</tr></table>\n"
You may, for example, try the following for a more web-like experience:
<u><b><a href="P%N">%T</a></b></u><br> %A<font color=#008000>%U - %S</font> - %L
Note that the P%N link in the above paragraph makes the title a preview link. Or the clean looking:
<img src="%I" align="left">%L <font color="#900000">%R</font> <b>%T&</b><br>%S <font color="#808080"><i>%U</i></font> <table bgcolor="#e0e0e0"> <tr><td><div>%A</div></td></tr> </table>%K
These samples, and some others are on the web site, with pictures to show how they look.
It is also possible to define the value of the snippet separator inside the abstract section.