BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Wikimedia adota geração de templates baseada em Lua

Wikimedia adota geração de templates baseada em Lua

A Wikimedia adotou a linguagem de programação Lua para geração dos templates de páginas utilizados em diversos sites como o Wikipedia em inglês. A alteração tem como finalidade facilitar a criação de templates e a utilização de tabelas, caixas de informações e outros componentes utilizados na plataforma MediaWiki (a base da Wikipedia e de muitos projetos e empresas).

Sumana Harihareswara, gerente de engenharia da comunidade da Wikimedia, resumiu os problemas relacionados aos templates das páginas, que motivaram a mudança:

Quando começamos a procurar a causa da lentidão no carregamento das páginas alguns anos atrás, vimos que as CPUs passavam muito tempo interpretando os templates. ... Como nunca planejamos usar o wikitext, as tags de marcação do MediaWiki, como uma linguagem de programação, os templates ficaram ineficientes e complexos, sem poder contar com o uso de recursões e loops, e com performance terrível.

Foi criada uma extensão que facilita a criação dos templates:

Nossa equipe e voluntários trabalharam no Scribunto (que em Latin significa "eles escreveram"), uma extensão do MediaWiki que permitir aos editores adicionarem scripts Lua ao invés de wikitext nos templates.

Atualmente, o Scribunto suporta apenas o uso da linguagem Lua, e através da nova extensão, a Wikimedia espera facilitar a geração de novos templates e melhorar a performance principalmente de cálculos matemáticos, e da manipulação e conversão de strings e de árvores de decisão.

Os scripts em Lua serão armazenados como módulos com o namespace Module e podem conter diversas funções que podem ser chamadas através da seguinte sintaxe:

{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}

Um exemplo de template "olá mundo" com Lua disponível no site do Wikipedia e mostra como chamar a função "hello" do módulo "bananas":

{{#invoke:bananas|hello}}

Para mais informações confira o manual disponibilizado pela Wikimedia, que mostra como criar os templates com Lua utilizando as bibliotecas básicas e o Scribunto.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT