Version 2 (modified by jonesmadruga, 15 anos atrás) (diff)

--

Wiki Macros

Macros na Wiki

Trac macros are plugins to extend the Trac engine with custom 'functions' written in Python. A macro inserts dynamic HTML data in any context supporting WikiFormatting. Macros no Traco são plugins que extendem a funcionalidade do Trac om 'funções' padrões escritas em Python.Um macro insere dinamicamente um dado HTML em qualquer contexto suportado pelo WikiFormatting.

Another kind of macros are WikiProcessors. They typically deal with alternate markup formats and representation of larger blocks of information (like source code highlighting). See also: WikiProcessors.

Outro tipo de macro são os WikiProcessors. Eles tipicamente são porções com alternativas a formatações de alto nível e representações de grandes blocos de informação (como um código-fonte em destaque). Veja também: WikiProcessors.

Using Macros

Usando Macros

Macro calls are enclosed in two square brackets. Like python functions, macros can also have arguments, a comma separated list within parenthesis. As chamadas de macros são atreladas a dois paramêtros. Como nas funções do Python, macros também podem ter argumentos, uma lista separada por vírgulas dentro de parênteses.

Examples

Exemplos

 [[Timestamp]]

Display: Mostrará:

Timestamp?

 [[HelloWorld(Testing)]]

Display: Mostrará:

HelloWorld(Testing)?

Available Macros

Macros Disponiníveis

Macros are still a new feature, and the list of available (and distributed) macros is admittedly not very impressive. In future Trac releases, we hope to build a library of useful macros, and will of course happily include contributed macros (see below).

Macros ainda são novidades e a lista de macros disponíveis (e distribuidos) não é muito extensa. Em futuras versões do Trac, nós esperamos construir uma biblioteca bem útil de macros e vamos agradecidamente incluir contribuições de macros (veja abaixo).

  • HelloWorld -- An example macro, useful for learning how to write macros.
  • Timestamp -- Insert the current date and time.
  • HelloWorld -- Um exemplo de macro, muito útil para se aprender a escrever macros.
  • Timestamp -- Insere o data e a hora atual.

Macros from around the world

Macros através do mundo

The Trac Project has a section dedicated to user-contributed macros, MacroBazaar. If you're looking for new macros, or have written new ones to share with the world, don't hesitate adding it to the MacroBazaar wiki page. A página do Projeto Trac tem um seção dedicada para os usuários poderem contribui com macros,MacroBazaar. Se você está procurando por novos macros ou escreveu alguns novos para compartilhar com o mundo, não hesite em adiciona-lo a página wiki do http://projects.edgewall.com/trac/wiki/MacroBazaar MacroBazaar?].

http://projects.edgewall.com/trac/wiki/MacroBazaar


Developing New Macros

Desenvolvendo Novos Macros

Macros, like Trac itself, are written in the Python programming language. They are very simple modules, identified by the filename and should contain a single entry point function. Trac will display the returned data inserted into the HTML where the macro was called. Macros, como o Trac, são escritos usando-se Linguagem de Programação Python. Eles são compostos de simples módulos, identificados pelo nome do arquivo que devem conter um únicoponto de entrada nas funções.o Trac irá mostrar o dado inserido dentro do HTML quando o mesmo for chamado.

It's easiest to learn from an example: É muito fácil aprender a partir de um exemplo:

# MyMacro.py -- The world's simplest macro 
def execute(hdf, args, env):
    return "Hello World called with args: %s" % args

# MeuMacro?.py -- O macro mais simple do mundo def execute(hdf, args, env):

return "Oi mundo chamado com os argumentos: %s" % args

}}}

Advanced Topics: Template-enabled Macros

Tópicos Avançados: Macros embutidos em Templates

For advanced uses, macros can also render structured output in HDF, to be rendered to HTML using clearsilver templates - like most Trac output. In short, this allows more generic and well-designed advanced macros.

Para usuários avançados, macros também pode renderizar a saída em HDF, para serem renderizados para HTML usando-se templates clearsilver - como na maioria das saídas do Trac. Em resumo, isto permite mais genéricos e bem desenvolvidos macros avançados.

Macros gain direct access to the main HDF tree, and are free to manipulate it. Macros ganham acesso direto a principal árvore do HDF e podem manipula-las livremente.

Example:

def execute(hdf, args, env):
    # Currently hdf is set only when the macro is called
    # From a wiki page
    if hdf:
        hdf.setValue('wiki.macro.greeting', 'Hello World')
        
    # args will be null if the macro is called without parentesis.
    args = args or 'No arguments'
    return 'Hello World, args = ' + args

Exemplo:

def execute(hdf, args, env):
    # o hdf atual só é setado quando o macro é chamado
    # de uma página wiki
    if hdf:
        hdf.setValue('wiki.macro.greeting', 'Olá Mundo')
        
    # os argumentos serão nulos se o macro for chamado sem parênteses.
    args = args or 'Sem argumentos'
    return 'Olá mundo, args = ' + args

You can also use the environment (env) object to access configuration data. Você também pode usar o objeto ambiente (env) para acessar um dado de configuração.

Example. Exemplo.

def execute(hdf, txt, env):
    return env.get_config('trac', 'repository_dir')

See also: WikiProcessors, WikiFormatting, TracGuide Veja também: WikiProcessors, WikiFormatting, TracGuide

 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.