Модуль:Wikibase

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
{{i}} Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]

Документація — на ru:Модуль:Wikibase

Функції

function M.id(f)
  • без параметрів — повертає id елемента поточної сторінки на Вікіданих або порожній рядок на сторінці без Елемента Вікіданих
  • задано параметр |1= — дістає id значення вказаної в ньому Властивості
    • |2= - роздільник, якщо значень кілька ("; " за замовчуванням)
    • |n= — позиція, порядковий номер значення із таблиці значень
    • |3= - формат для строкової властивості, за замовчуванням "%s"
поточна сторінка: Q8565357 Властивість P31 (для поточної сторінки): Q15184295
function M.label(f)

--Мітка (label) елемента Вікіданих у 1-му параметрі

поточна сторінка: Модуль:Wikibase для Q5: людина: людина
function M.labelq(f) для q5 дасть наступне: людина (q5)
function M.labelp(f) для p31 дасть наступне: є одним із (p31)
function M.iwiki(f)

-- Інтервікі для вказаної мови (лише з ВД)

поточна (de): Modul:Wikibase todo -- для qid : Помилка Lua у Модуль:Uses_Wikidata/пісочниця у рядку 118: attempt to index field '?' (a nil value).
function M.iwikiall(f)

-- Усі посилання, прив'язані до елементу на ВД, у т.ч. Вікігід та Сховище

поточна: для Q5:
function M.page(f)

-- сторінка Укрвікі для даного елемента

для Q5: Людина
function M.titleid(f) qid для назви сторінки
  • [1] : назва вікі-сторінки
  • [2] : опція — код вікі (напр. enwiki)
  • Україна = "Q212"
  • Географія України = "Q277597"
  • Краснодарский край : ruwiki = "Q3680" : Категорія:Краснодарський край
  • Kategorie:Deutschland : dewiki = "Q1410828"
  • Category:Kiev : commonswiki = ""
  • Категория:Краснодарский край : ruwikivoyage = "Q5871163" : Краснодарський край
function M.wdprops(f)

-- список усіх властивостей із ВД у вигляді, придатному для читання людиною

головний предмет твору елемент Wikibase*
Wikibase
є одним із модуль проєкту Вікімедіа*
мова програмування Lua
не плутати з Template:WikiBaseball*
Помилка Lua у Модуль:Uses_Wikidata/пісочниця у рядку 180: attempt to concatenate field 'numeric-id' (a nil value).
function M.wbview(ref,id)

--допоміжна функція для підпису з Вікіданих, не для виклику з шаблонів

function M.struc(f)

-- Відлагоджувальна функція, має бути перенесена в окремий модуль

--Структуру див. mw:Extension:WikibaseClient/Lua#Entity table and data structure

