Mòdul:Criteri UKB
Aparença
Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]
A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]
Funcionalitat de {{Criteri UKB}}.
Ús
[modifica]Codi | Resultat |
---|---|
{{#invoke:Criteri UKB|criterion|criterion=nou}}
|
creat durant el concurs |
{{#invoke:Criteri UKB|criterion|criterion=nou|redirects=true}}
|
creades durant el concurs (redireccions incloses) |
{{#invoke:Criteri UKB|criterion|criterion=existeix}}
|
creat abans de l'inici del concurs (pàgines existents) |
{{#invoke:Criteri UKB|criterion|criterion=esborrany}}
|
s'ha esborrat la plantilla d'esborrany |
{{#invoke:Criteri UKB|criterion|criterion=bytes|1000}}
|
ampliat amb almenys 1000 bytes |
{{#invoke:Criteri UKB|criterion|criterion=espai de noms|0|10}}
|
és un article o plantilla |
{{#invoke:Criteri UKB|criterion|criterion=espai de noms|0|10|site=www.wikidata.org}}
|
és un article o plantilla at www.wikidata.org |
{{#invoke:Criteri UKB|criterion|criterion=espai de noms|0}}
|
és un article |
{{#invoke:Criteri UKB|criterion|criterion=backlink|Llista de presidents de Catalunya}}
|
enllaçat des de Llista de presidents de Catalunya |
{{#invoke:Criteri UKB|criterion|criterion=forwardlink|Bergen}}
|
enllaç a Bergen |
{{#invoke:Criteri UKB|criterion|criterion=plantilla|Millorar ortografia}}
|
conté la plantilla {{Millorar ortografia}} |
{{#invoke:Criteri UKB|criterion|criterion=plantilla|Citació necessària|Falten referències}}
|
conté almenys una de les plantilles {{Citació necessària}} o {{Falten referències}} |
{{#invoke:Criteri UKB|criterion|criterion=categoria|Islàndia}}
|
a la categoria Islàndia |
{{#invoke:Criteri UKB|criterion|criterion=categoria|Islàndia|nn:Island|se:Islánda}}
|
Error de Lua a la línia 134: bad argument #2 to 'format' (string expected, got nil). |
{{#invoke:Criteri UKB|criterion|criterion=categoria|Hominoïdeus|ignore=Humans,Hominoïdeus a la ficció}}
|
a la categoria Hominoïdeus, però no es present a Humans o Hominoïdeus a la ficció |
{{#invoke:Criteri UKB|criterion|criterion=pàgines|Islàndia|Groenlàndia}}
|
Islàndia o Groenlàndia |
Si el text generat no s'adequa a les necessitats es pot sobreescriure utilitzant |descripcio=
:
Codi | Resultat |
---|---|
{{#invoke:Criteri UKB|criterion|criterion=espai de noms|0|10|descripcio=a l'espai de noms Principal}}
|
és un article o plantilla |
uk = {}
local messages = {
['or'] = 'o',
['error_no_x_given'] = 'No inclou %s',
['error_no_valid_criterion_given'] = 'El criteri definit no és vàlid',
['templates'] = 'plantilles',
['template_criterion_singular'] = 'conté la plantilla %s',
['template_criterion_plural'] = 'conté almenys una de les plantilles %s',
['categories'] = 'categories',
['category_criterion_singular'] = 'a la categoria %s',
['category_criterion_plural'] = 'conté almenys una de les categories %s',
['category_criterion_ignore'] = ', però no es present a %s',
['backlinks'] = 'enllaçat',
['backlink_criterion_singular'] = 'enllaçat des de %s',
['backlink_criterion_plural'] = 'enllaçat des de %s',
['forwardlinks'] = 'enllaç',
['forwardlink_criterion_singular'] = 'enllaç a %s',
['forwardlink_criterion_plural'] = 'enllaços a %s',
['pages'] = 'pàgines',
['page_criterion_singular'] = '%s',
['page_criterion_plural'] = '%s',
['sparql_criterion'] = 'té un ítem a Wikidata que encaixa amb [%s aquesta consulta SPARQL]',
['sparql_criterion_with_explanation'] = '%s ([%s mostra consulta SPARQL])',
['bytes_criterion'] = 'ampliat amb almenys %s bytes',
['namespace_criterion_singular'] = 'és un %s',
['namespace_criterion_plural'] = 'és un %s',
['namespace_main'] = 'articles',
['new_criterion'] = 'creat durant el concurs',
['new_criterion_with_redirects'] = 'creades durant el concurs (redireccions incloses)',
['existing_criterion'] = 'creat abans de l\'inici del concurs (pàgines existents)',
['stub_criterion'] = 's\'ha esborrat la plantilla d\'esborrany',
}
local config = {
['template_link_template'] = 'Tl',
['error_message_template'] = 'Error',
['arguments'] = {
['new'] = 'nou',
['existing'] = 'existeix',
['stub'] = 'esborrany',
['bytes'] = 'bytes',
['namespace'] = 'espai de noms',
['category'] = 'categoria',
['template'] = 'plantilla',
['backlink'] = 'backlink',
['forwardlink'] = 'forwardlink',
['pages'] = 'pàgines',
['sparql'] = 'sparql',
}
}
local category_prefix = {
['ca'] = 'ca:Categoria',
['commons'] = 'commons:Category',
['default'] = 'Categoria'
}
-- format_kriterium
local function format_criterion(singular, plural, items)
if #items > 1 then
return string.format(messages[singular .. '_criterion_plural'],
mw.text.listToText(items, ', ', ' ' .. messages['or'] .. ' '))
elseif #items == 1 then
return string.format(messages[singular .. '_criterion_singular'], items[1])
else
return string.format('{{%s|' .. messages['error_no_x_given'] .. '}}',
config['error_message_template'], messages[plural])
end
end
local function pagelist(args)
local r = {}
for i, v in ipairs(args) do
v = mw.text.trim(v)
if v ~= '' then
local lang, page = string.match(v, '^([a-z\]+):(.+)$')
if lang then
table.insert(r, string.format('[[:%s:%s|%s]]', lang, page, page))
else
table.insert(r, string.format('[[:%s]]', v))
end
end
end
return r
end
local function nslist(args)
local r = {}
local namespaceName = 'article'
for i, namespaceId in ipairs(args) do
namespaceId = mw.text.trim(namespaceId)
if namespaceId ~= '' then
if namespaceId ~= "0" then
namespaceName = '{{lc:{{ns:' .. namespaceId .. '}}}}'
end
table.insert(r, namespaceName)
end
end
return r
end
-- kriterium_maler
local function criterion_templates(args)
local r = {}
for i, v in ipairs(args) do
v = mw.text.trim(v)
if v ~= '' then
local m, n = string.match(v, '^([a-z\]+):(.+)$')
if m then
table.insert(r, string.format('{{%s|%s|%s}}', config['template_link_template'], n, m))
else
table.insert(r, string.format('{{%s|%s}}', config['template_link_template'], v))
end
end
end
return format_criterion('template', 'templates', r)
end
local function make_category_link(v)
local lang = 'default'
local name = v
local m, n = string.match(v, '^([a-z\]+):(.+)$')
if m then
lang = m
name = n
end
return string.format('[[:%s:%s|%s]]', category_prefix[lang], name, name)
end
-- kriterium_kategorier
local function criterion_categories(args, ignore)
local r = {}
for i, v in ipairs(args) do
v = mw.text.trim(v)
if v ~= '' then
table.insert(r, make_category_link(v))
end
end
local msg = format_criterion('category', 'categories', r)
ignore = ignore:expand()
if ignore ~= nil and mw.text.trim(ignore) ~= '' then
r = mw.text.split(ignore, ',')
for i, v in ipairs(r) do
v = mw.text.trim(v)
r[i] = make_category_link(v)
end
msg = msg .. string.format(messages['category_criterion_ignore'], mw.text.listToText(r, ', ', ' ' .. messages['or'] .. ' '))
end
return msg
end
-- kriterium_tilbakelenke
local function criterion_backlinks(args)
return format_criterion('backlink', 'backlinks', pagelist(args))
end
-- kriterium_fremlenke
local function criterion_forwardlinks(args)
return format_criterion('forwardlink', 'forwardlinks', pagelist(args))
end
-- kriterium_enkeltsider
local function criterion_pages(args)
return format_criterion('page', 'pages', pagelist(args))
end
-- kriterium_sparql
local function criterion_sparql(frame, query, explanation)
local url = 'http://query.wikidata.org/#' .. frame:callParserFunction('urlencode', { query, 'PATH' })
if explanation ~= nil then
return string.format(messages['sparql_criterion_with_explanation'], explanation, url)
else
return string.format(messages['sparql_criterion'], url)
end
end
-- kriterium_bytes
local function criterion_bytes(args)
return string.format(messages['bytes_criterion'], args[1])
end
-- kriterium_navnerom
local function criterion_namespaces(args, site)
site = site:expand()
local msg = format_criterion('namespace', 'namespaces', nslist(args, site))
if site ~= nil then
site = mw.text.trim(site)
if site ~= '' then
return string.format('%s at [https://%s %s]', msg, site, site)
end
end
return msg
end
-- kriterium_ny
local function criterion_new(redirects)
redirects = redirects:expand()
local msg = messages['new_criterion']
if redirects ~= nil and mw.text.trim(redirects) ~= '' then
msg = messages['new_criterion_with_redirects']
end
return msg
end
--kriterium
function uk.criterion(frame)
local description = frame:getArgument('description'):expand()
if description ~= nil and mw.text.trim(description) ~= '' then
if frame.args.criterion == 'sparql' then
return criterion_sparql(frame, frame:getArgument('query'):expand(), description)
else
return description
end
end
local t = {
[config['arguments']['new']] = function(args) return criterion_new(frame:getArgument('redirects')) end,
[config['arguments']['existing']] = messages['existing_criterion'],
[config['arguments']['stub']] = messages['stub_criterion'],
[config['arguments']['bytes']] = function(args) return criterion_bytes(args) end,
[config['arguments']['namespace']] = function(args) return criterion_namespaces(args, frame:getArgument('site')) end,
[config['arguments']['template']] = function(args) return criterion_templates(args) end,
[config['arguments']['category']] = function(args) return criterion_categories(args, frame:getArgument('ignore')) end,
[config['arguments']['backlink']] = function(args) return criterion_backlinks(args) end,
[config['arguments']['forwardlink']] = function(args) return criterion_forwardlinks(args) end,
[config['arguments']['pages']] = function(args) return criterion_pages(args) end,
[config['arguments']['sparql']] = function(args) return criterion_sparql(frame, frame:getArgument('query'):expand()) end,
}
local args = {}
for i, v in ipairs(frame.args) do
if tonumber(i) ~= nil then
args[i] = v
end
end
local k = frame.args.criterion
local s = type(t[k]) == "function" and t[k](args) or t[k] or string.format('{{%s|%s}}', config['error_message_template'], messages['error_no_valid_criterion_given'])
return frame:preprocess(s)
end
return uk