Wikipédia:Projetos/Scribunto
Bem vindo ao Projeto Scribunto !
Este projeto coordena os esforços do desenvolvedores Lua para criar novas predefinições usando a extensão Scribunto implantada em 18 de fevereiro de 2013 na versão portuguesa da Wikipédia.
Esta página ainda não está completa (nem a estética), não hesite para melhorá-la!
Introdução ao Scribunto e Lua
editar- O que faz esta extensão ?
Scribunto permite gerar conteúdo automatizado (wikitexto), na linguagem de programação Lua, no lugar de ou dentro do MediaWiki predefinição.
Por que usar isso? As predefinições ou modelos atuais usam as funções parser para executar processos complexos (gerenciamento de parâmetros, condições, etc.). No entanto, estes últimos apresentam muitos problemas de eficiência e legibilidade, tornando mais difícil editar e criar predefinições. Além disso, as predefinições complexas incluem predefinições que incluem predefinições que têm um impacto muito forte no desempenho.
Lua torna esses tratamentos mais legíveis, mais compactos, mais leves (no nível do servidor) e mais poderosos.
- O que isso muda para editar artigos?
Na prática, nada! O consenso atual não é chamar módulos diretamente do espaço enciclopédico. Assim, nos artigos existem apenas chamadas de uma predefinição - como antes do Scribunto - e são as predefinições que usam os módulos.
Algumas predefinições têm o seu código modificado para chamar funções escritas em Lua, sem que a sua sintaxe mude. A longo prazo, a sintaxe dos modelos pode - possivelmente - evoluir para aproveitar os novos recursos de outras predefinições.
Novidades
editarNota : um indica que a funcionalidade está presente na pt:
- o método frame:argumentPairs() agora está obsoleto. As funções pairs() e ipairs() agora funcionam nas tabelas frame.args
- Adicionado um método getContent() (em mw.title) para obter uma versão não interpretada de uma página.
- Adicionado um biblioteca mw.text. Ver esta modificação.
Ainda não validadoValidado mas não integrado no Mediawiki. Esta biblioteca parece ter dois papéis: conter funções gerais úteis (trim, *split, truncate ...) e fornecer uma maneira de gerenciar tags (nowiki, ...). A seguir. - Adicionada a possibilidade de ter uma sub-página de documentação para os módulos. Ver esta modificação. O nome da subpágina da documentação está vinculado à mensagem do sistema scribunto-doc-subpage-name. Isso está no git "master", provavelmente estará disponível no próximo lançamento.
- addendum: parece que, a pedido de alguns wikis que não usam subpágina para a sua documentação, espera-se uma transformação dos docs do sistema. Não seria mais uma subpágina cujo nome é indicado por scribunto-doc-subpage-name, mas uma página indicada por scribunto-doc-page-name, o último possivelmente contendo um "$1" (ou um Projetos/Scribunto, não está claro) para que aqueles que preferirem subpáginas possam usar por exemplo "$1/documentation".
- Este risco talvez atrase a atualização, porque é solicitado que esta alteração seja aplicada ao scribunto antes da implantação geral (hoje e 18 de março), a fim de evitar a imposição renomeia e muda de operação para todos os outros wikis ... Para ser continuado.
- Um desenvolvedor criou o objeto mw.title. Isso fornecerá a Lua acesso ao título e ao espaço do nome do artigo, além de ter o recurso #ifexist:. Isto está no git "master", provavelmente estará
sem duvidadisponível no próximo lançamento. - A biblioteca ustring permite a manipulação correta de strings UTF-8. Está presente em pt:, mas cuidado: ao contrário de string que é usado diretamente, ustring está atualmente em objeto mw (então temos que chamar 'mw.ustring para acessá-lo).
O que falta
editar- as diferentes variantes para obter a data e hora nas diversas formas. Nota : os.date("*t") devolve uma tabela contendo a data. No entanto, esta é a data e hora do servidor e não a data e hora locais.
Projetos em curso
editar- Criação de novas funções Lua. Se você quiser ver uma predefinição reescrita com Lua, deixe uma mensagem na página de discussão;
- Melhorar o Lua e página Ajuda:Lua;
- Testar extensão Scribunto e sugestão de novos recursos.
Módulos existentes
editarAs funções Lua são agrupadas em módulos, preferencialmente temáticas.
- Arguments, para utilizar um frame com argumentos
- Utilidades, para utilizar um frame com argumentos
- Categoria de Módulos para uso geral, para utilizar em geral
- Formato, dedicado a formatar cadeias de texto
- Data, dedicado ao calendário {{Dtlink}}
- Bandeira, dedicado a mostrar bandeiras
- Testes, dedicado aos… testes
- Unitest Scribunto, para listar as tabelas (mw, frame, args...), documentar os testes…
- Documentação módulo que gera os cabeçalhos de documentação para os módulos e suas páginas de documentação. Módulo chamado diretamente por mediawiki ao exibir a página, para nunca incluir nas páginas da documentação.
Recursos
editar- Manual de referências de Lua
- em português − pode atrasar a tradução em comparação com a versão em inglês
- em inglês
- (em inglês) API specification : adaptations MediaWiki para comparar a Lua