Modul:Wikidata – Wikipedie
Přeskočit na obsah
Z Wikipedie, otevřené encyklopedie
Dokumentace
Zobrazit
] [
Editovat
] [
historie
] [
vyprázdnit paměť
Hlavní modul pro práci s daty na
Wikidatech
. Jeho základ byl převzat z
test2wiki:Module:Wikidata
, postupně je rozšiřován o nové funkce.
Modul je rozdělen do submodulů:
Modul:Wikidata/lib
– knihovna funkcí pro všechny další submoduly,
Modul:Wikidata/i18n
– lokalizace
Modul:Wikidata/Filterers
– filtrování tvrzení nebo vymezení podle kritérií,
Modul:Wikidata/Formatters
– formátování údajů,
Modul:Wikidata/Sorters
– seřazování údajů (podle abecedy, data apod.),
Modul:Wikidata/cite
– formátování referencí,
Modul:Wikidata/sandbox
– testovací modul,
Modul:Wikidata/testcases
unit testing
Viz též seznam
šablon
, které tento modul využívají.
Použití
Podrobnější nápovědu naleznete na stránce
Wikipedie:Wikidata/Přebírání do infoboxů
Do šablony vložte
{{#invoke:Wikidata|funkce|parametry = jako v šablonách}}
Parametry a funkce označené hvězdičkou (*) nejsou plně podporované a není zatím doporučeno je využívat. Naopak parametry či funkce označené křížkem (†) jsou zastaralé a mohou být v brzké době odstraněny.
Přehled všech funkcí a parametrů
Funkce
Popis funkce
Parametr
Povinný
Popis parametru
formatStatements
získá data, vybere tvrzení, přefiltruje, seřadí a zformátuje jejich hodnoty a vrátí jejich seznam
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
property
ano
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), jejíž hodnoty se mají zformátovat a zobrazit
addlink
ne
pokud je „true“, na konci dat z repozitáře se objeví
(e)
odkazující přímo na vlastnost
addclass
ne
pokud je „false“, potlačí obalení údajů
CSS třídou
(používat jen ve výjimečných případech)
value-formatter
ne
submodul
modulu Wikidata/Formatters
(jeho podstránka), která se použije pro formátování hodnot, pokud výchozí submodul není vyhovující (
seznam
návod
limit
ne
maximální počet hodnot, které se v seznamu zobrazí
rank
ne
nutné postavení hodnoty v rámci tvrzení;
může být
all
– použijí se všechna tvrzení;
best
– použijí se buď pouze tvrzení, která mají preferované postavení, nebo pouze ta s normálním postavením, pokud žádné preferované není;
valid
(implicitní) – použijí se jak preferovaná, tak normálně postavená tvrzení;
preferred
normal
deprecated
– použijí se pouze tvrzení s odpovídajícím postavením
withtarget
ne
hodnota, jíž mají nabývat hledaná tvrzení (užitečné zejména pro funkce
getCount
getQualifier
withqualifier
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), která musí být přiřazena dané hodnotě v tvrzení jako vymezení
withqualifiervalue
ne
hodnota, jíž má nabývat vlastnost vymezení daná parametrem „withqualifier“
withoutqualifier
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), která nesmí být přiřazena dané hodnotě v tvrzení jako vymezení
withoutqualifiervalue
ne
hodnota, jíž nemá nabývat vlastnost vymezení daná parametrem „withoutqualifier“
withunit
ne
identifikátor položky na Wikidatech
withlabel*
withsitelink*
withlang
ne
kód jazyka, ve kterém mají být hodnoty jednojazyčného textu
date
ne
datum ve formátu YYYY-MM-DD nebo „#now“ (dnešní datum), ke kterému mají být tvrzení platná
sort
ne
způsob, jakým změnit implicitní pořadí jednotlivých hodnot; hodnota parametru odpovídá čárkou odděleným podstránkám
modulu Wikidata/Sorters
invert
ne
pokud je „true“ a je zadán způsob řazení („sort“), řazení bude sestupné, nikoliv výchozí vzestupné
pattern
ne
pokud je typ hodnoty řetězec, je toto vzor pro zformátování, přičemž „$1“ nahrazuje daný řetězec
autoformat
ne
pokud je „true“ a typ hodnoty řetězec, modul se na stránce dotyčné vlastnosti pokusí najít náhradu za
pattern
URL pro zformátování
(P1630)
) a aplikuje ji
precision
ne
přizpůsobení formátu časových údajů (pokud je skutečná přesnost nižší, formát se přizpůsobí jí); 11 – 24. dubna 2026, 10 – duben 2026, 9 – 2026 atd.
somevalue
ne
pokud je vyplněný, modul bude zobrazovat i speciální hodnotu „neznámá hodnota“ s tímto textem
novalue
ne
pokud je vyplněný, modul bude zobrazovat i speciální hodnotu „bez hodnoty“ s tímto textem
showqualifier
ne
čárkou oddělené identifikátory vlastností na Wikidatech (písmeno „p“ následované číslicemi nebo „time“), které se zobrazí v závorce za hodnotou, pokud jsou dané hodnotě jako vymezení přiřazeny
showsource
ne
pokud je „true“, k datům z repozitáře se přidají reference
max_ref
ne
maximální počet referencí, které se mají zobrazit
showmore
ne
pokud je hodnota „true“, tak se v případě, že existuje více hodnot, než kolik povoluje
limit
, zobrazí na konci jejich seznamu text „… více na
Wikidatech
“ s odkazem přímo na vlastnost
list
ne
pokud je hodnota „ul“ nebo „ol“, hodnoty budou vráceny jako HTML seznam („ol“ – číslovaný, „ul“ – odrážkový)
separator
ne
znaky, jimiž se v seznamu oddělí jednotlivé hodnoty, kromě předposlední a poslední (implicitně čárka, neplatí pro HTML seznam)
conjunction
ne
znaky, jimiž se v seznamu oddělí předposlední a poslední hodnota (implicitně spojka „a“, neplatí pro HTML seznam)
qualifiers ...
ne
takto uvozený argument (např. „qualifiers precision“) bude použit pro výběr a formátování vymezení
showtargetdata*
ne
podobné jako „showqualifier“, ovšem data se místo z vymezení získávají z cílové položky
targetdate*
ne
podobné jako „date“, vztahuje se k údajům cílové položky
formatStatementsFromLua
funkce, kterou používají pouze jiné moduly a která je jinak shodná s
formatStatements
entity
ne
tabulka s entitou, s níž má modul pracovat
getSitelink
vrátí odkaz na článek daného projektu
site / první nepojmenovaný
ne
zkratka projektu (implicitně „cswiki“)
pattern
ne
vzor pro zformátování odkazu, kde „$1“ je název odkazovaného článku (implicitně „$1“)
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
addclass
ne
pokud je „true“, odkaz bude obalen
CSS třídou
getLabel
vrátí štítek položky v daném jazyce
lang
ne
zkratka jazyka (implicitně „cs“)
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
addclass
ne
pokud je „true“, štítek bude obalen
CSS třídou
getDescription
vrátí popisek položky v daném jazyce
lang
ne
zkratka jazyka (implicitně „cs“)
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
addclass
ne
pokud je „true“, popisek bude obalen
CSS třídou
getAliases
vrátí aliasy položky v daném jazyce
lang
ne
zkratka jazyka (implicitně „cs“)
limit
ne
maximální počet aliasů, který se má zobrazit
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
showmore
ne
jako u
formatStatements
list
ne
separator
ne
conjunction
ne
getBadges
vrátí štítek odznaku přiřazeného danému odkazu na článek
site
ano
zkratka projektu
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou)
of
ne
identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti
page
ne
název stránky, jejíž položka se má použít pro získání údajů
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
getCount
vrátí počet tvrzení podle daných kritérií
všechny parametry pro filtrování
getCurrentId
vrátí id položky, se kterou je stránka propojena
getId
Vrátí id položky propojené se zadanou stránkou. Není-li propojená a jedná se o
přesměrování
, následuje jej (i rekurzivně). Nepodaří-li se, zkusí další stránky, pokud jich bylo zadáno víc. Nedostane-li parametry přímo, zpracuje parametry předané volající šabloně.
první, druhý, ... nepojmenovaný
ne
název stránky na dané wiki (implicitně aktuální stránka)
wiki
ne
zkratka projektu (např. enwiki), z něhož uvedená stránka pochází
getRawValue
použije stejná kritéria jako
formatStatements
, ovšem vrátí strojově čitelný (nezformátovaný) údaj
všechny parametry pro filtrování
field
ne
pokud je typ hodnoty souřadnice, toto je její část, která se zobrazí; jedno z „latitude“, „longitude“, „precision“ a „globe“
getRawValueFromLua
jako
getRawValue
, pro použití v jiném modulu
entity
ne
tabulka s entitou, s níž má modul pracovat
getQualifier
vrací hodnoty vymezení nalezeného tvrzení
qualifier
ano
vlastnost vymezení, jejíž hodnoty mají být vráceny
qualifiers ...
ne
takto uvozený argument (např. „qualifiers withlang“) bude použit pro výběr (při filtrování) vymezení
stejné jako u funkce
formatStatements
getRawQualifier
aplikuje chování funkce
getRawValue
na
getQualifier
stejné jako u funkce
getQualifier
formatEntity
lokalizuje položku zadanou pomocí jejího identifikátoru (pokusí se vytvořit lokální odkaz a zobrazit štítek)
id
ne
id položky, která se má zformátovat (jinak id položky, se kterou je stránka propojena)
entityExists
zjistí, zda entita (položka, vlastnost atd.) s daným identifikátorem existuje (přesměrování se považuje za existující)
id / první nepojmenovaný
ano
id položky, jejíž existenci zjišťujeme
ifexpr
ne
pokud je „true“, negativní hodnota bude vrácena jako „0“, jinak (výchozí chování) jako prázdný řetězec (užitečné, pokud ve wikitextu používáme funkci #ifexpr:, a ne #if:)
isValidEntityId
zjistí, zda zadaný řetězec je platný identifikátor entity (položky, vlastnosti atd.)
id / první nepojmenovaný
ano
řetězec, jehož validitu testujeme
ifexpr
ne
jako u
entityExists
dumpWikidataEntity
zobrazí entitu v čitelné podobě, užitečná pro ladění a zavádění nových funkcí, nepoužívá se v šablonách nebo článcích
id
ne
identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž entita se zobrazí (implicitně je to položka propojená s danou stránkou)
Je navrženo
začlenění
celého obsahu modulu
WikidataIB
do tohoto modulu.
Odtamtud sem pak má vést
přesměrování
. K návrhu se můžete vyjádřit v
diskusi
require
'strict'
local
{}
local
lib
require
'Modul:Wikidata/lib'
local
i18n
mw
loadData
'Modul:Wikidata/i18n'
local
getArgs
require
'Modul:Arguments'
).
getArgs
local
function
getWikidataArgs
frame
local
args
getArgs
frame
frameOnly
true
})
local
parent_args
getArgs
frame
parentOnly
true
})
local
add
''
if
parent_args
item
and
not
args
id
then
args
id
parent_args
item
add
lib
category
'arbitrary-data'
end
return
args
add
end
local
function
outputBool
arg
ifexpr
local
map
if
ifexpr
then
map
true
false
else
map
true
false
''
end
return
map
arg
end
local
function
removeDuplicates
values
local
TableTools
require
'Modul:TableTools'
return
TableTools
removeDuplicates
values
end
local
function
getEntityIdFromStatements
statements
for
statement
in
ipairs
statements
do
if
lib
IsSnakValue
statement
mainsnak
then
if
statement
mainsnak
datavalue
type
~=
'wikibase-entityid'
then
error
lib
raiseInvalidDatatype
'getEntityIdFromStatements'
statement
mainsnak
datatype
'wikibase-item'
'wikibase-property'
}))
end
local
Formatters
require
'Modul:Wikidata/Formatters'
return
Formatters
getRawValue
statement
mainsnak
{})
end
break
end
return
nil
end
local
function
getEntityIdFromEntity
entity
prop
local
prop
mw
ustring
upper
prop
local
statements
entity
getBestStatements
prop
return
getEntityIdFromStatements
statements
end
local
function
getEntityIdFromId
id
prop
local
prop
mw
ustring
upper
prop
local
statements
mw
wikibase
getBestStatements
id
prop
return
getEntityIdFromStatements
statements
end
local
function
getIdFromTitle
titleString
wiki
if
wiki
then
return
mw
wikibase
getEntityIdForTitle
titleString
wiki
end
local
title
mw
title
new
titleString
while
title
do
local
id
mw
wikibase
getEntityIdForTitle
title
prefixedText
if
id
then
return
id
end
title
title
redirectTarget
end
return
nil
end
local
function
findEntityId
options
local
id
if
options
entity
and
type
options
entity
==
'table'
then
id
options
entity
id
end
if
not
id
and
options
page
then
id
getIdFromTitle
options
page
options
wiki
if
not
id
then
return
nil
end
end
if
not
id
then
id
options
id
or
getCurrentId
()
end
if
id
and
options
of
then
id
getEntityIdFromId
id
options
of
end
return
id
end
local
function
findEntity
options
local
entity
if
options
entity
and
type
options
entity
==
'table'
then
entity
options
entity
end
if
not
entity
then
if
options
id
then
local
id
options
id
upper
()
entity
mw
wikibase
getEntity
id
if
entity
and
entity
id
~=
id
then
mw
log
id
..
' je přesměrování na '
..
entity
id
end
else
if
options
page
then
local
id
getIdFromTitle
options
page
options
wiki
if
id
then
entity
mw
wikibase
getEntity
id
end
else
entity
mw
wikibase
getEntity
()
end
end
end
if
options
of
then
if
entity
then
local
id
getEntityIdFromEntity
entity
options
of
if
id
then
return
mw
wikibase
getEntity
id
end
end
return
nil
end
return
entity
end
local
function
getSitelink
options
local
id
findEntityId
options
if
not
id
then
return
nil
end
local
site
options
site
or
options
local
sitelink
mw
wikibase
getSitelink
id
site
if
not
sitelink
then
return
nil
end
if
options
pattern
then
sitelink
lib
formatFromPattern
sitelink
options
pattern
end
if
lib
IsOptionTrue
options
'addclass'
then
sitelink
lib
addWdClass
sitelink
end
return
sitelink
end
local
function
formatStatementAndData
statement
options
if
not
statement
type
or
statement
type
~=
'statement'
then
error
lib
formatError
'unknown-claim-type'
statement
type
or
'[neznámý]'
))
-- fixme: i18n
end
local
Filterers
require
'Modul:Wikidata/Filterers'
local
Formatters
require
'Modul:Wikidata/Formatters'
local
result
Formatters
getFormattedValue
statement
mainsnak
options
local
qualifiers
if
statement
qualifiers
and
options
showqualifier
then
local
PropList
lib
textToTable
options
showqualifier
-- TODO: move this to a better place (config)
local
default_options
isQualifier
true
label
'short'
nolink
lib
IsOptionTrue
options
'nolink'
),
precision
for
property
in
ipairs
PropList
do
local
property
mw
ustring
upper
property
local
Values
{}
local
qualifiers_options
lib
augmentArgs
options
default_options
'qualifiers '
if
statement
qualifiers
property
then
local
Qualifiers
mw
clone
statement
qualifiers
property
])
qualifiers_options
property
property
if
not
qualifiers_options
nolink
then
qualifiers_options
nolink
Qualifiers
].
datatype
==
'time'
end
Filterers
filterQualifiers
Qualifiers
qualifiers_options
for
snak
in
ipairs
Qualifiers
do
table.insert
Values
Formatters
getFormattedValue
snak
qualifiers_options
))
end
elseif
property
==
'TIME'
then
local
Data
{}
-- TODO: factor out
for
key
array
in
pairs
lib
props
do
for
prop
in
ipairs
array
do
for
snak
in
ipairs
statement
qualifiers
prop
or
{})
do
if
lib
IsSnakValue
snak
then
-- dokud nebude jasné, jak to používat
Data
key
snak
break
end
end
end
end
if
Data
begin
or
Data
ending
then
qualifiers_options
nolink
true
table.insert
Values
lib
formatDateRange
Data
qualifiers_options
))
end
end
if
Values
then
result
property
mw
text
listToText
removeDuplicates
Values
),
qualifiers_options
separator
qualifiers_options
conjunction
end
end
end
if
statement
references
and
lib
IsOptionTrue
options
'showsource'
then
-- TODO: configure custom formatter
local
Module
require
'Modul:Wikidata/cite'
result
ref
Module
formatReferences
statement
references
options
-- or table of references?
end
return
result
end
local
function
formatStatement
statement
options
local
data
formatStatementAndData
statement
options
local
result
data
if
options
isQualifier
==
true
then
return
result
end
local
qualifiers
if
statement
qualifiers
and
options
showqualifier
then
local
PropList
lib
textToTable
options
showqualifier
local
tmp
{}
for
prop
in
ipairs
PropList
do
local
prop
mw
ustring
upper
prop
if
data
prop
then
table.insert
tmp
data
prop
])
end
end
if
tmp
then
qualifiers
table.concat
tmp
i18n
'qualifiers separator'
])
end
end
if
not
qualifiers
and
options
showtargetdata
then
local
entity
local
Filterers
require
'Modul:Wikidata/Filterers'
local
Formatters
require
'Modul:Wikidata/Formatters'
if
lib
IsSnakValue
statement
mainsnak
then
if
statement
mainsnak
datavalue
type
==
'wikibase-entityid'
then
entity
mw
wikibase
getEntity
Formatters
getRawValue
statement
mainsnak
{}))
else
error
lib
formatError
'invalid-datatype'
statement
mainsnak
property
statement
mainsnak
datatype
'wikibase-item/wikibase-property'
))
end
end
if
entity
then
local
PropList
lib
textToTable
options
showtargetdata
local
date
local
rank
'best'
if
options
targetdate
then
if
lib
isPropertyId
options
targetdate
then
date
getRawValueFromLua
entity
options
entity
property
options
targetdate
else
date
options
targetdate
end
if
date
then
rank
'valid'
end
end
local
options
addclass
false
autoformat
true
date
date
entity
entity
isQualifier
true
label
'short'
nolink
true
precision
rank
rank
sort
'date'
},
local
Snaks
{}
for
property
in
ipairs
PropList
do
local
result
if
mw
ustring
lower
property
==
'time'
then
local
Data
{}
for
key
array
in
pairs
lib
props
do
for
prop
in
ipairs
array
do
options
property
prop
local
Statements
Filterers
filterStatementsFromEntity
entity
options
for
statement
in
ipairs
Statements
do
Data
key
statement
mainsnak
break
end
end
end
if
Data
begin
or
Data
ending
then
result
lib
formatDateRange
Data
options
end
else
options
property
property
result
formatStatementsFromLua
options
end
if
result
then
table.insert
Snaks
result
end
end
if
Snaks
then
qualifiers
table.concat
Snaks
i18n
'qualifiers separator'
])
end
end
end
if
qualifiers
then
if
options
delimiter
then
result
result
..
options
delimiter
..
qualifiers
else
result
result
..
' ('
..
qualifiers
..
')'
end
end
if
data
ref
and
data
ref
~=
''
then
return
result
..
data
ref
..
lib
category
'references'
end
return
result
end
local
function
formatStatements
statements
options
local
formattedStatements
{}
for
statement
in
ipairs
statements
do
table.insert
formattedStatements
formatStatement
statement
options
))
end
return
formattedStatements
end
local
function
getStatements
id
options
if
not
id
then
return
{}
end
local
statements
mw
wikibase
getAllStatements
id
options
property
upper
())
local
Filterers
require
'Modul:Wikidata/Filterers'
Filterers
filterStatements
statements
options
return
statements
end
local
function
prepareShowMore
options
if
options
limit
and
lib
IsOptionTrue
options
'showmore'
then
options
limit
options
limit
return
true
end
return
false
end
local
function
handleShowMore
values
limit
add_more
if
add_more
then
if
values
==
limit
then
table.remove
values
else
add_more
false
end
end
return
add_more
end
local
function
makeList
values
options
add_more
link
values
removeDuplicates
values
-- TODO: maybe make optional
if
add_more
then
local
parts
mw
text
split
link
'#'
true
-- b/c
table.insert
values
mw
ustring
format
i18n
'more-on-Wikidata'
],
parts
],
parts
or
''
))
end
local
text
if
options
list
==
'ul'
or
options
list
==
'ol'
then
local
li
{}
for
val
in
ipairs
values
do
table.insert
li
mw
ustring
format
'

  • %s
  • '
    val
    ))
    end
    text
    mw
    ustring
    format
    '<%s class="wd">%s'
    options
    list
    table.concat
    li
    ),
    options
    list
    else
    text
    mw
    text
    listToText
    values
    options
    separator
    options
    conjunction
    if
    lib
    IsOptionTrue
    options
    'addlink'
    then
    -- TODO: data-bridge-edit-flow
    text
    mw
    ustring
    format
    '%s ([[d:%s|e]])'
    text
    link
    end
    if
    tostring
    options
    addclass
    ~=
    'false'
    then
    text
    lib
    addWdClass
    text
    end
    end
    return
    text
    end
    local
    function
    getFormattedStatements
    options
    options
    limit
    tonumber
    options
    limit
    --TODO default?
    local
    add_more
    prepareShowMore
    options
    local
    id
    findEntityId
    options
    local
    statements
    getStatements
    id
    options
    if
    statements
    ==
    then
    return
    nil
    end
    add_more
    handleShowMore
    statements
    options
    limit
    add_more
    options
    id
    id
    -- Format statements and concat them cleanly
    local
    formattedStatements
    formatStatements
    statements
    options
    local
    property
    mw
    ustring
    upper
    options
    property
    local
    link
    mw
    ustring
    format
    '%s#%s'
    id
    property
    local
    text
    makeList
    formattedStatements
    options
    add_more
    link
    if
    lib
    IsOptionTrue
    options
    'addcat'
    then
    text
    text
    ..
    lib
    category
    'used-property'
    property
    end
    return
    text
    end
    local
    function
    getRawValue
    options
    if
    not
    options
    rank
    then
    options
    rank
    'best'
    end
    for
    statement
    in
    ipairs
    getStatements
    options
    ))
    do
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    return
    Formatters
    getRawValue
    statement
    mainsnak
    options
    end
    return
    nil
    end
    local
    function
    getQualifiers
    args
    if
    not
    args
    qualifier
    then
    error
    lib
    formatError
    'param-not-provided'
    'qualifier'
    ))
    end
    if
    not
    args
    rank
    then
    args
    rank
    'best'
    end
    for
    statement
    in
    ipairs
    getStatements
    args
    ))
    do
    if
    statement
    qualifiers
    then
    local
    qualifier_args
    lib
    augmentArgs
    args
    {},
    'qualifiers '
    local
    qualifiers
    mw
    clone
    statement
    qualifiers
    mw
    ustring
    upper
    args
    qualifier
    )]
    or
    {})
    local
    Filterers
    require
    'Modul:Wikidata/Filterers'
    Filterers
    filterQualifiers
    qualifiers
    qualifier_args
    return
    qualifiers
    end
    return
    {}
    end
    return
    {}
    end
    ----- API pro šablony -----
    function
    compareStatements
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    return
    _compareStatements
    args
    end
    function
    dumpWikidataEntity
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    return
    mw
    dumpObject
    mw
    wikibase
    getEntity
    args
    id
    end
    function
    getBadges
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    local
    site
    args
    site
    if
    not
    site
    then
    error
    lib
    formatError
    'param-not-provided'
    'site'
    ))
    end
    local
    id
    findEntityId
    args
    if
    not
    id
    then
    return
    nil
    end
    local
    Badges
    {}
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    for
    badge
    in
    ipairs
    mw
    wikibase
    getBadges
    id
    site
    ))
    do
    table.insert
    Badges
    Formatters
    formatRawValue
    badge
    'wikibase-entityid'
    ))
    end
    return
    table.concat
    Badges
    ', '
    end
    function
    getLabel
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    local
    id
    findEntityId
    args
    if
    not
    id
    then
    return
    nil
    end
    local
    lang
    label
    args
    lang
    if
    lang
    then
    label
    mw
    wikibase
    getLabelByLang
    id
    lang
    else
    label
    lang
    mw
    wikibase
    getLabelWithLang
    id
    end
    if
    not
    label
    then
    return
    nil
    end
    label
    mw
    text
    nowiki
    label
    if
    lib
    IsOptionTrue
    args
    'addclass'
    then
    if
    lang
    ~=
    i18n
    lang
    then
    return
    lib
    addWdClass
    lib
    formatTextInLanguage
    label
    lang
    ))
    else
    return
    lib
    addWdClass
    label
    end
    end
    return
    label
    end
    function
    getDescription
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    local
    id
    findEntityId
    args
    if
    not
    id
    then
    return
    nil
    end
    local
    lang
    description
    args
    lang
    if
    lang
    then
    description
    mw
    wikibase
    getDescriptionByLang
    id
    lang
    else
    description
    lang
    mw
    wikibase
    getDescriptionWithLang
    id
    end
    if
    not
    description
    then
    return
    nil
    end
    description
    mw
    text
    nowiki
    description
    if
    lib
    IsOptionTrue
    args
    'addclass'
    then
    if
    lang
    ~=
    i18n
    lang
    then
    return
    lib
    addWdClass
    lib
    formatTextInLanguage
    description
    lang
    ))
    else
    return
    lib
    addWdClass
    description
    end
    end
    return
    description
    end
    function
    getAliases
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    local
    entity
    findEntity
    args
    local
    lang
    args
    lang
    or
    i18n
    lang
    if
    not
    entity
    or
    not
    entity
    aliases
    or
    not
    entity
    aliases
    lang
    then
    return
    nil
    end
    args
    limit
    tonumber
    args
    limit
    local
    add_more
    prepareShowMore
    args
    local
    limit
    args
    limit
    local
    Aliases
    {}
    for
    alias
    in
    ipairs
    entity
    aliases
    lang
    ])
    do
    table.insert
    Aliases
    mw
    text
    nowiki
    alias
    value
    ))
    if
    ==
    limit
    then
    break
    end
    end
    add_more
    handleShowMore
    Aliases
    limit
    add_more
    return
    makeList
    Aliases
    args
    add_more
    entity
    id
    end
    function
    getId
    frame
    local
    args
    getArgs
    frame
    frameOnly
    false
    parentOnly
    false
    parentFirst
    false
    })
    if
    not
    args
    then
    return
    mw
    wikibase
    getEntityIdForCurrentPage
    ()
    end
    for
    titleString
    in
    ipairs
    args
    do
    local
    id
    getIdFromTitle
    titleString
    args
    wiki
    if
    id
    then
    return
    id
    end
    end
    return
    nil
    end
    function
    getSitelink
    frame
    return
    getSitelink
    getArgs
    frame
    frameOnly
    true
    }))
    end
    function
    formatStatements
    frame
    local
    args
    add
    getWikidataArgs
    frame
    if
    args
    value
    then
    return
    args
    value
    end
    -- b/c [[Module:Wikidata infobox]]
    local
    value
    getFormattedStatements
    args
    if
    value
    then
    return
    value
    ..
    add
    end
    return
    value
    end
    function
    formatTimespan
    frame
    local
    args
    add
    getWikidataArgs
    frame
    local
    subargs
    {}
    local
    data
    {}
    local
    defaults
    sort
    'default'
    for
    key
    in
    pairs
    start
    true
    'end'
    true
    do
    local
    prefix
    key
    ..
    ' '
    if
    not
    args
    prefix
    ..
    'property'
    then
    error
    'param-not-provided'
    prefix
    ..
    'property'
    end
    subargs
    key
    lib
    augmentArgs
    args
    defaults
    prefix
    local
    statements
    getStatements
    subargs
    key
    ])
    if
    statements
    then
    data
    key
    statements
    end
    end
    if
    not
    data
    start
    and
    not
    data
    'end'
    then
    return
    nil
    end
    local
    out
    {}
    if
    data
    start
    and
    data
    'end'
    then
    for
    startSt
    in
    ipairs
    data
    start
    do
    for
    endSt
    in
    ipairs
    data
    'end'
    ])
    do
    local
    separator
    ' – '
    -- TODO
    table.insert
    out
    mw
    ustring
    format
    '%s%s%s'
    formatStatement
    startSt
    subargs
    start
    ),
    separator
    formatStatement
    endSt
    subargs
    'end'
    ])
    end
    end
    else
    for
    key
    in
    pairs
    start
    true
    'end'
    true
    do
    for
    statement
    in
    ipairs
    data
    key
    or
    {})
    do
    table.insert
    out
    mw
    ustring
    format
    args
    key
    ..
    '-format'
    or
    i18n
    date
    key
    ],
    formatStatement
    statement
    subargs
    key
    ])
    end
    end
    end
    return
    makeList
    out
    args
    false
    ''
    ..
    add
    end
    function
    formatStatementsFromTemplate
    frame
    local
    args
    getArgs
    frame
    frameOnly
    false
    parentOnly
    false
    parentFirst
    false
    })
    return
    getFormattedStatements
    args
    end
    function
    getCount
    frame
    local
    args
    getWikidataArgs
    frame
    args
    limit
    nil
    return
    getStatements
    args
    end
    function
    getRawValue
    frame
    return
    getRawValue
    getWikidataArgs
    frame
    ))
    end
    function
    getQualifier
    frame
    local
    args
    add
    getWikidataArgs
    frame
    args
    limit
    tonumber
    args
    'qualifiers limit'
    or
    args
    limit
    local
    add_more
    prepareShowMore
    args
    local
    limit
    args
    limit
    args
    'qualifiers limit'
    limit
    args
    limit
    local
    qualifiers
    getQualifiers
    args
    if
    qualifiers
    ==
    then
    return
    nil
    end
    add_more
    handleShowMore
    qualifiers
    limit
    add_more
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    local
    formattedQualifiers
    {}
    for
    qualifier
    in
    ipairs
    qualifiers
    do
    table.insert
    formattedQualifiers
    Formatters
    getFormattedValue
    qualifier
    args
    ))
    end
    local
    link
    ''
    -- TODO: we don't have statement anchor
    -- TODO: references?
    return
    makeList
    formattedQualifiers
    args
    add_more
    link
    ..
    add
    end
    function
    getRawQualifier
    frame
    local
    args
    getWikidataArgs
    frame
    args
    limit
    for
    qualifier
    in
    ipairs
    getQualifiers
    args
    ))
    do
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    return
    Formatters
    getRawValue
    qualifier
    args
    end
    return
    nil
    end
    function
    getCurrentId
    ()
    return
    mw
    wikibase
    getEntityIdForCurrentPage
    ()
    end
    function
    formatEntity
    frame
    local
    args
    getArgs
    frame
    frameOnly
    true
    })
    args
    id
    args
    id
    or
    getCurrentId
    ()
    if
    args
    id
    then
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    return
    Formatters
    formatRawValue
    args
    id
    'wikibase-entityid'
    args
    end
    return
    nil
    end
    function
    entityExists
    frame
    return
    outputBool
    mw
    wikibase
    entityExists
    frame
    args
    id
    or
    frame
    args
    ]),
    lib
    IsOptionTrue
    frame
    args
    'ifexpr'
    ))
    end
    function
    isValidEntityId
    frame
    return
    outputBool
    mw
    wikibase
    isValidEntityId
    frame
    args
    id
    or
    frame
    args
    ]),
    lib
    IsOptionTrue
    frame
    args
    'ifexpr'
    ))
    end
    ----- API pro moduly -----
    function
    formatStatementsFromLua
    options
    return
    getFormattedStatements
    options
    end
    function
    getSitelinkFromLua
    options
    return
    getSitelink
    options
    or
    {})
    end
    function
    getStatements
    args
    local
    id
    findEntityId
    args
    return
    getStatements
    id
    args
    end
    function
    getStatementsWithData
    args
    local
    statements
    getStatements
    args
    local
    result
    {}
    for
    statement
    in
    ipairs
    statements
    do
    table.insert
    result
    formatStatementAndData
    statement
    args
    ))
    end
    return
    result
    end
    function
    getRawValueFromLua
    options
    return
    getRawValue
    options
    end
    function
    getRawValues
    options
    local
    Values
    {}
    local
    Formatters
    require
    'Modul:Wikidata/Formatters'
    for
    st
    in
    ipairs
    getStatements
    options
    ))
    do
    table.insert
    Values
    Formatters
    getRawValue
    st
    mainsnak
    options
    ))
    end
    return
    Values
    end
    formatStatementsTable
    formatStatements
    function
    _compareStatements
    args
    if
    not
    args
    value
    then
    error
    lib
    formatError
    'param-not-provided'
    'value'
    ))
    end
    local
    statements
    getStatements
    args
    local
    compare
    require
    'Modul:Wikidata/compare'
    return
    compare
    compareValues
    args
    value
    statements
    args
    end
    return
    Citováno z „
    Kategorie
    Wikipedie:Moduly
    Skryté kategorie:
    Údržba:Šablony ke sloučení
    Wikipedie:Dlouhodobě zamčené stránky
    Modul
    Wikidata
    Přidat téma