|
META TOPICPARENT | name="TWikiVariables" |
|
| 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: |
> > | Two parameters 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:* |" |
> > | 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. Example: header="| *Topic:* | *Summary:* |" |
| 2. format="..." parameter |
|
< < | Use the format paramter to specify the format of one search hit. I.e. format="| $topic | $summary |" |
> > | Use the format parameter to specify the format of one search hit.
Example: format="| $topic | $summary |" |
| Variables that can be used in the format string:
|
|
< < |
|
|
$web | Name of the web |
$topic | Topic name |
|
|
> > |
$topic(20) | Topic name, "- " hyphenated each 20 characters |
$topic(30, -<br />) | Topic name, hyphenated each 30 characters with separator "-<br />" |
$topic(40, ...) | Topic name, shortended to 40 characters with "..." indication |
|
|
$text | Formatted topic text |
$locked | LOCKED flag (if any) |
|
|
< < |
$date | Time stamp of last topic update, i.e. 28 Nov 2024 - 19:59 |
$isodate | Time stamp of last topic update, i.e. 2024-11-28T19:59Z |
$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 |
|
> > |
$date | Time stamp of last topic update, like 28 Nov 2024 - 19:59 |
$isodate | Time stamp of last topic update, like 2024-11-28T19:59Z |
$rev | Number of last topic revision, like 1.4 |
$wikiusername | Wiki user name of last topic update, like Main.JohnSmith |
$username | User name of last topic update, like JohnSmith |
|
|
|
|
< < |
$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: ... . |
|
> > |
$formfield(name) | The field value of a form field; for example, $formfield(TopicClassification) would get expanded to PublicFAQ . This applies only to topics that have a TWikiForm |
$formfield(name, 10) | Form field value, "- " hyphenated each 10 characters |
$formfield(name, 20, -<br />) | Form field value, hyphenated each 20 characters with separator "-<br />" |
$formfield(name, 30, ...) | Form field value, shortended to 30 characters with "..." indication |
$pattern(reg-exp) | A regular expression pattern to extract some text from a topic. For example, $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ... . |
$n or $n() | New line |
$nop or $nop() | Is a "no operation". This variable gets removed; useful for nested search |
$quot | Double quote (" ). Alternatively write \" to escape it |
$percnt | Percent sign (% ) |
$dollar | Dollar sign ($ ) |
Note: For $pattern(reg-exp) , specify a RegularExpression that scans from start to end and contains the text you want to keep in parenthesis, like $pattern(.*?(from here.*?to here).*) . You need to make sure that the integrity of a web page is not compromised; for example, if you include a table make sure to include everything including the table end tag.
Nested Search
Search can be nested. For example, search for some topics, then form a new search for each topic found in the first search. The idea is to build the nested search string using a formatted search in the first search.
Here is an example. We want to search for topics, do a nested search with each hit, and show the result as nested bullets. Parameters like scope="text" regex="on" nosearch="on" nototal="on" are omitted for simplicity.
- First search:
-
%SEARCH{ "freedom" format=" * $topic" }%
- Second search. For each hit we want this search:
-
%SEARCH{ "(topic of first search)" format=" * $topic" }%
- Now we nest the searches. We need to escape the second search, e.g. the first search will build a valid second search string:
-
%SEARCH{ "freedom" format=" * $topic: $n$percntSEARCH{ \"$topic\" format=\" * $dollartopic" }$nop%\" }%
Note that we escape the second search so that it does not get evaluated by the first search:
-
$percnt to escape the leading percent of the second search
-
\" to escape the qouble quotes
-
$dollar to escape the $ of $topic
-
$nop to escape the }% sequence
|
| |
|
< < | 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: |
| TWiki FAQs:
- How can I create a simple TWiki Form based application? Answer...
- How do I delete or rename a topic? Answer...
- How do I delete or rename a file attachment? Answer...
- Why does the topic revision not increase when I edit a topic? Answer...
- TWiki has a GPL (GNU General Public License). What is GPL? Answer...
- I've problems with the WebSearch. There is no Search Result on any inquiry. By clicking the Index topic it's the same problem. Answer...
- What happens if two of us try to edit the same topic simultaneously? Answer...
- I would like to install TWiki on my server. Can I get the source? Answer...
- What does the "T" in TWiki stand for? Answer...
- So what is this WikiWiki thing exactly? Answer...
- Everybody can edit any page, this is scary. Doesn't that lead to chaos? Answer...
|
|
< < | -- PeterThoeny? - 28 Nov 2001
|
> > | -- PeterThoeny? - 16 May 2002 |