{aliases = {es = {1 = {language = es; value = Módulo:Wikibase}}; sr = {1 = {language = sr; value = Modul:Wikibase}}}; claims = {P1889 = {1 = {id = Q8565357$918b2c5c-4e3d-eb7a-66d2-6f634205d33a; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q14936030; numeric-id = 14936030}}; property = P1889; snaktype = value}; rank = normal; type = statement}}; P277 = {1 = {id = q8565357$3d371908-4672-9af2-c442-009e98f11e2b; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q207316; numeric-id = 207316}}; property = P277; snaktype = value}; rank = normal; type = statement}}; P31 = {1 = {id = q8565357$E8CA5415-37B8-41FD-B0F3-F2AC6B3B4FEA; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q15184295; numeric-id = 15184295}}; property = P31; snaktype = value}; rank = normal; type = statement}}; P921 = {1 = {id = Q8565357$75ff08a2-47e9-5f14-597d-984c2775f5ba; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q29934200; numeric-id = 29934200}}; property = P921; snaktype = value}; rank = normal; type = statement}; 2 = {id = Q8565357$82f93256-4a04-3584-e087-17873efd9ece; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q16354758; numeric-id = 16354758}}; property = P921; snaktype = value}; rank = normal; type = statement}}}; descriptions = {an = {language = an; value = lua Modulo}; ar = {language = ar; value = وحدة}; ast = {language = ast; value = módulu de Wikimedia}; ba = {language = ba; value = Модуль}; be-tarask = {language = be-tarask; value = модуль Вікімэдыі}; bg = {language = bg; value = Уикимедия модул}; bn = {language = bn; value = উইকিমিডিয়ার মডিউল}; bs = {language = bs; value = lua Modul}; ca = {language = ca; value = Mòdul Lua}; crh-latn = {language = crh-latn; value = lua Modul}; cs = {language = cs; value = lua Modul}; cy = {language = cy; value = lua Modiwl}; da = {language = da; value = lua Modul}; de = {language = de; value = Wikimedia-Modul}; dsb = {language = dsb; value = lua Modul}; dv = {language = dv; value = މޮޑިއުލް}; en = {language = en; value = Wikimedia module}; en-ca = {language = en-ca; value = Wikimedia module}; en-gb = {language = en-gb; value = Wikimedia module}; eo = {language = eo; value = Modulo lua}; es = {language = es; value = módulo de Wikimedia}; et = {language = et; value = lua Moodul}; eu = {language = eu; value = Modulu lua}; fa = {language = fa; value = پودمان}; fr = {language = fr; value = module de Wikimedia}; gl = {language = gl; value = Módulo de Wikipedia}; he = {language = he; value = חידה}; hsb = {language = hsb; value = Modul lua}; hu = {language = hu; value = Modul lua}; id = {language = id; value = modul skrip Lua untuk ekstensi Wikibase}; ilo = {language = ilo; value = modulo ti Lua}; it = {language = it; value = modulo di un progetto Wikimedia}; ja = {language = ja; value = モジュール}; ka = {language = ka; value = მოდული}; ko = {language = ko; value = 모듈}; min = {language = min; value = modul skrip Lua untuak ekstensi Wikibase}; ml = {language = ml; value = വിക്കിമീഡിയ ഘടകം}; ms = {language = ms; value = Modul lua}; nb = {language = nb; value = Modullua}; nl = {language = nl; value = Wikimedia-module}; nn = {language = nn; value = Modul lua}; pl = {language = pl; value = Moduł lua}; pt = {language = pt; value = módulo da Wikimedia}; pt-br = {language = pt-br; value = Módulo lua}; ro = {language = ro; value = modul Wikimedia}; ru = {language = ru; value = Модуль}; ryu = {language = ryu; value = ヰキメディヤぬモジュール}; sk = {language = sk; value = Modul lua}; sl = {language = sl; value = Modul lua}; sq = {language = sq; value = modul i Wikimedias}; sv = {language = sv; value = Wikimedia-modul}; tr = {language = tr; value = Modül lua}; uk = {language = uk; value = Модуль}; vi = {language = vi; value = module Wikimedia}; yue = {language = yue; value = 模組}; zh = {language = zh; value = Lua模組}; zh-hans = {language = zh-hans; value = 用于Wikibase扩展的Lua模块}; zh-hant = {language = zh-hant; value = Lua 模組}}; id = Q8565357; labels = {af = {language = af; value = Module:Wikibase}; alt = {language = alt; value = Модуль:Wikibase}; ar = {language = ar; value = وحدة:Wikibase}; ary = {language = ary; value = وحدة:Wikibase}; as = {language = as; value = Module:Wikibase}; ast = {language = ast; value = Módulu:Wikibase}; az = {language = az; value = Module:Wikibase}; ba = {language = ba; value = Модуль:Wikibase}; ban = {language = ban; value = Modul:Wikibase}; be = {language = be; value = Модуль:Wikibase}; be-tarask = {language = be-tarask; value = Модуль:Wikibase}; bg = {language = bg; value = Module:Wikibase}; bho = {language = bho; value = Module:Wikibase}; bjn = {language = bjn; value = Modul:Wikibase}; bn = {language = bn; value = মডিউল:উইকিবেস}; bs = {language = bs; value = Modul:Wikibase}; ca = {language = ca; value = Wikibase}; cdo = {language = cdo; value = 模組:Wikibase}; ce = {language = ce; value = Модуль:Wikibase}; ckb = {language = ckb; value = مۆدیوول:Wikibase}; cs = {language = cs; value = Modul:Wikibase}; cv = {language = cv; value = Модуль:Wikibase}; cy = {language = cy; value = Modiwl:Wikibase}; da = {language = da; value = Modul:Wikibase}; dag = {language = dag; value = Module:Wikibase}; de = {language = de; value = Module:Wikibase}; din = {language = din; value = Mukääcëtök:Wikibase}; el = {language = el; value = Module:Wikibase}; en = {language = en; value = Module:Wikibase}; en-ca = {language = en-ca; value = Module:Wikibase}; en-gb = {language = en-gb; value = Module:Wikibase}; eo = {language = eo; value = Modulo:Wikibase}; es = {language = es; value = Wikibase}; et = {language = et; value = Moodul:Wikibase}; eu = {language = eu; value = Modulu:Wikibase}; fa = {language = fa; value = پودمان:Wikibase}; fi = {language = fi; value = Module:Wikibase}; fo = {language = fo; value = Module:Wikibase}; fr = {language = fr; value = Module:Wikibase}; ga = {language = ga; value = Module:Wikibase}; gl = {language = gl; value = Wikibase}; gsw = {language = gsw; value = Modul:Wikibase}; gu = {language = gu; value = વિભાગ:Wikibase}; guc = {language = guc; value = Módulo:Wikibase}; hak = {language = hak; value = 模組:Wikibase}; hi = {language = hi; value = Module:Wikibase}; hu = {language = hu; value = Modul:Wikibase}; hy = {language = hy; value = Մոդուլ:Wikibase}; hyw = {language = hyw; value = Մոդուլ:Wikibase}; id = {language = id; value = Module:Wikibase}; ilo = {language = ilo; value = Modulo:Wikibase}; inh = {language = inh; value = Модуль:Wikibase}; it = {language = it; value = Modulo:Wikibase}; ja = {language = ja; value = モジュール:Wikibase}; jv = {language = jv; value = Modhul:Wikibase}; kab = {language = kab; value = Module:Wikibase}; kk = {language = kk; value = Module:Wikibase}; kn = {language = kn; value = ಮಾಡ್ಯೂಲ್:Wikibase}; ko = {language = ko; value = 모듈:Wikibase}; krc = {language = krc; value = Модуль:Wikibase}; ku = {language = ku; value = Module:Wikibase}; lb = {language = lb; value = Modul:Wikibase}; lez = {language = lez; value = Модуль:Wikibase}; lv = {language = lv; value = Modulis:Wikibase}; mai = {language = mai; value = मोड्युल:Wikibase}; mdf = {language = mdf; value = Модуль:Wikibase}; min = {language = min; value = Module:Wikibase}; mk = {language = mk; value = Модул:Wikibase}; ml = {language = ml; value = ഘടകം:Wikibase}; mr = {language = mr; value = विभाग:Wikibase}; my = {language = my; value = Module:Wikibase}; nah = {language = nah; value = Módulo:Wikibase}; nan = {language = nan; value = 模組:Wikibase}; nap = {language = nap; value = Modulo:Wikibase}; nb = {language = nb; value = Modul:Wikibase signature}; nl = {language = nl; value = Module:Wikibase}; oc = {language = oc; value = Mòdul:Wikibase}; or = {language = or; value = Module:Wikibase}; os = {language = os; value = Модуль:Wikibase}; pa = {language = pa; value = ਮੌਡਿਊਲ:Wikibase}; pl = {language = pl; value = Moduł:Wikibase}; pt = {language = pt; value = Módulo:Wikibase}; pt-br = {language = pt-br; value = Módulo:Wikibase}; qu = {language = qu; value = Módulo:Wikibase}; ro = {language = ro; value = Modul:Wikibase}; ru = {language = ru; value = Модуль:Wikibase}; rue = {language = rue; value = Модуль:Wikibase}; sah = {language = sah; value = Модуль:Wikibase}; sco = {language = sco; value = Module:Wikibase}; shn = {language = shn; value = မေႃႇၵျူး:Wikibase}; si = {language = si; value = Module:Wikibase}; sl = {language = sl; value = Modul:Wikibase}; smn = {language = smn; value = Mooduul:Wikibase}; sq = {language = sq; value = Moduli:Wikibase}; sr = {language = sr; value = Модул:Wikibase}; sr-ec = {language = sr-ec; value = Модул:Wikibase}; sr-el = {language = sr-el; value = Modul:Wikibase}; ss = {language = ss; value = Module:Wikibase}; sv = {language = sv; value = Modul:Wikibase}; ta = {language = ta; value = Module:Wikibase}; te = {language = te; value = మాడ్యూల్:Wikibase}; tg = {language = tg; value = Модул:Wikibase}; th = {language = th; value = มอดูล:Wikibase}; ti = {language = ti; value = ሞድዩል:Wikibase}; tl = {language = tl; value = Module:Wikibase}; tr = {language = tr; value = Modül:Wikibase}; ts = {language = ts; value = Module:Wikibase}; tt = {language = tt; value = Модуль:Wikibase}; uk = {language = uk; value = Модуль:Wikibase}; ur = {language = ur; value = ماڈیول:Wikibase}; uz = {language = uz; value = Module:Wikibase}; vec = {language = vec; value = Modulo:Wikibase}; vi = {language = vi; value = Mô đun:Wikibase}; wuu = {language = wuu; value = 模块:Wikibase}; yue = {language = yue; value = 模組:Wikibase}; zh = {language = zh; value = Module:Wikibase}; zh-hans = {language = zh-hans; value = 模块:Wikibase}; zh-hant = {language = zh-hant; value = 模組:Wikibase}}; schemaVersion = 2; sitelinks = {afwiki = {badges = {}; site = afwiki; title = Module:Wikibase}; alswiki = {badges = {}; site = alswiki; title = Modul:Wikibase}; altwiki = {badges = {}; site = altwiki; title = Модуль:Wikibase}; arwiki = {badges = {}; site = arwiki; title = وحدة:Wikibase}; arwikiquote = {badges = {}; site = arwikiquote; title = وحدة:Wikibase}; arwikisource = {badges = {}; site = arwikisource; title = وحدة:Wikibase}; arwikiversity = {badges = {}; site = arwikiversity; title = وحدة:Wikibase}; arywiki = {badges = {}; site = arywiki; title = مودول:Wikibase}; astwiki = {badges = {}; site = astwiki; title = Módulu:Wikibase}; aswikisource = {badges = {}; site = aswikisource; title = Module:Wikibase}; azwiki = {badges = {}; site = azwiki; title = Modul:Wikibase}; banwiki = {badges = {}; site = banwiki; title = Modul:Wikibase}; banwikisource = {badges = {}; site = banwikisource; title = Modul:Wikibase}; bawiki = {badges = {}; site = bawiki; title = Модуль:Wikibase}; be_x_oldwiki = {badges = {}; site = be_x_oldwiki; title = Модуль:Wikibase}; bewiki = {badges = {}; site = bewiki; title = Модуль:Wikibase}; bewikisource = {badges = {}; site = bewikisource; title = Модуль:Wikibase}; bgwiki = {badges = {}; site = bgwiki; title = Модул:Wikibase}; bhwiki = {badges = {}; site = bhwiki; title = Module:Wikibase}; bjnwiki = {badges = {}; site = bjnwiki; title = Modul:Wikibase}; bnwiki = {badges = {}; site = bnwiki; title = মডিউল:উইকিবেস}; bnwikisource = {badges = {}; site = bnwikisource; title = মডিউল:Wikibase}; bnwikivoyage = {badges = {}; site = bnwikivoyage; title = মডিউল:Wikibase}; bswiki = {badges = {}; site = bswiki; title = Modul:Wikibase}; cawiki = {badges = {}; site = cawiki; title = Mòdul:Wikibase}; cawikibooks = {badges = {}; site = cawikibooks; title = Mòdul:Wikibase}; cawikiquote = {badges = {}; site = cawikiquote; title = Mòdul:Wikibase}; cdowiki = {badges = {}; site = cdowiki; title = 模組:Wikibase}; cewiki = {badges = {}; site = cewiki; title = Модуль:Wikibase}; ckbwiki = {badges = {}; site = ckbwiki; title = مۆدیوول:Wikibase}; cvwiki = {badges = {}; site = cvwiki; title = Модуль:Wikibase}; cywiki = {badges = {}; site = cywiki; title = Modiwl:Wikibase}; dagwiki = {badges = {}; site = dagwiki; title = Module:Wikibase}; dawiki = {badges = {}; site = dawiki; title = Modul:Wikibase}; dewiki = {badges = {}; site = dewiki; title = Modul:Wikibase}; dinwiki = {badges = {}; site = dinwiki; title = Mukääcëtök:Wikibase}; elwiki = {badges = {}; site = elwiki; title = Module:Wikibase}; enwikiversity = {badges = {}; site = enwikiversity; title = Module:Wikibase}; enwikivoyage = {badges = {}; site = enwikivoyage; title = Module:Wikibase}; enwiktionary = {badges = {}; site = enwiktionary; title = Module:Wikibase}; eowiki = {badges = {}; site = eowiki; title = Modulo:Wikibase}; eowikinews = {badges = {}; site = eowikinews; title = Modulo:Wikibase}; eowikisource = {badges = {}; site = eowikisource; title = Modulo:Wikibase}; eswiki = {badges = {}; site = eswiki; title = Módulo:Wikibase}; eswikinews = {badges = {}; site = eswikinews; title = Módulo:Wikibase}; eswikiquote = {badges = {}; site = eswikiquote; title = Módulo:Wikibase}; eswikisource = {badges = {}; site = eswikisource; title = Módulo:Wikibase}; eswikivoyage = {badges = {}; site = eswikivoyage; title = Módulo:Wikibase}; etwiki = {badges = {}; site = etwiki; title = Moodul:Wikibase}; etwikiquote = {badges = {}; site = etwikiquote; title = Moodul:Wikibase}; euwiki = {badges = {}; site = euwiki; title = Modulu:Wikibase}; euwikibooks = {badges = {}; site = euwikibooks; title = Modulu:Wikibase}; fawiki = {badges = {}; site = fawiki; title = پودمان:Wikibase}; fawikivoyage = {badges = {}; site = fawikivoyage; title = پودمان:Wikibase}; fiwiki = {badges = {}; site = fiwiki; title = Moduuli:Wikibase}; fiwikibooks = {badges = {}; site = fiwikibooks; title = Moduuli:Wikibase}; fiwikinews = {badges = {}; site = fiwikinews; title = Moduuli:Wikibase}; fiwikiquote = {badges = {}; site = fiwikiquote; title = Moduuli:Wikibase}; fiwikisource = {badges = {}; site = fiwikisource; title = Moduuli:Wikibase}; fiwikiversity = {badges = {}; site = fiwikiversity; title = Moduuli:Wikibase}; fiwikivoyage = {badges = {}; site = fiwikivoyage; title = Moduuli:Wikibase}; fiwiktionary = {badges = {}; site = fiwiktionary; title = Moduuli:Wikibase}; fowiki = {badges = {}; site = fowiki; title = Module:Wikibase}; frwikisource = {badges = {}; site = frwikisource; title = Module:Wikibase}; frwikivoyage = {badges = {}; site = frwikivoyage; title = Module:Wikibase}; gawiki = {badges = {}; site = gawiki; title = Module:Wikibase}; glwiki = {badges = {}; site = glwiki; title = Módulo:Wikibase}; gucwiki = {badges = {}; site = gucwiki; title = Módulo:Wikibase}; guwiki = {badges = {}; site = guwiki; title = વિભાગ:Wikibase}; hakwiki = {badges = {}; site = hakwiki; title = 模組:Wikibase}; hiwikisource = {badges = {}; site = hiwikisource; title = अनुखंड:Wikibase}; hiwikivoyage = {badges = {}; site = hiwikivoyage; title = अनुखंड:Wikibase}; huwiki = {badges = {}; site = huwiki; title = Modul:Wikibase}; huwikisource = {badges = {}; site = huwikisource; title = Modul:Wikibase}; hywiki = {badges = {}; site = hywiki; title = Մոդուլ:Wikibase}; hywwiki = {badges = {}; site = hywwiki; title = Մոդուլ:Wikibase}; idwiki = {badges = {}; site = idwiki; title = Modul:Wikibase}; idwikisource = {badges = {}; site = idwikisource; title = Modul:Wikibase}; idwiktionary = {badges = {}; site = idwiktionary; title = Modul:Wikibase}; inhwiki = {badges = {}; site = inhwiki; title = Модуль:Wikibase}; itwikisource = {badges = {}; site = itwikisource; title = Modulo:Wikibase}; itwikivoyage = {badges = {}; site = itwikivoyage; title = Modulo:Wikibase}; jawiki = {badges = {}; site = jawiki; title = モジュール:Wikibase}; jawikisource = {badges = {}; site = jawikisource; title = モジュール:Wikibase}; jawikivoyage = {badges = {}; site = jawikivoyage; title = モジュール:Wikibase}; jvwiki = {badges = {}; site = jvwiki; title = Modhul:Wikibase}; jvwikisource = {badges = {}; site = jvwikisource; title = Modhul:Wikibase}; kabwiki = {badges = {}; site = kabwiki; title = Module:Wikibase}; kkwiki = {badges = {}; site = kkwiki; title = Module:Wikibase}; knwiki = {badges = {}; site = knwiki; title = ಮಾಡ್ಯೂಲ್:Wikibase}; kowiki = {badges = {}; site = kowiki; title = 모듈:Wikibase}; kowikisource = {badges = {}; site = kowikisource; title = 모듈:Wikibase}; krcwiki = {badges = {}; site = krcwiki; title = Модуль:Wikibase}; kuwiki = {badges = {}; site = kuwiki; title = Modul:Wikibase}; lbwiki = {badges = {}; site = lbwiki; title = Modul:Wikibase}; lezwiki = {badges = {}; site = lezwiki; title = Модуль:Wikibase}; lvwiki = {badges = {}; site = lvwiki; title = Modulis:Wikibase}; maiwiki = {badges = {}; site = maiwiki; title = मोड्युल:Wikibase}; mdfwiki = {badges = {}; site = mdfwiki; title = Модуль:Wikibase}; minwiki = {badges = {}; site = minwiki; title = Modul:Wikibase}; mkwiki = {badges = {}; site = mkwiki; title = Модул:Wikibase}; mlwiki = {badges = {}; site = mlwiki; title = ഘടകം:Wikibase}; mlwikisource = {badges = {}; site = mlwikisource; title = ഘടകം:Wikibase}; mrwiki = {badges = {}; site = mrwiki; title = विभाग:Wikibase}; mywiki = {badges = {}; site = mywiki; title = မော်ဂျူး:Wikibase}; nahwiki = {badges = {}; site = nahwiki; title = Módulo:Wikibase}; napwikisource = {badges = {}; site = napwikisource; title = Modulo:Wikibase}; nlwiki = {badges = {}; site = nlwiki; title = Module:Wikibase}; nlwikivoyage = {badges = {}; site = nlwikivoyage; title = Module:Wikibase}; nlwiktionary = {badges = {}; site = nlwiktionary; title = Module:Wikibase}; nowiki = {badges = {}; site = nowiki; title = Modul:Wikibase signature}; ocwiki = {badges = {}; site = ocwiki; title = Mòdul:Wikibase}; orwiki = {badges = {}; site = orwiki; title = ମଡ୍ୟୁଲ:Wikibase}; orwikisource = {badges = {}; site = orwikisource; title = ମଡ୍ୟୁଲ:Wikibase}; oswiki = {badges = {}; site = oswiki; title = Модуль:Wikibase}; pawikisource = {badges = {}; site = pawikisource; title = ਮੌਡਿਊਲ:Wikibase}; plwikisource = {badges = {}; site = plwikisource; title = Moduł:Wikibase}; ptwiki = {badges = {}; site = ptwiki; title = Módulo:Wikibase}; ptwikisource = {badges = {}; site = ptwikisource; title = Módulo:Wikibase}; ptwikivoyage = {badges = {}; site = ptwikivoyage; title = Módulo:Wikibase}; quwiki = {badges = {}; site = quwiki; title = Módulo:Wikibase}; rowiki = {badges = {}; site = rowiki; title = Modul:Wikibase}; ruewiki = {badges = {}; site = ruewiki; title = Модуль:Wikibase}; ruwiki = {badges = {}; site = ruwiki; title = Модуль:Wikibase}; ruwikinews = {badges = {}; site = ruwikinews; title = Модуль:Wikibase}; ruwikiquote = {badges = {}; site = ruwikiquote; title = Модуль:Wikibase}; ruwikivoyage = {badges = {}; site = ruwikivoyage; title = Модуль:Wikibase}; sahwiki = {badges = {}; site = sahwiki; title = Модуль:Wikibase}; scowiki = {badges = {}; site = scowiki; title = Module:Wikibase}; shnwikibooks = {badges = {}; site = shnwikibooks; title = မေႃႇၵျူး:Wikibase}; shnwikivoyage = {badges = {}; site = shnwikivoyage; title = မေႃႇၵျူး:Wikibase}; simplewiki = {badges = {}; site = simplewiki; title = Module:Wikibase}; siwiki = {badges = {}; site = siwiki; title = Module:Wikibase}; siwikibooks = {badges = {}; site = siwikibooks; title = Module:Wikibase}; siwiktionary = {badges = {}; site = siwiktionary; title = Module:Wikibase}; slwiki = {badges = {}; site = slwiki; title = Modul:Wikibase}; smnwiki = {badges = {}; site = smnwiki; title = Mooduul:Wikibase}; sourceswiki = {badges = {}; site = sourceswiki; title = Module:Wikibase}; sqwiki = {badges = {}; site = sqwiki; title = Moduli:Wikibase}; srwiki = {badges = {}; site = srwiki; title = Модул:Wikibase}; srwikisource = {badges = {}; site = srwikisource; title = Модул:Wikibase}; sswiki = {badges = {}; site = sswiki; title = Module:Wikibase}; svwikivoyage = {badges = {}; site = svwikivoyage; title = Modul:Wikibase}; tawiki = {badges = {}; site = tawiki; title = Module:Wikibase}; tewiki = {badges = {}; site = tewiki; title = మాడ్యూల్:Wikibase}; tewikisource = {badges = {}; site = tewikisource; title = మాడ్యూల్:Wikibase}; tgwiki = {badges = {}; site = tgwiki; title = Модул:Wikibase}; thwikisource = {badges = {}; site = thwikisource; title = มอดูล:Wikibase}; tiwiki = {badges = {}; site = tiwiki; title = ሞድዩል:Wikibase}; tlwiki = {badges = {}; site = tlwiki; title = Module:Wikibase}; trwiki = {badges = {}; site = trwiki; title = Modül:Wikibase}; trwikisource = {badges = {}; site = trwikisource; title = Modül:Wikibase}; tswiki = {badges = {}; site = tswiki; title = Module:Wikibase}; ttwiki = {badges = {}; site = ttwiki; title = Модуль:Wikibase}; ukwiki = {badges = {}; site = ukwiki; title = Модуль:Wikibase}; ukwikibooks = {badges = {}; site = ukwikibooks; title = Модуль:Wikibase}; ukwikisource = {badges = {}; site = ukwikisource; title = Модуль:Wikibase}; ukwikivoyage = {badges = {}; site = ukwikivoyage; title = Модуль:Wikibase}; urwiki = {badges = {}; site = urwiki; title = ماڈیول:Wikibase}; uzwiki = {badges = {}; site = uzwiki; title = Modul:Wikibase}; vecwiki = {badges = {}; site = vecwiki; title = Modulo:Wikibase}; viwiki = {badges = {}; site = viwiki; title = Mô đun:Wikibase}; viwikisource = {badges = {}; site = viwikisource; title = Mô đun:Wikibase}; viwikivoyage = {badges = {}; site = viwikivoyage; title = Mô đun:Wikibase}; wikidatawiki = {badges = {}; site = wikidatawiki; title = Module:Wikibase}; wuuwiki = {badges = {}; site = wuuwiki; title = 模块:Wikibase}; zh_min_nanwiki = {badges = {}; site = zh_min_nanwiki; title = 模組:Wikibase}; zh_yuewiki = {badges = {}; site = zh_yuewiki; title = 模組:Wikibase}; zhwiki = {badges = {}; site = zhwiki; title = Module:Wikibase}; zhwikisource = {badges = {}; site = zhwikisource; title = Module:Wikibase}; zhwikivoyage = {badges = {}; site = zhwikivoyage; title = Module:Wikibase}; zhwiktionary = {badges = {}; site = zhwiktionary; title = Module:Wikibase}}; type = item}
-- Модуль для функціонала Вікіданих
local M={};

