Módulo:Cat principal
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Este módulo é usado em mais de 6 500 páginas. (Ver Wikihelp:Predefinições em alto risco) Para evitar sobrecargas desnecessárias ao servidor e outros transtornos, quaisquer mudanças devem ser previamente testadas, seja na predefinição de testes ou em Módulo:Cat principal/Testes (ou ainda em sua página de testes). Por favor, sempre considere expor eventuais mudanças na página de discussão, antes de implementá-las. |
Descrição
Este módulo produz uma ligação que diz "O artigo principal para esta categoria é x." Ele utiliza a predefinição {{cat principal}}
.
Utilização de texto wiki
Este módulo deve normalmente ser utilizado através da predefinição {{cat principal}}
. Mesmo assim, ele pode ser usado de #invoke com sintaxe {{#invoke:Cat main|catMain|parâmetros}}
. Por favor utilize a documentação da predefinição {{cat principal}}
para os parâmetros disponíveis.
Este módulo produz uma ligação para um artigo principal ou artigos. Ele utiliza a predefinição {{cat principal}}
. Normalmente produz uma ligação como "Artigo principal: A". Se for utilizado no domínio categoria, ele produz um link como "O artigo principal para esta categoria é A". É possível definir vários artigos, e neste caso as palavras em plural são utilizadas automaticamente. Se o primeiro link não é um artigo, o módulo utiliza as palavras "Página principal" em vez de "Artigo principal".
Utilização de texto wiki
Este módulo não pode ser acedido diretamente de #invoke. Em vez disso, só pode ser utilizado através da predefinição {{cat principal}}
. Por favor ver a página da predefinição para a sua documentação.
Utilização de outros módulos Lua
Carregue o módulo:
local mMain = require('Módulo:Cat main')
Você pode utilizar a função _main desta maneira:
mMain._main(args, options)
options é uma tabela opcional que pode ser utilizada para configurar o que a função mostra. Existem duas opções disponíveis, "artigo" e "selfref".
- artigo - se isto for definidos como false, "no", "n", "false", "não" ou 0, o módulo mostra "A página principal" em vez de "O artigo principal". Utilize o código Predefinição:Code.
- selfref - isto é usado quando o que se mostra é uma referência própria da Wikihelp. Para configura esta opção, use Predefinição:Code. (Ver a predefinição
{{autorreferência}}
para mais detalhe sobre autorreferências.)
Os restantes argumentos são nomes de páginas que são transformados em ligações seguindo o texto "O artigo principal para esta categoria é". Se não existir o nome da página definido, é utilizado para o primeiro link o nome da página atual (menos o nome do domínio).
- Exemplo 1
mCatMain._catMain(nil, 'Foo')
Mostra:
<div class="hatnote relarticle mainarticle">O artigo principal para esta [[Ajuda:Categoria|categoria]] é '''[[Foo]]'''.</div>
Mostra-se: Predefinição:Cat principal
- Exemplo 2
mCatMain._catMain(nil, 'Foo', 'Bar', 'Baz')
Mostra-se:
<div class="hatnote relarticle mainarticle">Os artigos principais para esta [[Ajuda:Categoria|categoria]] é '''[[Foo]]''', '''[[Bar]]''' e '''[[Baz]]'''.</div>
Mostra-se: Predefinição:Cat principal
- Exemplo 3
mCatMain._catMain({article = false}, 'Foo')
Mostra-se:
<div class="hatnote relarticle mainarticle">A página principal para esta [[Ajuda:Categoria|categoria]] é '''[[Foo]]'''.</div>
Mostra-se: Predefinição:Cat principal
Detalhes técnicos
Este módulo utiliza o Módulo:Hatnote para formatar texto hatnote.
-- This module implements {{cat main}}.
local mHatnote = require('Módulo:Hatnote')
local yesno = require('Módulo:Yesno')
local mTableTools -- lazily initialise
local mArguments -- lazily initialise
local p = {}
function p.catMain(frame)
mTableTools = require('Módulo:TableTools')
mArguments = require('Módulo:Arguments')
local args = mArguments.getArgs(frame, {wrappers = 'Predefinição:Cat principal'})
local pages = mTableTools.compressSparseArray(args)
local options = {
article = args.article,
selfref = args.selfref
}
return p._catMain(options, unpack(pages))
end
function p._catMain(options, ...)
options = options or {}
-- Get the links table.
local links = mHatnote.formatPages(...)
if not links[1] then
local page = mw.title.getCurrentTitle().text
links[1] = mHatnote._formatLink(page)
end
for i, link in ipairs(links) do
links[i] = string.format("'''%s'''", link)
end
-- Get the pagetype.
local pagetype
if yesno(options.article) ~= false then
pagetype = 'artigo'
else
pagetype = 'página'
end
-- Work out whether we need to be singular or plural.
local stringToFormat
if #links > 1 then
stringToFormat = 'Os [[WP:CRIAR|%ss]] principais desta [[Ajuda:Categorias|categoria]] são %s.'
else
stringToFormat = 'O [[WP:CRIAR|%s]] principal desta [[Ajuda:Categoria|categoria]] é %s.'
end
-- Get the text.
local text = string.format(
stringToFormat,
pagetype,
mw.text.listToText(links)
)
-- Pass it through to Module:Hatnote.
local hnOptions = {}
hnOptions.selfref = options.selfref
hnOptions.extraclasses = 'relarticle mainarticle'
return mHatnote._hatnote(text, hnOptions)
end
return p