Macros

As macros permitem a inserção de funcionalidades de sistema em páginas de wiki normais; a única coisa que torna essas páginas especiais é o facto de conterem macros. Se editar páginas como AlteraçõesRecentes ou InformaçãoDeSistema, verá o que isso significa.

Para mais informações sobre a formatação possível, consulte o tópico AjudaNaEdição.

Macros de pesquisa

Agora o MoinMoin utiliza um novo motor de pesquisa, que lhe permite fazer pesquisas sofisticadas, utilizando ambas as caixas de pesquisa interactiva e qualquer macro de pesquisa. Para mais informações, consulte o tópico AjudaNaPesquisa.

Macro


Descrição

Exemplo

[[AdvancedSearch]]


Cria um diálogo de pesquisa avançada na página

Ver o tópico PesquisaDePáginas

[[TitleSearch]]


Cria uma caixa de pesquisa na página, que pesquisa nos títulos das páginas

Ver o tópico PesquisaDePáginas

[[FullSearch]]


Cria uma caixa de pesquisa na página, que pesquisa no conteúdo das páginas

Ver o tópico PesquisaDePáginas

[[FullSearch()]]


Devolve uma lista de páginas cujo conteúdo coincida com o título da página actual (como clicar no título da página)

Ver a página ListaDeCategorias

[[FullSearch(text)]]


Devolve uma lista de páginas cujo conteúdo coincida com o termo de pesquisa

[[FullSearchCached(text)]]


Funciona como a macro FullSearch mas guarda os resultados estatisticamente. Utilize-o se preferir resultado actualizado mais rápido

[[GoTo]]


Visita directamente a página que inserir

Ver o tópico PesquisaDePáginas

[[PageList(Help)]]


Devolve uma lista de páginas cujo título coincida com o termo de pesquisa

Ver o tópico ÍndiceDeAjuda

Macro


Descrição

Exemplo

[[RecentChanges]]


Uma lista de páginas editadas recentemente

Ver o tópico AlteraçõesRecentes

[[TitleIndex]]


Um índice de todos os títulos das páginas

Ver o tópico ÍndiceDePáginas

[[WordIndex]]


Um índice de todas as palavras existentes nos títulos das páginas

Ver o tópico ÍndiceDePalavras

[[WantedPages]]


Lista as ligações de páginas inexistentes

Ver o tópico PáginasPretendidas

[[OrphanedPages]]


Lista as páginas que não têm ligações (noutras páginas) que apontem para si

Ver o tópico PáginasOrfãs

[[AbandonedPages]]


Lista as páginas que não são editadas há mais tempo

Ver o tópico PáginasAoAbandono

[[RandomPage]]


Uma ligação para uma página ao acaso

WikiKurzus/AlapvetőIsmeretekVázlat

