# TWiki Formatted Search Results _Inline search feature allows flexible formatting of search result_ ## Overview The `%SEARCH{...}%` variable documented in [[TWikiVariables]] has a fixed format for the search result, that is, a table consisting of topic names and topic summaries. 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 (such as `%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. 29 Jun 2010 - 15:32
$isodate Time stamp of last topic update, i.e. 2010-06-29T15:32Z
$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 [[Main/TWikiForms]]
$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: # TWiki Installation Error Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) ### 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:
Topic: OperatingSystem: OsVersion:
IncorrectDllVersionW32PTH10DLL OsWin 95/98
WinDoze95Crash OsWin 95
### 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: # TWiki Installation Error Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags) -- [[PeterThoeny]] - 28 Nov 2001