local function tabletostr(t,fmt,s,o,c)--не для використання на сторінках
    if type(t)=="table" then
            local f={};
            for k,v in pairs(t) do
                table.insert(f,string.format(fmt or '%s = %s',k,tabletostr(v,fmt,s,o,c)))
            end;
            table.sort(f);
            return (o or '')..table.concat(f, s or '')..(c or '')
        else return tostring(t)
        end
end

function M.wbview(ref,id)--допоміжна функція для підпису з Вікіданих
    local l=mw.wikibase.label(id);
    return l and ( l==ref and l or ref..'|'..l..(mw.ustring.lower(l)==mw.ustring.lower(ref) and '' or '<sup>*</sup>') ) or ref
end

function M.id(f)-- Елемент поточної сторінки на Вікіданих
    --Якщо викликаний із параметром, дістає id значення данної властивості, інакше повертає id сторінки
    --Другий параметр - роздільник, якщо значень кілька ("; " за замовчуванням),
    -- або можна вказати номер параметром n. Третій параметр - формат для строкової властивості,
    -- за замовчуванням "%s"
    local function try()
	    local e = mw.wikibase.getEntityObject();        
	    if f.args[1] then
			local function gv(i)
				local z=e.claims[f.args[1]][i].mainsnak.datavalue;
				if z.type == 'wikibase-entityid' then
					return 'Q'..z.value['numeric-id']
				else
					return string.format(f.args[3] or '%s',tabletostr(z.value,"%s",'; ','{','}'))
				end
			end
			if f.args['n'] then
				return gv(tonumber(f.args['n']))
			end
			local p,h = e.claims[f.args[1]],{}
	        for n,v in pairs(p) do
				h[n] = gv(n)
			end
			return table.concat(h,f.args[2] or "; ")
		else 
			return e.id
		end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.struc(f)-- Відлагоджувальна функція, має бути перенесена в окремий модуль
    --Структуру див. [[mw:Extension:WikibaseClient/Lua#Entity table and data structure]]
    local function try()
    	local i,e = 1,mw.wikibase.getEntityObject();
	    while f.args[i] do
	        e = e[ f.args[i] ] or e[ tonumber(f.args[i]) ];
	        i = i+1
	    end
		return tabletostr(e,f.args['f'],f.args['s'] or '; ','{','}')
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.label(f)--Коментар до елементу Вікіданих у 1-му параметрі
    local function try()
	    local id = f.args[1];
	    if not id or id == '' then
	    	id = mw.wikibase.getEntityObject().id; -- error, якщо нема елемента
    	end
	    return mw.wikibase.label(id);
    end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.labelq(f)
	local id = f.args[1]
	local entity = mw.wikibase.getEntity(id)
	if entity and entity.labels then
		local label = entity.labels['uk']
		if label then
			return '[[:d:'..id..'|'..label.value..' <small>('..id..')</small>]]'
		     else
			return '[[:d:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]'
		end
	end
end

function M.labelp(f)
	local id = f.args[1]
	local entity = mw.wikibase.getEntity(id)
	if entity and entity.labels then
		local label = entity.labels['uk']
		if label then
			return '[[:d:Property:'..id..'|'..label.value..' <small>('..id..')</small>]]'
		     else
			return '[[:d:Property:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]'
		end
	end
end

function M.iwiki(f)-- Інтервікі для вказаної мови (лише з ВД)
    local function try()
	    if f.args[1] then
	        return mw.wikibase.getEntityObject().sitelinks[f.args[1]..'wiki'].title
	    else-- список інтервік
	        local r={};
	        for k,v in pairs( mw.wikibase.getEntityObject().sitelinks ) do
	            table.insert( r, string.format(f.args['f'] or "* [[:%s:%s]]\n", v.language, v.title) )
	        end
	        return table.concat(r)
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.iwikiall(f)-- Усі посилання, прив'язані до елементу на ВД, у т.ч. Вікігід та Сховище
	local function try()
	    if f.args[1] then
	        return mw.wikibase.getEntityObject().sitelinks[f.args[1]].title
	    else-- список інтервік
	        local r={};
	        for k,v in pairs( mw.wikibase.getEntityObject().sitelinks ) do
	            table.insert( r, string.format(f.args['f'] or "* [[:%s:%s]]\n", v.language, v.title) )
	        end
	        return table.concat(r)
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.page(f)-- сторінка Укрвікі (треба перевірити) для даного елемента
    local function try()
		return mw.wikibase.sitelink(f.args[1])
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

  -- mw.wikibase.getEntityIdForTitle( pageTitle, globalSiteId ) — qid за назвою сторінки
function M.titleid(f) -- args[1] = pageTitle; args[2] = globalSiteId ( 'ukwiki' default )
	local function try()
	    if f.args[1] and mw.text.trim( f.args[1] ) ~='' then
	        return mw.wikibase.getEntityIdForTitle( mw.text.trim( f.args[1] ), '' and f.args[2] and mw.text.trim( f.args[2] ) )
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.wdprops(f)-- список усіх властивостей із ВД у вигляді, придатному для читання людиною
    local function try()
	    local e,r = mw.wikibase.getEntityObject(),{};
	    for p,a in pairs(e.claims) do
	        local label = mw.wikibase.label(p) or string.format([[d:%s]],p);
	        local vals = {};
	        for n,v in pairs(a) do
	            local w=v.mainsnak.datavalue;
	            vals[n]=(
	                w.type=='wikibase-entityid'
	                and '[['.. M.wbview(
	                    mw.wikibase.sitelink('Q'..w.value['numeric-id'])
	                    or 'd:Q'..w.value['numeric-id'],
	                    'Q'..w.value['numeric-id']
	                )..']]' or tabletostr(w.value)
	            )
	        end
	        table.insert(r, string.format(
	            f.args['f'] or '\n|-\n|rowspan=%i|%s\n|%s',
	            #vals,
	            label,
	            table.concat(vals,f.args['s'] or '\n|-\n|')
	            )
	        )
	    end--for
    	return table.concat(r)
    end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

return M