Esse passo a passo é um resumo prático do Guia de Instalação do TWiki, focado no Debian GNU/Linux. As orientações abaixo podem ser usadas em outras distros GNU/Linux, adaptando-se as pequenas variações entre uma e outra, como o nome do usuário do Apache.
A leitura do guia original é fortemente recomendada, já que cada passo é explicado e são citadas formas alternativas de instalação caso o modelo padrão não seja adequado ao seu caso.
Crie a configuração do Apache automaticamente em TWiki:TWiki.ApacheConfigGenerator Este gerador já tem uma boa preocupação com segurança, mas se seu seu servidor exige caracteristicas especiáis de configuração, peça ao administrador de rede que edite este arquivo. Na web Codev e TWiki do TWiki.org temos o dicas sobre configurações específicas, como o Shorter URL Cookbook, que nos mostra como ter um TWiki com URLs menores e mais amigáveis, como usamos no TWiki da Colivre.
Adicione a configuração do Apache em /etc/apache2/conf.d/twiki.conf
Modifique o dono dos arquivos recursivamente para www-data(o usuário do Apache) chown -R www-data:www-data TWikiDir
Instale as seguintes bibliotecas para garantir um bom funcionamento ao TWiki:
libalgorithm-diff-perl - garantia para o versionamento
libcgi-session-perl - mantem a sessão em scripts que não exigem autenticação
libhtml-parser-perl - dependência do script save
Finalmente visite o script configure (http://localhost/twiki/bin/configure) e confirme os paths automaticamente reconhecidos. Se sua instalação não for padronizada aqui você indica o caminho de cada diretório e garante o funcionamento do TWiki.
Clique em "Next" e defina uma senha para o configure, que também será usada pelo usuário TWikiAdminUser (Criado na versão 4.2)
Visite novamente o script configure para concluir a configuração.
Defina a varável $twikiLibPath = "/var/www/twiki/lib"; para informar o caminho absoluto das bibliotecas do TWiki a seus scripts em bin/LocalLib.cfg.txt - e renomeie este para bin/LocalLib.cfg caso contrário o TWiki não fará uso desta configuração.
Crie o script /etc/cron.daily/twiki para executar os scripts mailnotify e tick_twiki diáriamente. Usar os diretórios do cron é mais manutenível que apenas um arquivo cron de usuário, por isso não indico aqui o uso de cron -e.
Com a existência do usuário TWikiAdminUser a configuração do TWikiAdminGroup não é mais obrigatória, entretanto é interessante faze-lo para que todas as ações, inclusive as administrativas, sejam vinculadas a pessoas.
Ok! O TWiki está pronto para uso.
Script /etc/cron.daily/twiki
O script abaixo força a sua execução pelo usuário do Apache e executa os scripts temporais do TWiki.
#!/bin/bash
apache_user=www-data
if [ "$USER" != "$apache_user" ]; then
# Working as the Apache user
su $apache_user -c "$0" "$@"
exit $?
fi
if ! cd /var/www/twiki; then
echo Ups... The TWiki is not here. >&2
exit 1
fi
perl -I bin tools/mailnotify -q >/dev/null
cd bin && perl ../tools/tick_twiki.pl >/dev/null
Instalando alguns Plugins
As extensões do TWiki podem ser baixadas em http://twiki.org/cgi-bin/view/Plugins .
E são divididas nas seguintes categorias:
Add-on packages:
Scripts independentes para importar e exportar informações, dentre outras coisas.
Plugin packages:
Interage diretamente com o TWiki, provêndo novas funcionalidades.
Skin packages:
Modifica a aparência do TWiki.
Contrib packages:
Código compartilhável entre plugins.
Instale as dependências para que ele possa ler DOC, PDF e PPT: aptitude install antiword xpdf-utils ppthtml
Instale as dependências (Debian) que garantem o funcionamento do buscador: aptitude install libmodule-pluggable-perl libfile-mmagic-perl libhtml-tree-perl libspreadsheet-parseexcel-perl libencode-perl
Instale as dependências (CPAN) que garantem o funcionamento do buscador: perl -MCPAN -e "install KinoSearch" perl -MCPAN -e "install CharsetDetector"
Execute o instalador: perl SearchEngineKinoSearchAddOn_installer
Torne o script executável: chmod +x bin/kinosearch
Corrija o dono do diretório de trabalho: chown -R www-data:www-data kinosearch
Copie a configuração do bin/LocalLib.cfg para kinosearch/bin/LocalLib.cfg
Adicione a linha abaixo em lib/LocalSite.cfg: $TWiki::cfg{KinoSearchLogDir} = '/var/www/twiki/kinosearch/logs'; $TWiki::cfg{KinoSearchIndexDir} = '/var/www/twiki/kinosearch/index';
Entre em kinosearch/bin e execute ./kinoindex
Corrija o dono: chown -R www-data:www-data ../index ../logs
Seia bom adicionar o kinoupdate, mas adicione kinosearch/bin/kinoindex, para garantir a indexação de novos campos de TWikiForm: cd /var/www/twiki/kinosearch/bin/ && ./kinoindex
Algo a mais sobre Notificação
O e-mail de notificação de modificação das páginas é lançado pelo script mailnotify.
Entre no diretório raiz da insatalação do TWiki e execute:
perl -I bin tools/mailnotify Neste momento você enviará notificações de todas as modificações feitas desde a última execução deste script para todos os inscritos em todas as webs.
Esse script aceita argumentos pela linha de comando para modificar sua forma de trabalho e filtrar webs.
Formas de cadastro no WebNotify
Pode-se cadastrar usuários, grupos ou simplesmente e-mails no WebNotify, cada um como item de uma lista. É possível informar ao TWiki sobre quais tópicos desejamos ser notificados, incluindo ou excluindo tópicos com ajuda do coringa *. Com os simbolos ! e ? informamos a necessidade do envio do conteúdo completo dos tópicos marcados.
Interfaces personalizadas para funcionalidades do TWiki
Veja TWikiScripts para conhecer os scripts da instalação padrão.
O importante é apontar o script corretamente e entregar cada parâmetro, seja via GET ou POST.
Apontando:
%SCRIPTURL{script}%
Muitos scripts precisam rodar no contexto de um tópico. Podemos informar o tópico para esses casos adicionando Web/Tópico após o SCRIPTURL, ou enviamos o tópico via GET ou POST.
Exemplos:
Para adicionar o botão que gera PDF do tópico visitado, crie o tópico MinhaTemplate com o seguinte conteúdo:
%TMPL:INCLUDE{"view"}%
%TMPL:DEF{"top:toolbarbuttons"}%
<span><a href="%SCRIPTURL{genpdf}%/%WEB%/%TOPIC%?t=%GMTIME{$epoch}%" \
rel="nofollow" title="Baixar versão PDF deste tópico" accesskey="p">\
<span class="twikiAccessKey">P</span>DF</a></span>
%TMPL:P{"activatable_edit_or_create"}%%TMPL:P{"activatable_attach"}%%TMPL:END%
...e adicione a seguinte variável em Main.TWikiPreferences:
* Set VIEW_TEMPLATE = Minha
O bloco top:toolbarbuttons já existia e é parte da template padrão incluída em MinhaTemplate.
Redefinimos este bloco para colocar o botão "PDF" ao lado do "Edit" e "Attach" no topo da página.
Criando Tópicos Automaticamente
O TWiki já lhe provê facilidades para criação de tópicos a partir de WikiWords sem tópicos.
O interessante é poder criar nomes dinamicamente e até saltar a fase de edição dependendo da necessidade, para isso use os conhecimentos do tópico anterior.
Podemos criar tópicos automaticamente de três formas: pedindo que o usuário informe um nome, usando auto incremento ou sufixando o valor de uma variável como a GMTIME.
Pedindo que o usuário informe o nome:
Crie um tópico a partir da submissão de um form, como vimos anteriormente. O usuário deverá adicionar o nome do novo tópico no campo de texto.
Via auto-incremento:
Referencie um tópico finalizado com AUTOINC<n> para o script edit ou save e estes criarão um novo tópico onde AUTOINC<n> será substituído pelo primeiro número natural não usado.
Exemplo:
[[%SCRIPTURL{edit}%/Web/TópicoAUTOINC0][Novo Tópico]]Sufixando o valor de uma variável de valor dinâmico:[[%SCRIPTURL{edit}%/Web/Noticia%GMTIME{$year$mo$day}%][Nova Notícia]]
Expressões Regulares
A orientação se baseia no material de Aurélio Jargas:
http://guia-er.sourceforge.net
Use o form abaixo para testar suas expressões:
Criando TWikiApplications
Já dissemos o que são TWikiApplications no Tutorial TWiki, então acompanhe a prática que se baseará no conhecimento dos tópicos anteriores.
Ajax
Já existem várias extensões para usos variados de Ajax no TWiki.
O TWiki pode gerar qualquer gênero de informação textual, então se quiser criar sua própria busca baseada em Ajax, seria uma boa idéia gerar a resposta em JSON. Veja um exemplo de tópico que pode gerar respostas formatadas para buscas variadas: