Resultados Formatados da Busca TWiki
A característica da busca em linha (%SEARCH{...}%) que permite a formatação flexível do resultado
A variável
%SEARCH{...}% documentada em
Variávei do TWiki tem um formato fixo para o resultado da busca, isto é, uma tabela contendo nomes de tópicos e sumários. Use o parâmetro
format="..." para especificar um formato personalizado do resultado. A string do parâmetro
format normalmente é uma lista de bolotas ou linhas de tabela contendo variáveis (como em
%SEARCH{ "comida" format="| $topic | $summary |" }%).
Sintaxe
Dois parâmetros podem ser usados para especificar um resultado de busca personalizado:
1. Parâmetro
header="..."
Use o parâmetro
header para especificar o cabeçalho de um resultado de busca. Isso deve corresponder ao fomato no parâmetro
format. Esse parâmetro é opcional.
Exemplo:
header="| *Tópico:* | *Sumário:* |"
2. Parâmetro
format="..."
Use o parâmetro
format para especificar o formato de um item do resultado.
Exemplo:
format="| $topic | $summary |"
Variáveis que podem ser usadas na linha de formatação:
| Nome: |
É convertida para: |
$web |
Nome da web |
$topic |
Nome do Tópico |
$topic(20) |
Nome do Tópico, "- " com hífens a cada 20 caracteres |
$topic(30, -<br />) |
Nome do Tópico, com hífens a cada 30 caracteres e com separador "-<br />" |
$topic(40, ...) |
Nome do Tópico, reduzido para 40 caracteres com a indicação "..." |
$text |
Tópico de texto formatado |
$locked |
O marcador TRANCADA (se houver) |
$date |
Mostra última atualização do tópico, como 21 Nov 2009 - 09:20 |
$isodate |
Mostra última atualização do tópico, como 2009-11-21T09:20Z |
$rev |
Número da última revisão de tópico, como 1.4 |
$wikiusername |
Nome de usuário Wiki da útima modificação do tópico, como Main.JohnSmith |
$username |
Nome de usuário da útima modificação do tópico, como JohnSmith |
$summary |
Sumário do tópico |
$formfield(name) |
O valor do campo de formulário; por exemplo, $formfield(TopicClassification) pode ser convertido para PublicFAQ. Isso se aplica somente a tópicos que tenham um TWikiForm |
$formfield(name, 10) |
valor do campo de formulário, "- " com hífens a cada 10 caracteres |
$formfield(name, 20, -<br />) |
valor do campo de formulário, com hífens a cada 20 caracteres e o separador "-<br />" |
$formfield(name, 30, ...) |
valor do campo de formulário, reduzido para 30 caracteres com a indicação "..." |
$pattern(reg-exp) |
Uma padrão em expressão regular para extrir algum texto do tópico. Por exemplo, $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extrai o endereço de e-mail de um item de lista no formato * Email: .... |
$n or $n() |
Nova linha |
$nop or $nop() |
É um "não operar". Essa variável foi removida; útil para buscas aninhadas |
$quot |
Aspas duplas ("). Forma alternativa da \" "escapada" |
$percnt |
Simbolo de percentagem (%) |
$dollar |
Simbolo de dollar ($) |
Nota: Para
$pattern(reg-exp), especifique uma
Expressão Regular que varra do início ao fim e contenha o texto que você deseja pegar em parênteses, como
$pattern(.*?(daqui.*?até aqui).*). Você precisa ter certeza que a integridade da página web não será comprometida; por exemplo, se você incluir uma tabela, tenha certeza de incluir tudo, inclusive o fim da tag
table.
Exemplos
Lista de bolota mostrando nome do tópico e sumário
Escreva isso:
%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header=" * *Tópico: Sumário:*" format=" * [[$topic]]: $summary" }%
Para ter isso:
- Tópico: Sumário:
- TWikiFAQ: Dúvidas Freqüentes sobre TWiki Este é um FAQ real, e também uma demonstração de uma das soluções de base de conhecimento facilmente implementadas. Veja como é feito ...
- TWikiFaqTemplate: Pergunta: Resposta: Voltar para: TWikiFAQ
- TextFormattingFAQ: FAQ de Formatação de Texto As perguntas mais freqüentes sobre formatação de texto estão respondidas. Além dessa, o tópico TextFormattingRules contém o sistema TWiki ...
Tabela mostrando valores de campos de formulário de tópicos com TWikiForms
Escreva isso na web Know:
| *Tópico:* | *OperatingSystem:* | *OsVersion:* |
%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%
Para ter isso:
Extraindo algum texto de um tópico usando expressão regular
Escreva isso:
%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format=" * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%
Para ter isso:
Busca aninhada
Buscas podem ser aninhadas. Por exemplo, busque por alguns tópicos, então faça uma nova busca em cada tópico da primeira busca. A idéia é montar a busca aninhada usando a busca formatada na primeira busca.
Aqui temos um exemplo. Vamos procurar por todos os tópicos que contenham a palavra "cultura" (primeira busca), e vamos encontrar onde cada tópico encontrado é linkado (segunda busca).
- Primeira busca:
-
%SEARCH{ "culture" format=" * $topic is referenced by: (list all references)" nosearch="on" nototal="on" }%
- Segunda busca. Para cada item nós queremos esta busca:
-
%SEARCH{ "(tópico encontrado na primeira busca)" format=" $topic" nosearch="on" nototal="on" }%
- Agora vamos aninhar as duas. Nós precisamos "escapar" a segunda busca, e.g. a primeira busca irá construir uma segunda linha de busca válida. Note que nós escapamos a segunda busca para que ela não seja avaliada prematuramente na primeira busca:
- Use
$percnt para escapar os porcentos importantes da segunda busca
- Use
\" para escapar as aspas duplas
- Use
$dollar para escapar o $ de $topic
- Use
$nop para escapar a seqüência }%
Escreva isso:
%SEARCH{ "culture" format=" * $topic é referenciado por:$n * $percntSEARCH{ \"$topic\" format=\" $dollartopic\" nosearch=\"on\" nototal=\"on\" }$nop%" nosearch="on" nototal="on" }%
Para ter isso:
--
PeterThoeny? - 16 May 2002