TWiki Formatted Search Results
Inline search feature allows flexible formatting of search result
Overview
By default, the format for displaying a search result is fixed, e.g. a table with rows of topic name and topic summary. Use the
format="..."
parameter to specify a customized format of the search result. The string of the format parameter is typically a bullet list or table row containing variables (i.e.
%SEARCH{ "food" format="| $topic | $summary |" }%
).
Syntax
Two paramters can be used to specify a customized search result:
1.
header="..."
parameter
Use the header paramter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional. I.e.
header="| *Topic:* | *Summary:* |"
2.
format="..."
parameter
Use the format paramter to specify the format of one search hit. I.e.
format="| $topic | $summary |"
Variables that can be used in the format string:
Name: |
Expands To: |
$n |
New line |
$web |
Name of the web |
$topic |
Topic name |
$locked |
LOCKED flag (if any) |
$date |
Time stamp of last topic update, i.e. 19 Apr 2024 - 00:01 |
$isodate |
Time stamp of last topic update, i.e. 2024-04-19T00:01Z |
$rev |
Number of last topic revision, i.e. 1.4 |
$wikiusername |
Wiki user name of last topic update, i.e. Main.JohnSmith |
$username |
User name of last topic update, i.e. JohnSmith |
$summary |
Topic summary |
$formfield(name) |
The field value of a form field, i.e. $formfield(TopicClassification) would get expanded to PublicFAQ . This applies only to topics that have a TWikiForm |
$pattern(reg-exp) |
A regular expression pattern to extract some text from a topic, i.e. $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ... . |
Note: For
$pattern(reg-exp)
, specify a
RegularExpression that scans from start to end and contains the text you want to keep in parenthesis, i.e.
$pattern(.*?(from here.*?to here).*)
. You need to make sure that the integrity of a web page is not compromised, i.e. if you include a table make sure to include everything including the table end tag.
Examples
Bullet list showing topic name and summary
Write this:
%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Topic: Summary:*" format=" * [[$topic]]: $summary" }%
To get this:
- Topic: Summary:
- TWikiFAQ: Frequently Asked Questions About TWiki This is a real FAQ, and also a demo of an easily implemented knowledge base solution. To see how it`s done, view the source...
- TWikiFaqTemplate: FAQ: Answer: Back to: TWikiFAQ Contributors:
- TextFormattingFAQ: Text Formatting FAQ This topics lists frequently asked questions on text formatting. Text formatting applies to people who edit TWiki pages in raw edit mode. TextFormattingRules...
Table showing form field values of topics with a form
Write this in the Know web:
| *Topic:* | *OperatingSystem:* | *OsVersion:* |
%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%
To get this:
Extract some text from a topic using regular expression
Write this:
%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%
To get this:
Could not perform search. Error was: /bin/grep -E -i -l -H -- %TOKEN|U% %FILES|F% Grep for '__Back to\:__ TWikiFAQ' returned error
--
PeterThoeny - 28 Nov 2001