Extension:Scribunto/pt-br

From MediaWiki.org
Jump to: navigation, search
Manual de extensões do MediaWikiManual:Extensions
Crystal Clear action run.png
Scribunto

Estado da versão:Extension status estável

ImplementaçãoTemplate:Extension#type Parser extension
DescriçãoTemplate:Extension#description Fornece uma estrutura para a incorporação de linguagens de script em páginas MediaWiki
Autor(es)Template:Extension#username Victor & Tim (Tim Starlingtalk)
Última versãoTemplate:Extension#version Atualizações contínuas
MediaWikiTemplate:Extension#mediawiki 1.20 ou superior (confira o pacote REL1_20 para suporte na versão 1.20, mas note que ela não tem algumas características)
Modifica o banco
de dados
Template:Extension#needs-updatephp
Não
LicençaTemplate:Extension#license GPLv2+
Download
ExemploTemplate:Extension#example Test2 Wikipedia
Espaço nominalTemplate:Extension#namespace Module
ParâmetrosTemplate:Extension#parameters
  • $wgScribuntoDefaultEngine
  • $wgScribuntoEngineConf
  • $wgScribuntoUseGeSHi
  • $wgScribuntoUseCodeEditor
Hooks usadosTemplate:Extension#hook
SoftwareInfoManual:Hooks/SoftwareInfo
ParserFirstCallInitManual:Hooks/ParserFirstCallInit
ParserLimitReportManual:Hooks/ParserLimitReport
ParserClearStateManual:Hooks/ParserClearState
ParserClonedManual:Hooks/ParserCloned
CanonicalNamespacesManual:Hooks/CanonicalNamespaces
CodeEditorGetPageLanguageManual:Hooks/CodeEditorGetPageLanguage
EditPageBeforeEditChecksManual:Hooks/EditPageBeforeEditChecks
EditPageBeforeEditButtonsManual:Hooks/EditPageBeforeEditButtons
EditFilterMergedManual:Hooks/EditFilterMerged
ArticleViewHeaderManual:Hooks/ArticleViewHeader
ContentHandlerDefaultModelForManual:Hooks/ContentHandlerDefaultModelFor
UnitTestsListManual:Hooks/UnitTestsList

Traduza a extensão Scribunto, se estiver disponível no translatewiki.net

Verifique a matriz de uso e versão

ProblemasPhabricator

Tarefas em aberto · Relatar um bug

A extensão Scribunto (em latim: "eles escreverão") permite a incorporação de linguagens de script no MediaWiki. Atualmente, a única linguagem de script suportada é Lua.

Requisitos[edit]

PCRE >= 8.10[edit]

  • Você pode verificar a versão da biblioteca PCRE usada pelo PHP a partir da visualização de uma página web exibindo a função phpinfo(), ou a partir da linha de comando com o comando php -i.

Binário do Lua[edit]

A extensão vem em pacotes com distribuições binárias do Lua para Linux (x86 and x86-64), Mac OS X Lion, e Windows (32- and 64-bit).