[[RandomPage(#)]]


Ligações para um conjunto de páginas ao acaso

Duas páginas ao acaso:

[[TableOfContents([maxdepth])]]


Apresenta uma tabela de conteúdos, possivelmente limitada a uma profundidade máxima

Ver em cima

[[Anchor(anchorname)]]


Macro para inserir âncoras numa página

#aqui

[[Navigation(children[,maxdepth])]]


Macro para listas todas as sub-páginas

Ver início desta página

[[Navigation(siblings[,maxdepth])]]


Navegação rápida entre páginas irmãs de uma página

Ver o sub-tópico /MailTo

[[Navigation(slideshow)]]


Cria uma ligação para alternar entre a apresentação de diapositivos e o modo wiki, e uma ligação para iniciar a apresentação de diapositivos

Ver o tópico AjudaComApresentaçõesDeDiapositivos

[[Navigation(slides)]]


Apresenta as ligações de primeira página/página anterior/página seguinte/última página

Ver o tópico AjudaComApresentaçõesDeDiapositivos

[[AttachInfo]]


Apresenta o número de anexos na página actual

Ver o tópico AjudaNasAcções/AttachFile

[[AttachInfo(page)]]


Apresenta o número de anexos por página

Ver o tópico AjudaNasAcções/AttachFile

[[AttachList(pagename,mimetype)]]


Apresenta uma lista de anexos

Ver o tópico AjudaNasAcções/AttachFile

Informação de sistema

Macro


Descrição

Exemplo

[[InterWiki]]


Uma lista de todos os nomes de LigaçõesEntreWikis conhecidos

LigaçõesEntreWikis

[[SystemInfo]]


Dados sobre o wiki, o interpretador de python e o sistema do servidor

InformaçãoDeSistema

[[PageCount(exists)]]


Número actual de páginas. Se exists é devolvido como um argumento. Apenas as páginas existentes serão exibidas.

3444 páginas

[[PageSize]]


Lista o tamanho de todas as páginas

Ver o tópico TamanhoDaPágina

[[StatsChart(type)]]


Exibe gráficos estatísticos (tipos definidos actualmente: hitcounts, pagesize, useragents)

Ver o tópico EstatísticasDeAcesso e sub-páginas

[[SystemAdmin]]


Informação para administradores de sistemas

Necessita de ser um super utilizador para chamar esta macro

[[EditedSystemPages]]


Uma lista de páginas de sistema que foram alteradas

  1. FrontPage
  2. LocalBadContent
  3. WikiSandBox
  4. 维基沙盘演练

Outras

Macro


Descrição

Exemplo

[[ImageLink(image,target[,width=width[,height=height]][,alt=alttag])]]


Esta macro é utilizada para criar uma ligação que exibe uma imagem (que pode ser apresentada como anexo ou URL) e ligações para um URL ou uma página wiki. Pode ajustar o tamanho da imagem opcionalmente. Se não for definido nenhum destino, a ligação apontará para a própria imagem.

Ver o sub-tópico /ImageLink

[[Icon(image)]]


Exibe os ícones de sistema

Ver o tópico AjudaNaNavegação

[[UserPreferences]]


Exibe um diálogo de preferências do utilizador

Ver o tópico PreferênciasDoUtilizador

[[UserPreferences(createonly)]]


Exibe um diálogo de criação de utilizadores

[[BR]]


Insere uma quebra de linha

1ª linha
2ª linha

[[RandomQuote(pagename)]]


Seleccione uma citação ao acaso de uma determinada página, ou a partir dos FortuneCookies em caso de omissão

Hint: Search for multiple words, just like Google. See also HelpOnSearching.

[[Include(HelloWorld[,"heading"[,level]])]]


Inclui conteúdos de outra página

Para mais informações, consulte /Include

[[FootNote(text)]]


Adicione uma nota de rodapé1, ou apresente explicitamente notas de rodapé recolhidas quando não são fornecidos argumentos

Ver exemplo em baixo.

[[Date(timestamp)]]


Apresenta uma data de acordo com as configurações de sistema

2012-05-22

[[DateTime(timestamp)]]


Apresenta uma data2 de acordo com as configurações do utilizador

2012-05-22 00:12:43

[[GetText(text)]]


Carrega os textos I18N (criado especialmente para ser utilizado nas páginas de Ajuda)

"EditText" é traduzido para "EditText"

[[GetText2(,message,argument1,argument2,...)]]


Carrega os textos I18N (criado especialmente para ser utilizado nas páginas de Ajuda ou em resultado gerado em páginas wiki) e substitui o %s na mensagem pelos argumentos. O primeiro carácter do argumento é utilizado como um separador (neste exemplo: uma vírgula). Pode evitar o separador utilizando uma barra ("\").

"[[GetText2(,[Pode não ler %s],FooBar)]]" resulta em "[Pode não ler FooBar]"

[[TeudView]]


Útil para wikis de desenvolvimento em intranets, uma forma de visualizar documentação pydoc, formatada através de uma folha de cálculo XSLT

Ver a página http://twistedmatrix.com/wiki/python/TeudProject

[[MailTo(email)]]


Protege o seu endereço de correio electrónico de robôs de spam

para mais informações consulte /MailTo

[[NewPage(PageTemplate,ButtonLabel,[ParentPage,@ME,@SELF] [,NameTemplate])]]


Permite ao utilizador criar (sub) páginas facilmente, utilizando a página PageTemplate como modelo para a nova página e a string NameTemplate como modelo para o nome.3 @ME é utilizado para a página criada estar abaixo da página principal dos utilizadores. @SELF é utilizado para criar uma sub-página debaixo da página de onde é chamada.

[[GetVal(NeatSnippets,regards)]]


Pesquisa registos de dicionário entre as páginas dict.

Se tiver uma página com o título PortugueseDict que contenha o registo Test:

 [[MonthCalendar(,,12)]]


Apresenta um Calendário e cria ligações para registos de cada dia em sub-páginas

Ver o sub-tópico /MonthCalendar

  1. o texto não pode ter nenhuma formatação de wiki (1)

  2. "timestamp" pode ser vazia (hora actual), o número de segundos desde 1970 (unix timestamp), ou uma especificação de tempo W3C ("2002-01-23T12:34:56"). Ver RFC822, secção 5. (2)

  3. NameTemplate é formatada com time.strftime(), à excepção do %s que é substituído pela entrada da caixa de edição (que apenas será exibida se necessário). Se NameTemplate não for especificada ou estiver vazia, %s é o seu valor por omissão. (3)

Criar a sua própria macro

Crie um ficheiro python chamado NomeDaMacro.py localizado na sua directoria data/plugin/macro. Certifique que tem um método único chamado execute(macro, arguments), que é o ponto de partida.

Todas as instâncias Macro têm um membro request através do qual pode aceder aos parâmetros e a outros dados relacionados à interacção do utilizador.

execute() deve utilizar um editor para construir formatação válida para o formato-alvo actual. Regra geral, isto significa HTML, assim criar uma macro apresentada em HTML funcionará na maioria dos casos, mas falhará caso sejam solicitados formatos como XML ou text/plain are requested.

Por exemplo, a sua página de wiki inclui a seguinte linha:

[[MacroName(arg1,arg2,arg3)]]

Pode editar um ficheiro NomeDaMacro.py assim:

   1 Dependencies = []
   2 def execute(macro, args):
   3     return macro.formatter.text("I got these args from a macro %s: %s" %
   4     (str(macro), args))
   5 
  • /!\ Adicione um registo nas Dependencies caso o resultado da sua macro não deva ser armazenado. Isto é importante se o resultado da sua macro for alterada de um momento para o outro, por exemplo, se a sua macro pesquisar entre as páginas de um wiki pode ser editada por outros utilizadores, ou carregar dados de uma base de dados externa cujos conteúdos podem mudar. Actualmente, o valor de cada registo não interessa e aconselhamos que faça uma pequena descrição para explicar o motivo 'por que os resultados desta macro não devem ser armazenados', mas por favor, dê uma vista de olhos aos registos utilizados noutras macros para valores que possam ser adequados.