BT

Wikimedia adota geração de templates baseada em Lua

por Rafael Sakurai em 26 Mar 2013 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT