Mudanças entre as edições de "Módulo:Cat principal"

Origem: IRChelp Brasil - Wiki
Ir para navegação Ir para pesquisar
(Criou página com '-- This module implements {{cat main}}. local mHatnote = require('Módulo:Hatnote') local yesno = require('Módulo:Yesno') local mTableTools -- lazily initialise local mArgum...')
 
(Sem diferença)

Edição atual tal como às 17h52min de 27 de março de 2020


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