O Scribunto deve funcionar para você fora do pacote se:

  1. Seu servidor web for executado em uma das plataformas acima.
  2. A função do PHP Proc_open não estiver restrita.
  3. O seu servidor web estiver configurado para permitir a execução de arquivos binários na árvore do MediaWiki.
    • Observe que as permissões de execução podem precisar ser definidas; por exemplo, no Linux use chmod a+x /path/to/engines/LuaStandalone/binaries/*/lua

Binários adicionais[edit]

Distribuições binárias adicionais do Lua, que podem ser necessárias para o seu servidor web, se seu sistema operacional não estiver na lista acima, podem ser obtidas a partir do endereço http://luabinaries.sourceforge.net/ ou de sua distribuição Linux. Somente os arquivos binários para Lua 5.1.x são suportados. Depois de instalar o arquivo binário apropriado no seu servidor web, configure o local do arquivo com:

# where lua is the name of the binary file
# e.g. sourceforge LuaBinaries 5.1.4 - Release 2 name the binary file lua5.1
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/path/to/binaries/lua5.1';

Instalação[edit]

  • Baixe e extraia os arquivos em um diretório chamado Scribunto em sua pasta extensions/. Se você é um desenvolvedor e esta extensão está em um repositório Git, então em vez disso você deve clonar o repositório.
  • Adicione o seguinte código no final do arquivo LocalSettings.php:
require_once( "$IP/extensions/Scribunto/Scribunto.php" );
$wgScribuntoDefaultEngine = 'luastandalone';
  • YesY Concluído Navegue na página "Special:Version" em seu wiki para verificar se a extensão foi instalada com sucesso.

Instalação opcional[edit]

Para uma interface de usuário mais agradável, com destaque de sintaxe e um editor de código com autoindentação, instale as seguintes extensões:

Então, em seu arquivo LocalSettings.php, depois de todos os registros de extensão, adicione:

$wgScribuntoUseGeSHi = true;
$wgScribuntoUseCodeEditor = true;

LuaSandbox[edit]

Desenvolvemos uma extensão para PHP escrita na linguagem C chamada LuaSandbox. Ela pode ser usada como uma alternativa para o binário independente, e proporcionará um desempenho melhorado.

Download[edit]

git clone https://gerrit.wikimedia.org/r/p/mediawiki/php/luasandbox.git

Requisitos[edit]

Instale os cabeçalhos e arquivos de biblioteca para PHP e ou o Lua 5.1.x ou LuaJIT 1.1.x.

  • para distribuições Linux derivadas do Debian, como o Ubuntu:
sudo apt-get install php5-dev
sudo apt-get install liblua5.1-dev
brew install lua

Instalação[edit]

cd luasandbox
phpize
./configure
make
make install

php.ini[edit]

  • Adicione a seguinte referência de extensão: extension=luasandbox.so
  • Reinicie o servidor web
  • Verifique que há uma seção do luasandbox na página phpinfo()

Configuração[edit]

As seguintes variáveis ​​de configuração estão disponíveis:

$wgScribuntoDefaultEngine 
Selecione o motor. Os valores válidos são as chaves em $wgScribuntoEngineConf, que por padrão são 'luasandbox' ou 'luastandalone'.
$wgScribuntoUseGeSHi 
Quando a extensão SyntaxHighlight_GeSHi estiver instalada, defina como true para usá-la ao exibir páginas Módulo.
$wgScribuntoUseCodeEditor 
Quando a extensão CodeEditor estiver instalada, defina como true para usá-la ao editar páginas Módulo.
$wgScribuntoEngineConf 
Um array associativo para a configuração do motor. As chaves são os valores válidos para a variável $wgScribuntoDefaultEngine, e os valores são arrays associativos de dados de configuração. Cada array de configuração deve conter uma chave 'class' nomeando a subclasse ScribuntoEngineBase para usa-la.

Logando[edit]

Saída de erro produzida pelo interpretador autônomo que não está logado, por padrão. Configure o registro com:

$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/path/to/file.log';

LuaStandalone[edit]

As seguintes chaves são usadas na variável $wgScribuntoEngineConf para o motor Scribunto_LuaStandaloneEngine. Geralmente você definiria-as como algo parecido com

$wgScribuntoEngineConf['luastandalone']['key'] = 'value';
luaPath 
Especifica o caminho para um interpretador Lua.
errorFile 
Especifica o caminho para um arquivo, gravável pelo usuário do servidor web, onde o erro e saída de depuração do interpretador autônomo serão registrados.
memoryLimit 
Especifica o limite de memória em bytes para o interpretador autônomo no Linux (aplicadas usando ulimit).
cpuLimit 
Especifica o limite de tempo de CPU, em segundos, para o interpretador autônomo no Linux (aplicadas usando ulimit).
allowEnvFuncs 
Defina como true para permitir o uso de setfenv e getfenv em módulos.

LuaSandbox[edit]

As seguintes chaves são usadas na variável $wgScribuntoEngineConf para o motor Scribunto_LuaSandboxEngine. Geralmente você definiria-as como algo parecido com

$wgScribuntoEngineConf['luasandbox']['key'] = 'value';
memoryLimit 
Especifica o limite de memória em bytes.
cpuLimit 
Especifica o limite de tempo de CPU em segundos.
profilerPeriod 
Especifica o tempo entre as pesquisas em seções para o profiler Lua.
allowEnvFuncs 
Defina como true para permitir o uso de setfenv e getfenv em módulos.

Lua[edit]

Lua é uma linguagem de programação simples destinada a ser acessível a iniciantes. Para um curso intensivo rápido na Lua, experimente Aprenda Lua em 15 Minutos.

A introdução mais abrangente ao Lua é o livro "Programming in Lua". A primeira edição (para o Lua 5.0) está disponível on-line e é mais relevante para o Lua 5.1, a versão usada pelo Scribunto:

O manual de referência também é útil:

Lua environment[edit]

No Lua, o conjunto de todas as variáveis ​​e funções globais é chamado de ambiente.

Cada chamada {{#invoke:}} é executada em um ambiente separado. Variáveis definidas em um {{#invoke:}} não estarão disponíveis em outro. Esta restrição foi necessária para manter a flexibilidade na implementação do analisador de wikitexto.

Note[edit]

O ambiente em que scripts são executados não é exatamente o mesmo que no padrão do Lua. Estas diferenças são notadas em /Lua reference manual#Differences from standard Lua.

Uso[edit]

Scripts estão contidos em um novo namespace chamado Módulo. Cada módulo tem um conjunto de funções, que podem ser chamadas usando a sintaxe de wikitexto como:

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

Solução de problemas[edit]

Resolução de problemas usando o link clicável "Script error".

Observe que a mensagem Script error (em vermelho) pode ser clicada e fornecerá informações mais detalhadas.

Script error: Lua error: Internal error: The interpreter exited with status 1[edit]

Ao utilizar o motor LuaStandalone (que é o padrão), erros ao longo das linhas "Script error: Lua error: Internal error: The interpreter exited with status 1" poderão ser gerados se o interpretador Lua standalone não puder ser executado ou for executado com vários erros de execução. Para obter mais informações, atribua um caminho de arquivo para $wgScribuntoEngineConf['luastandalone']['errorFile']. A saída de erro pelo interpretador será registrada para o arquivo especificado, o que deve ser mais útil no rastreamento do problema. As informações no log do debug incluem informações de depuração, e é por isso que há vários detalhes sobre ela. Você deve ignorar qualquer linha que comece com "TX" ou "RX".

Version 'GLIBC_2.11' not found[edit]

Se forem exibidos erros como "version 'GLIBC_2.11' not found", significa que a versão da biblioteca padrão C em seu sistema é muito antiga para os binários fornecidos com o Scribunto. Você deve atualizar a sua biblioteca C, ou usar uma versão de Lua 5.1 compilada para a biblioteca C que você tem instalada. Para atualizar a sua biblioteca C, sua melhor opção é, em geral, seguir as instruções da sua distribuição para atualizar os pacotes (ou fazer o upgrade para uma nova versão da distribuição, se aplicável).

Se você copiar os binários do Lua do master do Scribunto (ou de gerrit:77905), que deve ser suficiente, se você não puder ou não quiser atualizar a sua biblioteca C. Os binários distribuídos recentemente foram recompilados contra uma versão mais antiga da glibc, por isso, o mínimo é o 2.3 em vez do 2.11.

attempt to index field 'text' (a nil value)[edit]

Se forem exibidos erros como "attempt to index field 'text' (a nil value)" ao tentar usar o módulo mw.text, provavelmente a sua versão do Scribunto está desatualizada. Atualize se possível; para usuários avançados, você pode também tentar identificar as submissões mais recentes necessárias e inseri-las em sua instalação local.

preg_replace_callback(): Compilation failed: unknown property name after \P or \p at offset 7[edit]

preg_replace_callback(): Compilation failed: unknown property name after \P or \p at offset 7

  • esta mensagem geralmente indica uma versão incompatível do PCRE; você vai precisar atualizar para a versão 8.10 ou superior
  • @todo: link para obter instruções sobre como atualizar

Script error[edit]

Se você copiar predefinições da Wikipédia e, em seguida, obter uma grande mensagem em vermelho "Script error" onde a invocação do Scribunto (ou seja, a predefinição que utiliza {{#invoke:}}) deveria estar, isso provavelmente significa que você não importou tudo o que precisava. Certifique-se de que você marcou a caixa "Include templates" em wikipedia:Special:Export quando você fizer a exportação.

Ao importar páginas de um outro wiki, também é possível para predefinições ou módulos nos dados importados substituir predefinições ou módulos existentes com o mesmo título, o que pode quebrar páginas existentes, predefinições e módulos que dependem das versões substituídas.

Tela em branco[edit]

Certifique-se que a versão de sua extensão se aplica a sua versão MediaWiki.

Documentos de design[edit]

Outras páginas[edit]


Língua:Project:Language policy English  • 日本語 • português do Brasil