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 ÍndiceComPalavras

<<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

MuotoiluOpas

<<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.

4354 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

    Outras

    Macro


    Descrição

    Exemplo

    <<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

    2024-12-22

    <<DateTime(timestamp)>>


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

    2024-12-22 15:47:05

    <<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 
       3 def execute(macro, args):
       4 
       5     return macro.formatter.text("I got these args from a macro %s: %s" %
       6 
       7     (str(macro), args))
    
    • /!\ 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.

    MoinMaster: AjudaComMacros (last edited 2010-02-12 15:45:43 by RenatoSilva)