Modulo:Biografio: Malsamoj inter versioj

[kontrolita revizio][kontrolita revizio]
Enhavo forigita Enhavo aldonita
e aldono
aktualigo laŭ la proveja modulo Biografio/provejo2
Linio 1:
-- modulo Biografio, 2020-04-1417
-- ĉi tiu modulo celas aranĝi la ŝablonon {{informkesto biografio}}, kiu konsistas el tri partoj:
-- enkonduka frazo
Linio 10:
local listoj = require("Modulo:Listutil")
local bildoj = require("Modulo:InfoboxImage/provejo")
local prenubildon = require ("Modulo:Portalo").image
local informkesto = require("Modulo:Informkesto")
local ligiloj = require ("Modulo:Linkutil")
local signocheno = require("Modulo:String")
 
-- helpaj funkcioj
local function argumentoj(args, par)
if par ~= "" and par ~= nil then
local varianto = mw.ustring.gsub(par, "_", " ") -- ŝanĝo de _ el parametro al spaco
local varianto2 = mw.ustring.upper(par) -- ŝanĝo al majusklaj literoj
local varianto3 = mw.ustring.upper(mw.ustring.sub(par, 1, 1)) .. mw.ustring.sub(par, 2) -- nur la unua litero fariĝas majusklo
local r = args["" .. par] or args["" .. varianto] or args["" .. varianto2] or args["" .. varianto3] or ""
if r ~= "" then
return r
end
end
end
 
-- aldonaj parametroj por bildoj
local function bildargumentoj(args, par, parto)
if par == "bildo" or par == "dosiero" or par == "flago" or par == "blazono" or par == "mapo" or par == "foto" or par == "portreto" then
local r = ""
if parto == "priskribo" then
r = "priskribo de " .. par
elseif parto == "grandeco" then
r = "grandeco de " .. par
end
if r ~= "" then
r = argumentoj(args,r)
if r ~= "" and r ~= nil then
return r
end
end
end
end
 
-- Vikidatumaj helpaj funkcioj
-- transprenas vikidatuman eron, se ne temas pri bildo
local function wdparam(pk,wdid,ref)
-- analizo, ĉu pk enhavas valoron.
if pk ~= "" and pk ~= nil then
local r, r2
if ref == "auto" then
if wdid ~= "" and wdid ~= nil then
-- r = shablonoref(pk,wdid) wikidata.claim({args={pk,id=wdid,references="jes"} })
r, ref = wikidata.claim({args={pk,id=wdid,references="raw"} })
else
-- r = shablonoref(pk) wikidata.claim({args={pk,references="jes"} })
r, ref = wikidata.claim({args={pk,references="raw"} })
end
if r ~= "" and r ~= nil then
return r, ref
end
else
if wdid ~= "" and wdid ~= nil then
r = wikidata.claim({args={pk,id=wdid} })
else
r = wikidata.claim({args={pk} })
end
if r ~= "" and r ~= nil then
return r, ref
end
end
end
end
 
local function wdlink (id, pkodo)
-- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P374|[+]]]</span>
if pkodo ~= "" and pkodo ~= nil then
local ligilo
if id ~= "" and id ~= nil then
ligilo = id
else
ligilo = wikidata.pageId({args = {} }) or ""
end
if ligilo then
ligilo = ' <span class="el_wd">[[:d:' .. ligilo .. "#" .. pkodo .. '|[+]]]</span>'
end
return ligilo
end
end
 
-- por aldono de piednoto al teksto
local function notaldono(noto, param)
if noto ~= "" and noto ~= nil then
param = param .. " ''" .. noto .. "''" -- aldonas noton kursive
return param
else
return param
end
end
 
-- por aldono de referenco
local function refaldono(referenco, param, refnomo, refnomodua)
if (referenco ~= "" and referenco ~= nil) or (refnomo ~= "" and refnomo ~= nil) then
local r
local frame = mw.getCurrentFrame()
if referenco ~= "" and referenco ~= nil then
local strings= mw.text.split(referenco, "///", plain)
local nombro = #strings
if nombro > 1 then
for k, ref in pairs(strings) do
if refnomo ~= "" and refnomo ~= nil then
if refnomodua ~= "" and refnomodua ~= nil then
r = frame:extensionTag('ref', {name= refnomo } )
else
r = frame:extensionTag('ref', ref, {name=refnomo} )
end
param = param .. r
elseif ref ~= "" and ref ~= nil then
r = frame:extensionTag('ref', ref )
param = param .. r
end
end
return param
end
end
if refnomo ~= "" and refnomo ~= nil then
if refnomodua ~= "" and refnomodua ~= nil then
r = frame:extensionTag('ref', {name= refnomo } )
else
r = frame:extensionTag('ref', referenco, {name=refnomo} )
end
param = param .. r
return param
elseif referenco ~= "" and referenco ~= nil then
r = frame:extensionTag('ref', referenco )
param = param .. r
return param
end
else
return param
end
end
 
-- tabelliniaj funkcioj
 
-- tabela kaplinio
-- titolo - teksto por la titola linio
-- fono - fona koloro
-- v - varianto
-- wd - ĉu Vikidatuma ero?
local function tabelkapo(titolo, fono, v, wd, klaso, montrilo)
 
if v == "caption" then
-- por la html-etikedo "caption"
local colspan ='2'
local tabelkapo = tabelo:tag('caption')
:attr({colspan = colspan})
:css(style)
:wikitext(text)
:done()
else
-- por la html-etikedoj "tr" kaj "th"
-- kaplinio
if klaso ~= "" and klaso ~= nil and type(klaso) == "string" then
klaso = klaso
else
klaso = "kaplinio persono fn"
end
if wd == "jes" then
klaso = klaso .. " wikidata-content"
end
local tabelkapo
if montrilo ~= "" and montrilo ~= nil then
tabelkapo = tabelo:tag('tr')
:attr('title',montrilo)
:addClass('mergedtoprow')
else
tabelkapo = tabelo:tag('tr')
end
-- kaplinia ĉelo
local kapchelo = tabelkapo:tag('th')
:addClass(klaso)
:attr('colspan','2')
:css('color','#000')
:css('background-color',fono)
:css('text-align','center')
:wikitext(titolo)
:done()
:newline()
end
end
 
-- tabela subtitilo
local function tabelsubtitolo(titolo, fono, montrilo)
if titolo == nil then
titolo = ""
end
local subtitolo1
if montrilo ~= "" and montrilo ~= nil then
subtitolo1 = tabelo:tag('tr')
:attr('title',montrilo)
:addClass('mergedrow')
else
subtitolo1 = tabelo:tag('tr')
end
if fono ~= "" and fono ~= nil then
local titol1chelo = subtitolo1:tag('th')
:css('background-color', fono)
:css('border-top','1px solid ' .. fono)
:css('border-bottom','1px solid ' .. fono)
:css('text-align','center')
:attr('colspan','2')
:wikitext(titolo)
:done()
:newline()
else
local titol1chelo = subtitolo1:tag('th')
:css('text-align','center')
:attr('colspan','2')
:wikitext(titolo)
:done()
:newline()
end
end
 
-- bilda ĉelo por unuopa bildo
local function unuopabildo(bildo, wd)
if bildo == nil then
bildo = ""
end
if wd == "jes" then
wd = "wikidata-content"
else
wd = ""
end
local bildo1 = tabelo:tag("tr")
local bildchelo = bildo1:tag("td")
:addClass(wd)
:attr('colspan','2')
:css('font-size','smaller')
:css('text-align','center')
:css('padding','0.4em 0.2em')
:wikitext(bildo)
 
end
 
-- helpaj funkcioj sen ŝablonoj
local function aldonulinion (c1, c2, wd)
local tabellinio = tabelo:tag("tr")
Linio 32 ⟶ 268:
end
end
 
-- unuopa ĉelo
-- c - enhavo de la ĉelo
-- v - varianto de ĉelo
-- wd - ĉu datoj el Vikidatuma ero
local function aldonuchelon (c, v, wd, montrilo)
local t = ""
local css_klaso = "mergedrow"
if v == "titolo" then
t = "th"
elseif v == "linio" then
t = "td"
css_klaso = "mergedtoprow"
else
t = "td"
end
if montrilo == nil then
montrilo = ""
end
local tabellinio = tabelo:tag('tr')
:attr('title',montrilo)
:addClass(css_klaso)
if wd == "jes" then
wd = "wikidata-content"
else
wd = ""
end
local chelo = tabellinio:tag(t)
:addClass(wd)
:attr('colspan','2')
:css('text-align','center')
:css('padding','0.4em 0.2em')
:wikitext(c)
:done()
:newline()
 
end
 
-- por landaj flagoj kun sekva teksto
local function flago(nomo)
if nomo == "" or nomo == nil then
return
end
local testo = ligiloj._chuligilo2(nomo)
local ligilo = ""
if testo == "ligu" then
ligilo = "[[" .. nomo .. "]]"
else
ligilo = nomo
nomo = ligiloj._delink(nomo)
end
local n = prenubildon{nomo} -- ne estu ronda krampo, ĉar estas importita funkcio
if n ~= "Portal-puzzle.svg" and n ~= nil then
n = "[[Dosiero:" .. n .. "|18px]]&nbsp;" .. ligilo
return n
else
return ligilo
end
end
 
 
-- rearanĝas la okupojn, traŝovante la unuopajn erojn tra alia helpa funkcio, se estas pli ol unu
Linio 98 ⟶ 396:
end
 
local function vivtempo (ordigo, naskjaro, mortjaro,t)
local frame = mw.getCurrentFrame()
local n = frame:expandTemplate{
title="Vivtempo",
args = {}
ordigo,
naskjaro,
mortjaro
}
}
-- la alia modulo ŝajnas esti iomete "stulta" :-(
if mortjaro ~= "" and mortjaro ~= nil then
n = mw.ustring.gsub(n,"%[%[Kategorio:Vivantaj homoj%]%]","")
end
if t ~="" then
n = mw.ustring.gsub(n,"%[%[Kategorio:","[[:Kategorio:")
Linio 131 ⟶ 437:
return n
end
 
-- malkomponilaj funkcioj
-- formatigi numeron
function formatnum(numero)
local frame = mw.getCurrentFrame()
local n = tonumber(numero)
if n ~= nil then
local r = frame:callParserFunction( "formatnum", n )
return r
end
end
 
local function paghenamebase ()
Linio 140 ⟶ 457:
end
 
-- alvoko de informkestera ŝablono
local p = {}
local function kestero(teksto, etikedo, fono, shtopado)
 
local frame = mw.getCurrentFrame()
function p.enkonduko ( frame )
-- This function builds the infobox used by the {{informkesto biografio}} template.
local r = frame:expandTemplate {
if not getArgs then
title='Ŝablono:Informkesto/+/html',
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
local args = getArgs(frame, {wrappers = "Ŝablono:Informkesto biografio"})
 
-- nomoj
local antaunomo = args["Antaŭnomo"] or ""
local familinomo = args["Familinomo"] or ""
local postnomo = args["Postnomo"] or ""
local prononco = args["Prononco"] or ""
local postfamilinomo = args["PostFamilinomo"] or ""
local aliajlingvoj = args["AliajLingvoj"] or ""
local veranomo = args["VeraNomo"] or ""
 
-- datoj
local nasktago = args["NaskiĝTago"] or ""
local naskmonato = args["NaskiĝMonato"] or ""
local naskjaro = args["NaskiĝJaro"] or ""
local naskodato = args["Naskiĝdato"] or args["Dato de naskiĝo"] or ""
local naskloko = args["NaskiĝLoko"] or args["Loko de naskiĝo"] or ""
local nasklokoligilo = args["NaskiĝLokoLigilo"] or ""
local morttago = args["MortTago"] or ""
local mortmonato = args["MortMonato"] or ""
local mortjaro = args["MortJaro"] or ""
local mortodato = args["Mortodato"] or args["Mortdato"] or args["Dato de morto"] or ""
local mortloko = args["MortLoko"] or args["Loko de morto"] or ""
local mortlokoligilo = args["MortLokoLigilo"] or ""
 
-- okupoj
local antauokupo = args["AntaŭOkupo"] or ""
local okupoj = args["Okupoj"] or ""
local okupo = args["Okupo"] or ""
local okupo2 = args["Okupo2"] or ""
local okupo3 = args["Okupo3"] or ""
local aliajokupoj = args["AliajOkupoj"] or ""
local postokupo = args["PostOkupo"] or ""
 
-- lokaj aferoj
local shtato = args["Ŝtato"] or ""
 
-- ceteraj variabloj
local r = ""
local estas = "estas"
local spaco = "&#32;"
 
-- noma parto
local nomo = "'''"
 
if antaunomo ~= "" then
nomo = nomo .. antaunomo .. spaco
end
if familinomo ~= "" then
nomo = nomo .. '<span style="text-transform:uppercase">' .. familinomo .. "</span>"
end
if postnomo ~= "" then
nomo = nomo .. spaco .. postnomo
end
nomo = nomo .. "'''"
 
r = r .. nomo
 
-- stira variablo por la sekvaj informoj kaj la funkcia bloko pri naskiĝo kaj morto
local jamkrampo = false
-- transdoni prononcindikon al la rilata ŝablono
if prononco ~= "" then
local p = frame:expandTemplate{
title = "prononco",
args = {
prononcolinisalto='jes',
['titola koloro']='neniu',
['koloro alt']=fono,
fono=fono,
teksto=teksto,
etikedo=etikedo,
['ŝtopado']=shtopado
}
}
return r
r = r .. spaco .. "(" .. p
end
jamkrampo = true
end
if postfamilinomo ~= "" then
local k = ""
if jamkrampo == false then
k = "("
jamkrampo = true
else
k = ", "
end
r = r .. spaco .. k .. postfamilinomo
end
if aliajlingvoj ~= "" then
local k = ""
if jamkrampo == false then
k = "("
jamkrampo = true
else
k = ", "
end
r = r .. spaco .. k .. aliajlingvoj
end
 
-- anstataŭu ion
-- data parto
local function anstatau(teksto, serchu, metu)
local n = "" -- pri naskiĝo
local mframe = "" -- pri mortomw.getCurrentFrame()
local d = "" -- pri la tuta dataro
local r = frame:expandTemplate {
local v = "" -- vera nomo kun indiko pri tio
title='Ŝablono:Anstataŭu',
args={
teksto,
serchu,
metu
}
}
return r
 
end
-- naskiĝa parto de la skripto
if nasktago ~= "" and naskmonato ~= "" then
local naskdato = datoj._daton(nasktago, naskmonato, naskjaro)
n = "naskiĝis la " .. naskdato
elseif naskjaro ~= "" then
if naskjaro == "?" then
n = "naskiĝdato nekonata"
else
local testo = tonumber(naskjaro)
if type(testo) == "number" then
n = "naskiĝis en [[" .. naskjaro .. "]]"
else
n = "naskiĝis " .. naskjaro
end
end
elseif nasktago == "" and naskmonato == "" and naskjaro == "" then
if naskodato ~= "" then
n = "naskiĝis la " .. naskodato
else
-- rigardu al Vikidatumoj
local naskdato = wikidatoj.naskidato()
if naskdato ~= nil then
-- n = "naskiĝis " .. wikidatoj.Nteksto()
n = "naskiĝis " .. datoj.Nteksto()
end
end
end
if naskloko ~= "" then
local komo = ""
-- se jam estas enhavo, interŝovu komon
if n ~= "" then
komo = ", "
else
komo = "naskiĝis "
end
if nasklokoligilo ~= "" then
naskloko = "[[" .. nasklokoligilo .. "|" .. naskloko .. "]]"
else
local l = listoj._count(",",naskloko)
if l > 1 then
naskloko = listoj._list(",",naskloko, "jes", "span", ",", "", "", "", 0, "")
else
naskloko = "[[" .. naskloko .. "]]"
end
end
n = n .. komo .. "en " .. naskloko
-- jen skripto pri tio en wikidatumoj
else
naskloko = wikidatoj.naskiloko()
if naskloko == nil then
naskloko = ""
else
naskloko = "[[" .. naskloko .. "]]"
n = n .. ", " .. "en " .. naskloko
end
end
-- parto pri la mortodatoj de la skripto
if morttago ~= "" and mortmonato ~= "" then
local mortdato = datoj._daton(morttago, mortmonato, mortjaro)
m = spaco .. "mortis la " .. mortdato
estas = "estis"
elseif mortjaro ~= "" then
if mortjaro == "?" then
m = spaco .. "mortodato nekonata"
else
local testo = tonumber(mortjaro)
if type(testo) == "number" then
m = spaco .. "mortis en [[" .. mortjaro .. "]]"
else
m = spaco .. "mortis " .. mortjaro
end
end
estas = "estis"
elseif morttago == "" and mortmonato == "" and mortjaro == "" then
if mortodato ~= "" then
m = spaco .. "mortis la " .. mortodato
else
-- rigardu al Vikidatumoj
local mortdato = wikidatoj.mortdato()
if mortdato ~= nil then
-- if la homo mortis, aŭ oni konas lian datmorton aŭ oni ne konas ĝin
if mortdato ~= "nekonata" then
m = spaco .. "mortis " .. datoj.Mteksto()
elseif mortdato == "nekonata" then
m = spaco .. "mortis je nekonata dato"
end
estas = "estis"
end
end
end
if mortloko ~= "" then
local komo = ""
-- se jam estas enhavo, interŝovu komon
if n ~= "" then
komo = ", "
else
komo = "mortis "
end
if mortlokoligilo ~= "" then
mortloko = "[[" .. mortlokoligilo .. "|" .. mortloko .. "]]"
else
local l = listoj._count(",",mortloko)
if l > 1 then
mortloko = listoj._list(",",mortloko, "jes", "span", ",", "", "", "", 0, "")
else
mortloko = "[[" .. mortloko .. "]]"
end
end
m = m .. komo .. "en " .. mortloko
-- jen skripto pri tio en wikidatumoj
else
mortloko = wikidatoj.mortloko()
if mortloko == nil then
mortloko = ""
else
mortloko = "[[" .. mortloko .. "]]"
m = m .. ", " .. "en " .. mortloko
end
end
 
local p = {}
if veranomo ~= "" then
v = "&#059; vera nomo " .. veranomo
end
-- kunmetado de la informoj pri la naskiĝo kaj morto, se tiaj datoj estas ie difinitaj
-- se ekzistas informoj pri prononco, postfamilinomo aŭ aliajlingvoj, tiam la enkonduka krampo
-- jam estas tie kaj ĉi tie devas esti punktokomo
local k = "; "
if jamkrampo == false then
k = "("
jamkrampo = true
end
if n ~= "" and m ~= "" then
d = spaco .. k .. n .. "," .. m .. v .. ") "
elseif n ~= "" and m == "" then
d = spaco .. k .. n .. v .. ") "
elseif n == "" and m ~= "" then
d = spaco .. k .. "naskiĝdato nekonata; " .. m .. v .. ") "
elseif n == "" and m == "" then
d = spaco .. k .. "naskiĝdato nekonata" .. v .. ") "
end
-- aldono al la eldonota signoĉeno
r = r .. d
 
-- spaco por enkonduko kaj kategorioj
-- fina krampo estu aranĝata, se informoj pri naskiĝo kaj morto forestas, sed estas io pri
-- prononco, postfamilinomo aŭ aliajlingvoj
if d == "" and jamkrampo == true then
r = r .. ") "
end
 
-- aldono al la eldonota signoĉeno
if antauokupo ~= "" then
r = r .. antauokupo .. spaco
else
r = r .. " " .. estas
end
 
-- ŝtato kaj la rilata adjektivo per ŝablono
local s = " [[" .. shtato .. "|"
local st = shtatadjektivo(shtato)
r = r .. s .. st .. "]] "
 
local function kesteroj(nomo, trajto)
-- okupoj
if trajto == 'ĉelo' then
local o = ""
tabelo:wikitext('<tr><td colspan="2" style="padding:0"><div>\n')
tabelo:wikitext('{| style="width:23em"\n')
tabelo:wikitext('|-\n')
end
--tabelo:wikitext('\n<nowiki/>\n')
tabelo:wikitext('\n\n')
tabelo:wikitext(nomo)
if trajto == 'ĉelo' then
tabelo:wikitext('\n\n|}\n')
tabelo:wikitext('\n</div></td></tr>')
end
end
 
-- rigardas al la Vikidatuma ero, ĉu iu havas indikon pri Esperanto en P1412.
if okupoj ~="" then
local function chuesperanto(id)
if aliajokupoj ~= "" then
local frame = mw.getCurrentFrame()
okupoj = okupoj .. "," .. aliajokupoj
local r = frame:expandTemplate{
end
title="Ĉuesperanto",
o = okupoanalizo(okupoj)
args={
elseif okupo ~= "" or okupo2 ~= "" or okupo3 ~= "" or aliajokupoj ~= "" then
wdid=id
local okupoj = ""
}
if okupo ~="" then
}
if ligiloj._chuligilo1(okupo) then
return r
okupoj = "[[" .. okupo .. "]]"
end
else
okupoj = okupo
end
end
if okupo2 ~="" then
local o2 = okupo2
if ligiloj._chuligilo1(okupo2) then
o2 = "[[" .. o2 .. "]]"
end
okupoj = okupoj .. "," .. o2
end
if okupo3 ~="" then
local o3 = okupo3
if ligiloj._chuligilo1(okupo3) then
o3 = "[[" .. o3 .. "]]"
end
okupoj = okupoj .. "," .. o3
end
if aliajokupoj ~="" then
local o_a = okupoanalizo(aliajokupoj,"ne")
okupoj = okupoj .. "," .. o_a
end
if okupo ~= "" or okupo2 ~= "" or okupo3 ~= "" or aliajokupoj ~= "" then
o = listoj._list(",",okupoj,"jes","kaj")
end
else
-- okupoj el Vikidatumoj
local wdo = wikidatoj.okupo()
if wdo ~= nil then
o = listoj._list(",",wdo,"jes","kaj")
end
end
r = r .. o
-- io metata post la okupoj
if postokupo ~= "" then
r = r .. postokupo
end
 
-- funkcio por la informkesta parto, iom post iom kompletigota
return r
function p.informkesto (frame)
end
 
--
function p.kategorio (frame)
-- This function builds the infobox used by the {{informkesto biografio}} template.
if not getArgs then
Linio 470 ⟶ 534:
local args = getArgs(frame, {wrappers = "Ŝablono:Informkesto biografio"})
 
-- analizo de la nomspaco
-- nomoj
currentTitle = mw.title.getCurrentTitle()
local antaunomo = args["Antaŭnomo"] or ""
local ns = currentTitle.namespace
local familinomo = args["Familinomo"] or ""
local postnomo = args["Postnomo"] or ""
local prononco = args["Prononco"] or ""
local postfamilinomo = args["PostFamilinomo"] or ""
local aliajlingvoj = args["AliajLingvoj"] or ""
local veranomo = args["VeraNomo"] or ""
 
-- datoj
local nasktago = args["NaskiĝTago"] or ""
local naskmonato = args["NaskiĝMonato"] or ""
local naskjaro = args["NaskiĝJaro"] or ""
local naskodato = args["Naskiĝdato"] or args["Dato de naskiĝo"] or ""
local naskloko = args["NaskiĝLoko"] or args["Loko de naksiĝo"] or ""
local morttago = args["MortTago"] or ""
local mortmonato = args["MortMonato"] or ""
local mortjaro = args["MortJaro"] or ""
local mortodato = args["Mortodato"] or args["Mortdato"] or args["Dato de morto"] or ""
local mortloko = args["MortLoko"] or args["Loko de morto"] or ""
 
local wdidstirilo = true
-- okupoj
local antauokupo = args["AntaŭOkupo"] or ""
local okupoj = args["Okupoj"] or ""
local okupo = args["Okupo"] or ""
local okupo2 = args["Okupo2"] or ""
local okupo3 = args["Okupo3"] or ""
local aliajokupoj = args["AliajOkupoj"] or ""
local postokupo = args["PostOkupo"] or ""
 
-- klaso por la tuta tabelo, aldonata post "infobox"
-- lokaj aferoj
local shtatoklaso = args["Ŝtato"'klaso'] or args['Klaso'] or "infobox vcard"
local titolklaso = args['titolklaso'] or args['Titolklaso'] or "kaplinio persono fn"
 
local tipo = args[1] or ""
-- por la kategorioj
localif ordigilotipo ~= args["Ordigo"] or ""then
tipo = mw.ustring.lower(tipo)
local ordigu = args["Ordigu"] or ""
end
local test = args["Testo"] or ""
 
-- vikidatuma id
-- ceteraj variabloj
-- helpa parametro por testoj de valoroj el Vikidatumoj
local r = ""
local okatwdid = ""
if wdidstirilo == true then
local spaco = "&#32;"
wdid = args['wd']
local t = ""
if test == "yes" or test == "jes" then
t = ":"
end
 
-- formatoj
-- kategorioj pri okupoj
local fono = args['fono'] or args['Fono'] or ""
if okupoj ~= "" then
local fono2 = args['fono2'] or args['Fono2'] or "#efefef"
local n = listoj._count(",", okupoj)
if nfono >== 1"" then
if tipo ~= "" then
strings = mw.text.split(okupoj, ",", plain)
fono = koloroj.fonkoloro(tipo)
for k,v in pairs(strings) do
v = ligiloj._delink(v)
local okat1 = okupokategorio(shtato,v,t)
okat = okat .. okat1
end
else
fono = "#DDDDFF"
okupoj = ligiloj._delink(okupoj)
local okat1 = okupokategorio(shtato,okupoj,t)
okat = okat .. okat1
end
end
local testo = chuesperanto(wdid)
 
if okupotesto ~="" '0' then
fono = '#090'
okupo = ligiloj._delink(okupo)
titolklaso = "kaplinio stelo fn"
local okat1 = okupokategorio(shtato,okupo,t)
okat = okat .. okat1
end
if okupo2 ~="" then
local shablono
okupo2 = ligiloj._delink(okupo2)
-- parametro kun nomo de la ŝablono
local okat1 = okupokategorio(shtato,okupo2,t)
if (args['ŝablono'] ~= "" and args['ŝablono'] ~= nil) or (args['Ŝablono'] ~= "" and args['Ŝablono'] ~= nil) then
okat = okat .. okat1
shablono = args['ŝablono'] or args['Ŝablono']
else
shablono = "Informkesto biografio"
end
if okupo3 ~="" then
okupo3 = ligiloj._delink(okupo3)
local okat1 = okupokategorio(shtato,okupo3,t)
okat = okat .. okat1
end
-- Kategorioj pri okupoj el Vikidatumoj, se nenio alia ĉeestas
if okupoj == "" and okupo == "" and okupo2 == "" and okupo3 == "" then
local wdo = wikidatoj.okupo()
if wdo ~= nil then
local n = listoj._count(",", wdo)
if n > 1 then
strings = mw.text.split(wdo, ",", plain)
for k,v in pairs(strings) do
local okat1 = okupokategorio(shtato,v,t)
okat = okat .. okat1
end
 
-- pliaj variabloj
else
local r = ""
local okat1 = okupokategorio(shtato,wdo,t)
-- ĉu io estas el Vikidatuma ero aŭ ne., ebla valoro estas "jes"
okat = okat .. okat1
local wdj = ""
end
-- por la enkonduka teksto
end
local teksto = ''
local nasko_teksto = ''
local morto_teksto = ''
local okupo_teksto = ''
local d = ''
local vn = "" -- vera nomo kun indiko pri tio
local estas = "estas"
-- komenco de la tabelo
local titolo = args["titolo"] or args["Titolo"] or args["nomo"] or args["Nomo"] or "" -- pliaj variantoj aldoneblas
if titolo == "" then
titolo = paghenamebase ()
end
-- nomoj
local antaunomo = args["Antaŭnomo"] or args["antaŭnomo"] or ""
local familinomo = args["Familinomo"] or args["familinomo"] or ""
local postnomo = args["Postnomo"] or args["postnomo"] or ""
 
-- ceteraj variabloj
-- transpreno de informoj pri la sekso de persono el vikidatumoj
local seksor = wikidatoj.sekso()""
iflocal seksospaco ~= nil then"&#32;"
local fn1 = '<span style="text-transform:uppercase">'
if sekso == "vira" then
local fn2 = "</span>"
okat = okat .. okat .. "[[" .. t .. "Kategorio:Viroj]]"
local br = "<br/>"
elseif sekso == "ina" then
okat = okat .. okat .. "[[" .. t .. "Kategorio:Virinoj]]"
-- nomoj
end
local nomo = ""
if antaunomo ~="" then
nomo = antaunomo .. spaco
end
if familinomo ~="" then
 
nomo = nomo .. fn1 .. familinomo .. fn2
-- aldono al la eldonenda signoĉeno
r = r .. okat
 
-- ordigo
--{{DEFAULTSORT:{{ucfirst:{{#if:{{{Ordigo|}}}|{{{Ordigo}}}|{{#if:{{{Familinomo|}}}|{{{Familinomo}}}&#32;,{{{Antaŭnomo}}}|{{{Antaŭnomo}}}}}}}}}}}
local ordigo = ""
if ordigilo ~="" then
local ordigilo = mw.ustring.upper(mw.ustring.sub(ordigilo, 1, 1)) .. mw.ustring.sub(ordigilo, 2) -- anstataŭaĵo de {{ucfirst:
ordigo = ordigo .. ordigilo
else
if familinomo ~= "" then
ordigo = ordigo .. familinomo .. spaco .. "," .. antaunomo
else
ordigo = ordigo .. antaunomo
end
end
if postnomo ~= "" then
-- ĝi okazu nur, se la koncerna variablo ne malŝaltas tion
nomo = nomo .. br .. spaco .. postnomo
if ordigu ~= "ne" then
ordigo = frame:callParserFunction{ name = "DEFAULTSORT", args = ordigo }
else
-- se ne okazu ordigo laŭ iu ordigilo, forĵetu tion, por ke tio ne subite aperu kiel normala teksto
ordigo = ""
end
-- aldono al la eldonenda signoĉeno
if nomo ~= "" and nomo ~= nil then
r = r .. ordigo
titolo = nomo
 
-- dataj kategorioj
if naskjaro ~= "" then
local n = vivtempo(naskjaro,mortjaro,t)
-- aldono al la eldonenda signoĉeno
r = r .. n
elseif naskodato ~= "" and mortodato ~= "" then
local n = vivtempo(naskodato, mortodato, t)
r = r .. n
elseif naskodato ~= "" and mortodato == "" then
local n = vivtempo(naskodato, "", t)
r = r .. n
elseif naskodato == "" and mortodato ~= "" then
local n = vivtempo("NEKONATA",mortodato,t)
r = r .. n
else
local n = wikidatoj.naskidato()
if n ~= nil then
local n = wikidatoj.Njaro()
local m = wikidatoj.Mjaro()
if wikidatoj.mortdato() == "nekonata" then m="NEKONATA" end
local k = vivtempo(n,m,t)
--local k = ""
-- aldono al la eldonenda signoĉeno
r = r .. k
end
end
 
-- por la enkonduka teksto
return r
end
 
local function kesteroj(nomo, trajto)
if trajto == 'ĉelo' then
tabelo:wikitext('<tr><td colspan="2" style="padding:0"><div>\n')
tabelo:wikitext('{| style="width:23em"\n')
tabelo:wikitext('|-\n')
end
--tabelo:wikitext('\n<nowiki/>\n')
tabelo:wikitext('\n\n')
tabelo:wikitext(nomo)
if trajto == 'ĉelo' then
tabelo:wikitext('\n\n|}\n')
tabelo:wikitext('\n</div></td></tr>')
end
end
 
-- funkcio por la informkesta parto, iom post iom kompletigota
function p.informkesto (frame)
-- This function builds the infobox used by the {{informkesto biografio}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
local args = getArgs(frame, {wrappers = "Ŝablono:Informkesto biografio"})
 
-- nomoj
local antaunomo = args["Antaŭnomo"] or ""
local familinomo = args["Familinomo"] or ""
local postnomo = args["Postnomo"] or ""
local prononco = args["Prononco"] or ""
local postfamilinomo = args["PostFamilinomo"] or ""
local aliajlingvoj = args["AliajLingvoj"] or ""
local veranomo = args["VeraNomo"] or ""
local nomoj = args["Nomoj"] or "" -- por nestigo pri nomoj
local trajto_nomoj = args["Trajto por nomoj"] -- stira variablo por "nomoj"
 
-- bildo resp. dosiero
local dosiero = args["Dosiero"] or ""
local tipodosiero = args["TipoDosiero"] or ""
local dosieragrandeco = args["Dosiera grandeco"] or ""
local subteksto = args["Subteksto"] or ""
 
-- datoj
Linio 679 ⟶ 636:
local naskmonato = args["NaskiĝMonato"] or ""
local naskjaro = args["NaskiĝJaro"] or ""
local naskodato = args["Naskiĝdato"] or args["Dato de naskiĝo"] or ""
local naskloko = args["NaskiĝLoko"] or args["Loko de naskiĝo"] or ""
local nasklokoligilo = args["NaskiĝLokoLigilo"] or ""
local morttago = args["MortTago"] or ""
local mortmonato = args["MortMonato"] or ""
local mortjaro = args["MortJaro"] or ""
local mortodato = args["Mortodato"] or args["Mortdato"] or args["Dato de morto"] or ""
 
local mortloko = args["MortLoko"] or args["Loko de morto"] or ""
local mortlokoligilo = args["MortLokoLigilo"] or ""
local mortokialo = args["Mortokialo"] or args["Kialo de morto"] or ""
 
-- okupoj
Linio 698 ⟶ 650:
local aliajokupoj = args["AliajOkupoj"] or ""
local postokupo = args["PostOkupo"] or ""
 
-- lokaj aferoj
local shtato = args["Ŝtato"] or ""
-- iom por nestigo je la finokategorioj
local kesteroj2ordigilo = args["KesterojOrdigo"] or "" -- por nestigo de alia ŝablono aŭ informkesto
local trajto_kesteroj2ordigu = args["Trajto por kesterojOrdigu"] -- stira variablo poror "Kesteroj"
local test = args["Testo"] or ""
 
-- formatoj
-- ceteraj variabloj por la kategorio
local fono = args["Fono"] or ""
iflocal fonokategorio == "" then
local okat = ""
-- ĉi tie prefere estu difinata la sama koloro kiel en {{informkesto homoj}} por la tiea kaplinio kaj piedlinio
-- laŭ ĵusa diskuto sur [[Ŝablono-Diskuto:Informkesto_homoj]] pri la koloroj, 20151013
fono = "#DDDDFF"
end
 
-- ceteraj variabloj
local r = ""
local spaco = "&#32;"
local fn1tk = '<span style="text-transform:uppercase">'
if test == "yes" or test == "jes" or ns ~= 0 then
local fn2 = "</span>"
local br tk = "<br/>:"
end
 
local shtato = ''
-- komenco de la tabelo
-- la variablo "tabelo" ne povas esti local, ĉar alie ĝia uzo en subŝablono ne funkcias
tabelo = mw.html.create("table")
:addClass("infobox vcard")
:css("width","23em")
:css("-moz-box-shadow", "4px 4px 4px #ccc")
:css("-webkit-box-shadow", "4px 4px 4px #ccc")
:css("box-shadow", "4px 4px 4px #ccc")
:newline()
-- kaplinio
local tabelkapo = tabelo:tag("tr")
-- kaplinia ĉelo
local kapchelo = tabelkapo:tag("th")
:addClass("kaplinio persono fn")
:attr("colspan","3")
:css("color","#000")
:css("background-color",fono)
:css("text-align","center")
 
-- nomoj
local n = ""
if antaunomo ~="" then
n = antaunomo .. spaco
end
if familinomo ~="" then
n = n .. fn1 .. familinomo .. fn2
end
if postnomo ~= "" then
n = n .. br .. spaco .. postnomo
end
 
-- meto de la nomoj en la kapĉelon
kapchelo:wikitext (n)
:done()
:newline()
if nomoj ~= "" and nomoj ~= nil then
kesteroj(nomoj, trajto_nomoj)
end
 
-- parto por la tabela korpo
 
-- bilda parto
-- colspan="2" style="font-size:smaller;text-align: center"
if dosiero ~= "" then
local bildo = tabelo:tag("tr")
local bildchelo = bildo:tag("td")
:attr("colspan","2")
:css("font-size","smaller")
:css("text-align","center")
 
-- {{#invoke:InfoboxImage|InfoboxImage|image={{{Dosiero|}}}|ending={{{TipoDosiero|}}}|endingdefault=jpg|size={{{Dosiera grandeco|}}}|sizedefault=220px|alt={{{Subteksto|{{{Antaŭnomo|}}}}}}|suppressplaceholder=yes}}
local alt = antaunomo
local n = antaunomo .. " " .. etmajuskloj(familinomo)
if subteksto ~= "" then
alt = subteksto
n = subteksto
end
local b = bildoj._InfoboxImage(dosiero, tipodosiero, "jpg", dosieragrandeco, "", "220px", alt, "", "", "", "", "", "", "", "yes")
-- {{{Subteksto|{{{Antaŭnomo}}} {{etmajuskloj|{{{Familinomo}}}}}}}}}}
if n ~= "" then
b = b .. "<div>" .. n .. "</div>"
end
bildchelo:wikitext(b)
end
 
-- personaj informoj
local subtitolo1 = tabelo:tag("tr")
local titol1chelo = subtitolo1:tag("th")
:css("background-color","#ddd")
:css("text-align","center")
:attr("colspan","2")
:wikitext("Persona informo")
:done()
:newline()
 
--! {{#if:{{{VeraNomo|}}}|Plumnomo|Nomo}}
--| {{#if:{{{Antaŭnomo|}}}|{{{Antaŭnomo}}}&#32;|}}{{etmajuskloj|{{{Familinomo|}}}}}{{#if:{{{Postnomo|}}}|&#32;{{{Postnomo}}}|}}
local n1 = "Nomo"
local n2 = ""
if veranomo ~= "" then
n1 = "Plumnomo"
end
if antaunomo ~= "" then
n2 = antaunomo .. spaco
end
if familinomo ~= "" then
n2 = n2 .. etmajuskloj(familinomo)
end
if postnomo ~= "" then
n2 = n2 .. spaco .. postnomo
end
 
-- unua tabellinio por nomoj
tabelo:newline()
aldonulinion (n1, n2)
 
-- dua tabellinio por nomoj
if veranomo ~= "" then
local n1 = "Vera nomo"
local n2 = veranomo
tabelo:newline()
aldonulinion (n1, n2)
end
 
-- naskiĝjaro
local n1 = "Dato de naskiĝo"
if naskjaro ~= "" then
local testo = tonumber(naskjaro)
local n2 = ""
if type(testo) == "number" then
n2 = datoj._dato(nasktago,naskmonato,naskjaro)
else
n2 = naskjaro
end
aldonulinion (n1, n2)
elseif naskodato ~= "" then
n2 = naskodato
aldonulinion (n1, n2)
else
local naskdato = wikidatoj.naskidato()
if naskdato ~= nil then
-- n2 = wikidatoj.Nkesto()
n2 = datoj.Nkesto()
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P569|[+]]]</span>
if wdl ~= nil then
n2 = n2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P569|[#]]]</span>"
end
local wd = "jes"
aldonulinion (n1, n2, wd)
end
end
 
-- nakiĝloko
local n1 = "Loko de naskiĝo"
if naskloko ~= "" then
if nasklokoligilo ~= "" then
n2 = "[[" .. nasklokoligilo .. "|" .. naskloko .. "]]"
else
local l = listoj._count(",",naskloko)
if l > 1 then
n2 = listoj._list(",",naskloko, "jes", "span", ",", "", "", "", 0, "")
else
n2 = "[[" .. naskloko .. "]]"
end
end
aldonulinion (n1, n2)
else
local nl = wikidatoj.NlokTeksto()
if nl ~= nil then
n2 = nl
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P19|[+]]]</span>
if wdl ~= nil then
n2 = n2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P19|[#]]]</span>"
end
local wd = "jes"
aldonulinion (n1, n2, wd)
end
end
 
-- mortjaro
local m1 = "Dato de morto"
if mortjaro ~= "" then
local testo = tonumber(mortjaro)
local m2 = ""
if type(testo) == "number" then
m2 = datoj._dato(morttago,mortmonato,mortjaro)
else
m2 = mortjaro
end
aldonulinion (m1, m2)
elseif mortodato ~= "" then
m2 = mortodato
aldonulinion (m1, m2)
else
local mortdato = wikidatoj.mortdato()
if mortdato ~= nil then
-- m2 = wikidatoj.Mkesto()
m2 = datoj.Mkesto()
if wikidatoj.mortdato() == "nekonata" then m2="nekonata" end
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P570|[+]]]</span>
if wdl ~= nil then
m2 = m2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P570|[#]]]</span>"
end
local wd = "jes"
aldonulinion (m1, m2, wd)
end
end
 
-- mortloko
local m1 = "Loko de morto"
if mortloko ~= "" then
if mortlokoligilo ~= "" then
m2 = "[[" .. mortlokoligilo .. "|" .. mortloko .. "]]"
else
local l = listoj._count(",",mortloko)
if l > 1 then
m2 = listoj._list(",",mortloko, "jes", "span", ",", "", "", "", 0, "")
else
m2 = "[[" .. mortloko .. "]]"
end
end
aldonulinion (m1, m2)
else
local ml = wikidatoj.MlokTeksto()
if ml ~= nil then
m2 = ml
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P20|[+]]]</span>
if wdl ~= nil then
m2 = m2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P20|[#]]]</span>"
end
local wd = "jes"
aldonulinion (m1, m2, wd)
end
end
 
if mortokialo ~= "" then
aldonulinion("Mortokialo", mortokialo)
else
local mk = wikidata.claim({args={'P509',id=wd} })
if mk ~= "" and mk ~= nil then
aldonulinion("Mortokialo", mk)
end
end
 
 
-- el la malnova modulo
-- okupoj
local o = ""
local n = 1 -- nombro de okupoj, ĉar de tio dependas la teksto en la tabelo
local wd = "" -- indikilo por vikidatuma deveno, uzata malsupre
 
if okupoj ~="" then
Linio 999 ⟶ 718:
n = listoj._count(",",wdo)
o = listoj._list(",",wdo,"jes","kaj","","jes")
wdwdj = "jes" -- ne estu "local" ĉi tie, ĉar alie ne funkcios ekster ĉi tiu else-bloko
end
end
 
local va = true -- ĉu viva?
-- metado en tabelajn ĉelojn
local o1 = "Okupoj"
if o ~= "" then
if n == 1 or n == "1" then
o1 = "Okupo"
end
local o2 = o
if wd == "jes" then
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P106|[+]]]</span>
if wdl ~= nil then
o2 = o2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P106|[#]]]</span>"
end
aldonulinion(o1, o2,wd)
else
aldonulinion(o1, o2)
end
end
 
-- aĝo
local a = ""
-- {{{Familinomo|}}}, {{#if:{{{Antaŭnomo|}}}|&#32;{{{Antaŭnomo}}}|}}{{#if:{{{Postnomo|}}}|&#32;{{{Postnomo}}}|}}}}
local ordigo = familinomo .. ", "
if antaunomo ~= "" then
ordigo = ordigo .. spaco .. antaunomo
end
if postnomo ~= "" then
ordigo = ordigo .. spaco .. postnomo
end
-- se la nomoj ne estas difinitaj, malplenigu la ordigan ŝlosilon
if ordigo == ", " then
ordigo = ""
end
local v = true -- ĉu viva?
if naskjaro ~= "" and mortjaro ~="" then
-- naskiĝdato
Linio 1 062 ⟶ 749:
-- la funkcio prefere estu en la modulo Datoj kaj tial estas nun enplektita de tie
a = datoj._agho(nt,nm,nj,mt,mm,mj,"","",ordigo)
vva = false
elseif naskjaro ~= "" and mortjaro == "" then
-- naskiĝdato
Linio 1 082 ⟶ 769:
local test = wikidatoj.vivanta()
if test == 1 then
vva = false
end
if a == nil then
Linio 1 089 ⟶ 776:
end
 
-- pliaj variabloj
-- aldono al la tabelo
local a1portalo = "Aĝo"false
if a ~= "" then
-- ekuzi submodulojn por la informkesta strukturo
if v == false then
local submodulo = args['submodulo'] or args['Submodulo'] or "homo"
a1 = "Aĝo je morto"
local kapo = 'Modulo:Biografio/' .. submodulo .. ' kapo'
end
if args['subŝablono'] ~= "jes" and args['Subŝablono'] ~= 'jes' then
local a2 = a
-- la variablo "tabelo" ne povas esti local, ĉar alie ĝia uzo en subŝablono ne funkcias
aldonulinion (a1, a2)
tabelo = mw.html.create("table")
end
:addClass(klaso)
:css('width','23em')
:css("font-size","89%")
:css('-moz-box-shadow', '4px 4px 4px #CCC')
:css('-webkit-box-shadow', '4px 4px 4px #CCC')
:css('box-shadow', '4px 4px 4px #CCC')
:newline()
--tabelkomenco(klaso)
-- wd poste estos aranĝata
tabelkapo(titolo, fono, "", wd, titolklaso, montrilo)
local kapo_parametroj = mw.loadData(kapo)
local kapo_listo = kapo_parametroj.linioj
if type(kapo_listo) == "table" then
for k, v in pairs(kapo_listo) do
local kapo_par, kapo_par_a, kapo_t, kapo_a, kapo_defmontrilo, montrilo
if type(v) == 'table' then
kapo_par = v["parametro"]
kapo_par_a = v['parametro_a']
kapo_t = v['tipo']
kapo_a = v['aldono']
montrilo=v["montrilo"]
kapo_defmontrilo=v["defmontrilo"]
-- voki la parametron el args
kapo_par = tostring(kapo_par)
-- local param = args[par] or ""
local kapo_param = argumentoj (args, kapo_par) or argumentoj(args, kapo_par_a)
-- "montrilo" de tabela linio (angle Tooltip; esperanta traduko de la tradukinto de {{Geokesto}})
local montrilo = argumentoj(args, montrilo)
if montrilo == "" or montrilo == nil then
montrilo = kapo_defmontrilo
end
-- laŭtipa traktado
if kapo_t == 'subtitolo' then
if kapo_param ~= "" and kapo_param ~= nil then
tabelsubtitolo(kapo_param, fono, montrilo)
end
elseif kapo_t == 'subtitolo2' then
if kapo_param ~= "" and kapo_param ~= nil then
local r = kapo_param
if kapo_a ~= "" and kapo_a ~= nil then
local nombro = tonumber(kapo_a)
if nombro ~= nil then
for i=1, nombro do
local titolo = kapo_par .. i
local st = argumentoj(args, titolo) or ""
if st ~= "" then
r = r .. ', ' .. st
end
end
end
end
tabelsubtitolo(r,fono, montrilo)
end
elseif kapo_t == 'aldono' then
if kapo_param ~= '' and kapo_param ~= nil then
local trajto = argumentoj(args,kapo_a)
kesteroj(kapo_param, trajto)
end
end
end
end
end
else
-- la variablo "tabelo" ne povas esti local, ĉar alie ĝia uzo en subŝablono ne funkcias
tabelo = mw.html.create()
end
-- loko por la enhavo
 
-- posttitola parto de la informkesto
if kesteroj2 ~= "" and kesteroj2 ~= nil then
local variabloj = 'Modulo:Biografio/' .. submodulo
kesteroj(kesteroj2, trajto_kesteroj2)
local parametroj = mw.loadData(variabloj)
local listo = parametroj.linioj
local noto = parametroj.noto or ""
local referenco = parametroj.referenco or ""
if type(listo) == "table" then
-- testo
local s
local par, t, pk, pk2, a1, a2, pri, pri2, iso, lig
for k, v in pairs(listo) do
if type(v) == "table" then
par = v["parametro"]
par_a = v['parametro_a']
par_b = v['parametro_b']
par2 = v["parametro2"]
par2_a = v['parametro2_a']
par2_b = v['parametro2_b']
t = v["tipo"]
pri = v["priskribo"]
pri2 = v["priskribo2"]
pk = v["pkodo"]
pk2 = v["pkodo2"]
a1 = v["aldono1"]
a1_a = v["aldono1_a"]
a2 = v["aldono2"]
a2_a = v["aldono2_a"]
lig = v["ligilo"]
grupanoj=v["grupanoj"]
listeroj=v["listeroj"]
montrilo=v["montrilo"]
defmontrilo=v["defmontrilo"]
fonkoloro = v["fono"]
tt = v["teksto"]
-- voki la parametron el args
par = tostring(par)
-- local param = args[par] or ""
local param = argumentoj (args, par) or argumentoj(args, par_a) or argumentoj(args, par_b)
local param2
if par2 ~= "" and par2 ~= nil then
param2 = argumentoj(args,par2) or argumentoj(args, par2_a) or argumentoj(args, par2_b)
end
-- por notoj
local noto2
if noto == "_noto" then
noto2 = par .. noto -- kunigas parametrajn nomojn, ne valorojn
elseif noto == "noto por " then
noto2 = noto .. par -- kunigas parametrajn nomojn, ne valorojn
end
local notovaloro = argumentoj(args,noto2) -- transprenas la valoron el la ŝablono
-- por referencoj
local referenco2, referenco2a, referenco2b
if referenco == "_referenco" then
referenco2 = par .. referenco -- kunigas parametrajn nomojn, ne valorojn
referenco2a = referenco2 .. "_nomo"
referenco2b = referenco2 .. "_nomo-dua"
elseif referenco == "referenco por " then
referenco2 = referenco .. par -- kunigas parametrajn nomojn, ne valorojn
referenco2a = referenco2 .. "-nomo"
referenco2b = referenco2 .. "-nomo-dua"
end
local referencovaloro = argumentoj(args,referenco2) -- transprenas la valoron el la ŝablono
local referenconomo = argumentoj(args,referenco2a) -- transprenas la valoron el la ŝablono
local referenconomodua = argumentoj(args,referenco2b) -- transprenas la valoron el la ŝablono
if t == "subtitolo" then -- ankoraŭ devas resti
-------------------- SUBTITOLO ----------------------------------------------------------------------------------------------------
if args['subŝablono'] ~= "jes" then
if param ~= "" and param ~= nil then
tabelsubtitolo(param, fono, montrilo)
end
end
 
elseif t == "subtitolo3" then
----------------- SUBTITOLO KUN TEKSTO -------------------------------------------------------------------------------------------
-- bonvolu atenti, ke la defaŭlta teksto estas difinata en priskribo, ne en parametro
-- parametro nur povas anstataŭigi ĝin
if pri ~= "" and pri ~= nil then
if param ~= "" and param ~= nil then
pri = param
end
if grupanoj ~= "" and grupanoj ~= nil then
local nombro = #grupanoj
-- la disiga signaro estas ///
local string = mw.text.split(grupanoj, "///", true)
-- helpa parametro por eviti pli ol unu strion
local n = 1
if shablono == "Informkesto biografio" then
fono2 = args['fono']
if fonkoloro ~= "" and fonkoloro ~= nil then
fono2 = fonkoloro
end
elseif v["koloro"] == "cheftitolo" then
fono2 = fono
end
for k, v in pairs(string) do
local testo = argumentoj(args,v)
-- aldono por Informkesto urbo kaj similaj ŝablonoj
if v == "situo sur mapo" and (testo == "" or testo == nil) then
testo = argumentoj(args,"regiono-ISO")
elseif v == "koordinatoj" and (testo == "" or testo == nil) then
lat, lon = koordargumentoj(args,"situo")
if lat and lon then
testo = "jes"
else
lat = argumentoj(args,"latitudo")
lon = argumentoj(args,"longitudo")
if lat and lon then
testo = "jes"
end
end
elseif testo == "" or testo == nil then
local chupkodo = mw.ustring.match(v,"P[0-9]*([0-9])") --analizo, ĉu estas pkodo
if chupkodo ~= nil then
testo=wdparam(v,wdid)
end
end
if testo ~= "" and testo ~= nil and n == 1 then
tabelsubtitolo(pri, fono2, montrilo)
n = n +1
end
end
end
end
 
elseif t == "bildo" then
---------------- BILDO ------------------------------------------------------------------------------------------------------------
-- bilda parto -- bildo estas malaperigebla per certaj valoroj
-- komunaj variabloj
local priskribo = argumentoj(args, a1) or argumentoj(args, a1_a) or bildargumentoj(args, par, "priskribo") or bildargumentoj(args, par_a, "priskribo")
local grando = argumentoj(args, a2) or argumentoj(args, a2_a) or bildargumentoj(args, par, "grandeco") or bildargumentoj(args, par_a, "grandeco")
local grupo = argumentoj(args, a3) or argumentoj(args, a3_a)
if param ~= "" and param ~= nil and param ~= "ne" and param ~= "neniu" then
-- local bildo = bildoj.InfoboxImage({args={image=param,size=args[a2],sizedefault="frameless",center="yes", caption=args[a1]} })
local bildo = bildoj.InfoboxImage({args={image=param,size=grando,sizedefault="frameless",center="yes", caption=priskribo} })
unuopabildo(bildo)
elseif param ~= "ne" and param ~= "neniu" then
if pK ~= "" and lucky_bildo then
-- {{#invoke:Wikidata/bildoj|bildoj|priskribo de bildoj={{{priskribo de bildoj|}}}|priskribo de bildo={{{priskribo de bildoj|{{{bildo-priskribo|}}}}}}}}
-- local bildo = wikidataBildo.bildoj({args={grandeco=args[a2],["defaŭlta grandeco"]="frameless",["priskribo de bildoj"]=args[a1]} })
local bildo
if wdid ~= "" and wdid ~= nil then
bildo = wikidataBildo.bildoj({args={grandeco=grando,["defaŭlta grandeco"]="frameless",["priskribo de bildoj"]=priskribo,pkodo=pk, pkodo2=pk2,id=wdid, tabelo=args, grupo=grupo} })
else
bildo = wikidataBildo.bildoj({args={grandeco=grando,["defaŭlta grandeco"]="frameless",["priskribo de bildoj"]=priskribo,pkodo=pk, pkodo2=pk2, tabelo=args, grupo=grupo} })
end
if bildo then
unuopabildo(bildo,"jes")
end
end
end
 
elseif t == "teksto" or t == "numero" or t == "loĝantaro" or t == "ekde" or t == "situo" or t == 'loko' then
---------------- TEKSTO - do duĉela teksto kun priskribo aŭ unuĉela sen priskribo --------------------------------------------------------------------------
-- komuna parto de la priskribo
local a2a
if pri ~= "" then
a1a = argumentoj(args,a1) or argumentoj(args,a1_a)
if a1a ~= "" and a1a ~= nil then
pri = a1a
end
if v['sub'] == 1 then
pri = " - " .. pri
end
a2a = argumentoj(args,a2) or argumentoj(args,a2_a)
if a2a ~= "" and a2a ~= nil then
if t == "ekde" then
if a3 ~= "" and a3 ~= nil then
local a3a = argumentoj(args,a3) or argumentoj(args,a3_a)
if a3a ~= "" and a3a ~= nil then
a3a = " ĝis " .. a3a
pri = pri .. " (ekde " .. a2a .. a3a .. ")"
else
pri = pri .. " (ekde " .. a2a .. ")"
end
else
pri = pri .. " (ekde " .. a2a .. ")"
end
end
end
end
if v['kondicho'] ~= "" and v['kondicho'] ~= nil and (param == "" or param == nil) then
local kondicho = v['kondicho']
local strings = mw.text.split(kondicho, "///", plain)
for k, v in pairs(strings) do
local testo = argumentoj(args,v)
if testo ~= "" and testo ~= nil then
param = "&nbsp;"
break
end
end
end
-- pliaj informoj pri situo
local situo2 = ""
if situo ~= "" and situo ~= nil and t == "situo" then
local strings = mw.text.split(situo, "///", plain)
local n = 1 -- nombro de tiaj parametroj en artikolo
for k, v in pairs(strings) do
local situoinformo = argumentoj(args,a2 .. "_" .. v)
if situoinformo ~= "" and situoinformo ~= nil then
if n == 1 then
situo2 = situo2 .. situoinformo
else
situo2 = situo2 .. ", " .. situoinformo
end
n = n + 1
end
end
end
-- se parametro estas en la artikolo
if param ~= "" and param ~= nil then
-- por naskiĝloko kaj mortoloko
if t == 'loko' then
-- ligilo al artikolo malsamas al legebla ligiloteksto
local l = argumentoj(args, lig)
-- savu la nomon de loko por pli posta uzo
local l2 = param
if l ~= "" and l ~= nil then
param = "[[" .. l .. "|" .. l2 .. "]]"
else
local l = listoj._count(",",l2)
if l > 1 then
param = listoj._list(",",l2, "jes", "span", ",", "", "", "", 0, "")
else
param = "[[" .. l2 .. "]]"
end
end
-- por la enkonduka teksto
if tt == 'nasko_teksto' then
if nasko_teksto == '' then
nasko_teksto = 'naskiĝis '
end
nasko_teksto = nasko_teksto .. " en " .. param
elseif tt == 'morto_teksto' then
if morto_teksto == '' then
morto_teksto = 'mortis '
end
morto_teksto = morto_teksto .. " en " .. param
 
end
end
-- pliaj variantoj
if tt == 'vn' then
vn = "&#059; vera nomo " .. param
elseif tt == 'ŝtato' then
shtato = param
end
 
if t == "numero" or t == "loĝantaro" then -- se estas numero aŭ nombro de loĝantoj, laŭ la subŝablona tabelo, tiam formatigu tiel
local n = tonumber(param)
if n ~= nil then
param = formatnum(param)
else
nenumero = true -- aktivigas zorgigan kategorion
end
end
if a2a ~= "" and a2a ~= nil then
if t == "loĝantaro" then
param = param .. " <small>(" .. a2a .. ")</small>"
elseif t ~= "situo" then
if v["prefikso"] ~= "" and v["prefikso"] ~= nil then
a2a = v["prefikso"] .. a2a
end
param = param .. " (" .. a2a .. ")"
end
end
if situo2 ~= "" then
param = param .. ", " .. situo2
end
param = notaldono(notovaloro,param, a2)
param = refaldono(referencovaloro,param, referenconomo, referenconomodua)
if pri ~= "" and pri ~= nil then
aldonulinion(pri,param, "", "", montrilo)
else
aldonuchelon(param, "", "", montrilo)
end
else
-- ĉu vikidatuma ero ekzistas
local wd, referencovaloro = wdparam(pk,wdid,referencovaloro)
if wd ~= "" and wd ~= nil then
local ligilo = wdlink (wdid, pk) or ""
if t == "numero" or t == "loĝantaro" then
wd = formatnum(wd) or wd
end
wd = notaldono(notovaloro,wd, a2)
wd = refaldono(referencovaloro,wd, referenconomo, referenconomodua)
wd = wd .. ligilo
if t == "loĝantaro" then
-- {{#invoke:Wikidata|claim|P1082|id=Q64|qualifier=P585}}
local wda2
-- Veruko por ne afisxi K.E.
if wdid ~= "" and wdid ~= nil then
wda2 = wikidata.claim({args={pk,qualifier=pk2,id=wdid} })
else
wda2 = wikidata.claim({args={pk,qualifier=pk2} })
end
if wda2 ~= "" and wda2 ~= nil then
-- forigi K.E. el la teksto, sed ankaŭ la antaŭa spaco estu forigita
wda2 = mw.ustring.gsub( wda2, " K%.E%.", "")
wd = wd .. " <small>(" .. wda2 .. ")</small>"
end
-- fino de la veruko
else
if a2a ~= "" and a2a ~= nil then
wd = wd .. " (" .. a2a .. ")"
end
end
-- wd = notaldono(noto,par, wd, args,a2,pk,wdid)
if pri ~= "" and pri ~= nil then
aldonulinion(pri,wd,"jes", "",montrilo)
else
aldonuchelon(wd,"", "jes", montrilo)
end
 
end
end
elseif t == "teksto1" then
---------------- TEKSTO1 - do unuĉela teksto kun priskribo -------------------------------------------------------------------------
-- komuna parto kun priskribo
local p = pri or ""
if p ~= "" then
p = "<b>" .. p .. "</b>: "
end
-- se parametro estas en artikolo
if param ~= "" and param ~= nil then
local p2 = p .. param
p2 = notaldono(notovaloro,p2)
p2 = refaldono(referencovaloro,p2, referenconomo, referenconomodua)
aldonuchelon(p2,"", "", montrilo)
else
-- ĉu estas vikidatuma ero
local wd, referencovaloro = wdparam(pk,wdid,referencovaloro)
if wd ~="" and wd ~= nil then
local ligilo = wdlink (wdid, pk) or ""
local p2 = p .. wd
p2 = notaldono(notovaloro,p2)
p2 = refaldono(referencovaloro,p2, referenconomo, referenconomodua)
p2 = p2 .. ligilo
aldonuchelon(p2,"","jes", montrilo)
end
end
elseif t == "portalo" then
---------------- PORTALO - rilata portalo -------------------------------------------------------------------------
if param ~= "" and param ~= nil then
local bildo = "[[Dosiero:Portal.svg|15px]]"
param = "&nbsp;<b>[[Portalo:" .. param .. "|" .. param .. "]]</b>"
local p2 = bildo .. param
aldonuchelon(p2, "", "", montrilo)
portalo = true
end
 
elseif t == "listo" then
---------------- LISTO --------------------------------------------------------------------------------------------------------------
-- Listecaj parametroj
if param ~= "" and param ~= nil then
local c1 = pri
local f = false -- ne pluralo
local div = false -- neniu faldado
local nombro = 15
if listeroj ~= "" and listeroj ~= nil then
local l = tonumber(listeroj)
if l ~= nil then
nombro = l
end
end
local n = 1
local chuflago
if a3 ~= "" and a3 ~= nil then
chuflago=argumentoj(args,a3)
end
if chuflago ~= "" and chuflago ~= nil then
param = flago(param)
end
-- analizo, ĉu jam estas ligilo en la listero. se ne, aldonu ĝin.
local testo = ligiloj._chuligilo2(param)
if testo == "ligu" then
param = "[[" .. param .. "]]"
end
if v["prefikso"] ~= "" and v["prefikso"] ~= nil and a2 ~= "" and a2 ~= nil then
local a2a = argumentoj(args,a2)
if a2a ~= "" and a2a ~= nil then
a2a = v["prefikso"] .. a2a
param = param .. " (" .. a2a .. ")"
end
end
param = notaldono(notovaloro,param)
param = refaldono(referencovaloro,param, referenconomo, referenconomodua)
for i=1, nombro do
local c2 = args["" .. v["parametro"] .. i] or ""
if c2 ~= "" and c2 ~= nil then
if chuflago ~= "" and chuflago ~= nil then
c2 = flago(c2)
else
-- analizo, ĉu jam estas ligilo en la listero. se ne, aldonu ĝin.
local testo = ligiloj._chuligilo2(c2)
if testo == "ligu" then
c2 = "[[" .. c2 .. "]]"
end
end
local noto2
if noto == "_noto" then
noto2 = par .. i .. noto
elseif noto == "noto por " then
noto2 = noto .. par .. i
end
local notovaloro = argumentoj(args,noto2)
local referenco2, referenco2a, referenco2b
if referenco == "_referenco" then
referenco2 = par .. i .. referenco
referenco2a = referenco2 .. "_nomo"
referenco2b = referenco2 .. "_nomo-dua"
elseif referenco == "referenco por " then
referenco2 = referenco .. par .. i
referenco2a = referenco2 .. "-nomo"
referenco2b = referenco2 .. "-nomo-dua"
end
local referencovaloro = argumentoj(args,referenco2)
local referenconomo = argumentoj(args,referenco2a)
local referenconomodua = argumentoj(args,referenco2b)
c2 = notaldono(notovaloro,c2)
c2 = refaldono(referencovaloro,c2,referenconomo,referenconomodua)
param = param .. ";;;" .. c2
f = true
n = n + 1
end
end
if n > 1 then
local chufaldi = argumentoj(args,a2)
local chufaldiN = tonumber(chufaldi)
if chufaldiN == 1 or chufaldi == "faldo" then
param = n .. ";;;" .. param
div = true
end
end
if f == true and pri2 ~= "" and pri2 ~= nil then
c1 = pri2
end
if a1 ~= "" and a1 ~= nil then
-- c1 = argumentoj(args, a1)
local c1a = args["" .. a1]
if c1a ~= "" and c1a ~= nil then
c1 = c1a
end
end
local c2
if div == true then
c2 = listoj._list(";;;",param,"ne","faldebla","","jes")
else
-- (delimiter, text, x, mode, sep, w, kind, spaces, spaces1, spaces2)
c2 = listoj._list(";;;",param,"ne","span",",","jes","","",0)
end
aldonulinion(c1,c2,"", "",montrilo)
else
local wd
if wdid ~= "" and wdid ~= nil then
wd = wikidata.claim({args={pk,list=";;;",id=wdid} })
else
wd = wikidata.claim({args={pk,list=";;;"} })
end
if wd ~= "" and wd ~= nil then
local nombro = listoj._count(";;;",wd)
local chufaldi = argumentoj(args,a2)
local chufaldiN = tonumber(chufaldi)
local ligilo = wdlink (wdid,pk) or ""
local c2
if chufaldiN == 1 or chufaldi == "faldo" then
wd = nombro .. ligilo .. ";;;" .. wd
c2 = listoj._list(";;;",wd,"jes","faldebla","","jes")
else
wd = wd .. ligilo
-- (delimiter, text, x, mode, sep, w, kind, spaces, spaces1, spaces2)
c2 = listoj._list(";;;",wd,"jes","span",",","jes","","",0)
end
aldonulinion(pri,c2,"jes", "",montrilo)
end
end
elseif t == "dato" then
----------------- DATO -----------------------------------------------------------------------
if param ~= "" and param ~= nil then
local c1 = pri or "Dato"
local c2
local c1a = argumentoj(args, a1) or argumentoj(args, a1_a) or ""
if c1a ~= "" then
c1 = c1a
end
-- aldonulinion(c1,param)
-- testo, ĉu temas pri numero. se jes, supozeble iu transdonis la nuran jaron
local testo = tonumber(param)
if type(testo) == 'number' then
-- por la enkonduka teksto
if tt == "nasko_teksto" then
nasko_teksto= 'naskiĝis en ' .. datoj._daton("","",param)
elseif tt == 'morto_teksto' then
morto_teksto = 'mortis en ' .. datoj._daton("","",param)
estas = 'estis'
end
param = datoj._dato("","",param)
else
local s = anstatau(param, '-', '')
local testo = tonumber(s)
if type(testo) =='number' then
-- por la enkonduka teksto
if tt == "nasko_teksto" then
nasko_teksto= 'naskiĝis la ' .. datoj._daton(param,"","")
elseif tt == 'morto_teksto' then
morto_teksto = 'mortis la ' .. datoj._daton(param,"","")
estas = 'estis'
end
param = datoj._dato(param,'','')
end
end
c2 = notaldono(notovaloro,param, a2)
c2 = refaldono(referencovaloro,c2, referenconomo, referenconomodua)
aldonulinion(c1,c2,wd,"",montrilo)
end
elseif t == 'faldokomenco' then
------------------------------------------------------------------------------------------------
if param == 'jes' or param == '1' then
local faldo = kestero(pri,'+',fono2,'0.4em 0.2em')
-- aldonuchelon(faldo)
--tabelo = tabelo .. faldo
tabelo:wikitext(faldo)
end
elseif t == 'faldofino' then
--------------------------------------------------------------------------------------------------
if param == 'jes' or param == '1' then
local faldo = kestero('','*')
-- aldonuchelon(faldo)
--tabelo = tabelo .. faldo
tabelo:wikitext(faldo)
end
elseif t == 'aldono' then
---------------------------------------------------------------------------------------------------
if param ~= '' and param ~= nil then
local trajto = argumentoj(args,a1)
kesteroj(param, trajto)
end
elseif t == 'okupo' then
----------------------------------------------------------------------------------------------------
-- el la malnova modulo
-- metado en tabelajn ĉelojn
local o1 = "Okupoj"
if o ~= "" then
if n == 1 or n == "1" then
o1 = "Okupo"
end
local o2 = o
if wdj == "jes" then
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P106|[+]]]</span>
if wdl ~= nil then
o2 = o2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P106|[#]]]</span>"
end
aldonulinion(o1, o2,wd)
okupo_teksto = o2
else
aldonulinion(o1, o2)
okupo_teksto = o2
end
end
elseif t == 'nasko' or t == 'naskiĝo' then
------------------------------------------------------------------------------
-- naskiĝjaro
local n1 = "Dato de naskiĝo"
if naskjaro ~= "" then
local testo = tonumber(naskjaro)
local n2 = ""
local n3 = ''
if type(testo) == "number" then
-- por la informkesto
n2 = datoj._dato(nasktago,naskmonato,naskjaro)
-- por la enkonduka teksto
n3 = datoj._daton(nasktago,naskmonato,naskjaro)
else
n2 = naskjaro
n3 = naskjaro
end
aldonulinion (n1, n2)
-- por la enkonduka teksto
if nasktago ~= '' and naskmonato ~= '' then
nasko_teksto = 'naskiĝis la ' .. n3
else
if naskjaro == '?' then
nasko_teksto = 'naskiĝdato nekonata'
else
local testo = tonumber(naskjaro)
if type(testo) == 'number' then
nasko_teksto = "naskiĝis en [[" .. naskjaro .. "]]"
else
nasko_teksto = "naskiĝis " .. naskjaro
end
end
end
else
local naskdato = wikidatoj.naskidato()
if naskdato ~= nil then
-- n2 = wikidatoj.Nkesto()
n2 = datoj.Nkesto()
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P569|[+]]]</span>
if wdl ~= nil then
n2 = n2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P569|[#]]]</span>"
end
local wd = "jes"
aldonulinion (n1, n2, wd)
nasko_teksto = n2 or ''
end
end
elseif t == 'morto' then
--------------------------------------------------------------------------------------
-- mortjaro
local m1 = "Dato de morto"
if mortjaro ~= "" then
local testo = tonumber(mortjaro)
local m2 = ""
local m3 = ""
if type(testo) == "number" then
m2 = datoj._dato(morttago,mortmonato,mortjaro)
-- por la enkondika teksto
m3 = datoj._daton(morttago,mortmonato,mortjaro)
else
m2 = mortjaro
m3 = mortjaro
end
aldonulinion (m1, m2)
-- por la enkondika teksto
estas = "estis"
if morttago ~= '' and mortmonato ~= '' then
morto_teksto = 'mortis la ' .. m3
else
if mortjaro == '?' then
morto_teksto = 'mortodato nekonata'
else
local testo = tonumber(mortjaro)
if type(testo) == 'number' then
morto_teksto = "mortis en [[" .. mortjaro .. "]]"
else
morto_teksto = "mortis " .. mortjaro
end
end
end
else
local mortdato = wikidatoj.mortdato()
if mortdato ~= nil then
-- m2 = wikidatoj.Mkesto()
m2 = datoj.Mkesto()
if wikidatoj.mortdato() == "nekonata" then m2="nekonata" end
local wdl = wikidata._pageId() -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P570|[+]]]</span>
if wdl ~= nil then
m2 = m2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P570|[#]]]</span>"
end
local wd = "jes"
aldonulinion (m1, m2, wd)
morto_teksto = m2 or ''
estas = 'estis'
end
end
elseif t == 'aĝo' then
---------------------------------------------------------------------------------
-- aldono al la tabelo
local a1 = "Aĝo"
if a ~= "" then
if va == false then
a1 = "Aĝo je morto"
end
local a2 = a
aldonulinion (a1, a2)
end
elseif t == 'nomo' then
--------------------------------------------------------------------------------
if antaunomo ~= "" or familinomo ~= "" or titolo ~= "" then
local c1 = 'Nomo'
local c2
local k = v["kondicho"]
local k2 = v["kondicho2"]
local rezulto = v["rezulto"]
local k_a = argumentoj(args, k) or ""
local k2_a = argumentoj(args, k2) or ""
if k_a ~= "" or k2_a ~= "" then
c1 = 'Plumnomo'
end
if antaunomo ~= "" then
c2 = antaunomo .. spaco
end
if familinomo ~= "" then
c2 = c2 .. etmajuskloj(familinomo)
end
if postnomo ~= "" then
c2 = c2 .. spaco .. postnomo
end
if antaunomo == "" and familinomo == "" then
c2 = titolo
end
aldonulinion(c1, c2)
end
elseif t == 'enkonduko' then
------------------------------------------------------------------------
if param ~= 'ne' then
if titolo ~= "" then
local nomo2 = titolo
teksto = "'''" .. nomo2 .. "'''"
local spaco = "&#32;"
-- enkrampa teksto
-- stira variablo por la sekvaj informoj kaj la funkcia bloko pri naskiĝo kaj morto
local jamkrampo = false
-- transdoni prononcindikon al la rilata ŝablono
if prononco ~= "" then
local p = frame:expandTemplate{
title = "prononco",
args = {
prononco,
}
}
teksto = teksto .. spaco .. "(" .. p
jamkrampo = true
end
if postfamilinomo ~= "" then
local k = ""
if jamkrampo == false then
k = "("
jamkrampo = true
else
k = ", "
end
teksto = teksto .. spaco .. k .. postfamilinomo
end
if aliajlingvoj ~= "" then
local k = ""
if jamkrampo == false then
k = "("
jamkrampo = true
else
k = ", "
end
teksto = teskto .. spaco .. k .. aliajlingvoj
end
-- kunmetado de la informoj pri la naskiĝo kaj morto, se tiaj datoj estas ie difinitaj
-- se ekzistas informoj pri prononco, postfamilinomo aŭ aliajlingvoj, tiam la enkonduka krampo
-- jam estas tie kaj ĉi tie devas esti punktokomo
local k = "; "
if jamkrampo == false then
k = "("
jamkrampo = true
end
if nasko_teksto ~= "" and morto_teksto ~= "" then
d = spaco .. k .. nasko_teksto .. ", " .. morto_teksto .. vn .. ") "
elseif nasko_teksto ~= "" and morto_teksto == "" then
d = spaco .. k .. nasko_teksto .. vn .. ") "
elseif nasko_teksto == "" and morto_teksto ~= "" then
d = spaco .. k .. "naskiĝdato nekonata; " .. morto_teksto .. vn .. ") "
elseif nasko_teksto == "" and morto_teksto == "" then
d = spaco .. k .. "naskiĝdato nekonata" .. vn .. ") "
end
-- aldono al la eldonota signoĉeno
teksto = teksto .. d
 
-- fina krampo estu aranĝata, se informoj pri naskiĝo kaj morto forestas, sed estas io pri
-- prononco, postfamilinomo aŭ aliajlingvoj
if d == "" and jamkrampo == true then
teksto = teksto .. ") "
end
-- aldono al la eldonota signoĉeno
if antauokupo ~= "" then
teksto = teksto .. antauokupo .. spaco
else
teksto = teksto .. " " .. estas
end
-- ŝtato kaj la rilata adjektivo per ŝablono
local s = " [[" .. shtato .. "|"
local st = shtatadjektivo(shtato)
if shtato ~= "" then
teksto = teksto .. s .. st .. "]] "
end
if o ~= '' then
teksto = teksto .. ' ' .. o
end
if postokupo ~= "" then
teksto = teksto .. postokupo
end
-- fino "param ~= ne"
end
 
-- fino "enkonduko"
end
elseif t == 'kategorio' and param ~= 'ne' then
----------------------------------------------------------------
-- kategorioj pri okupoj
if okupoj ~= "" then
local n = listoj._count(",", okupoj)
if n > 1 then
strings = mw.text.split(okupoj, ",", plain)
for k,v in pairs(strings) do
v = ligiloj._delink(v)
local okat1 = okupokategorio(shtato,v,tk)
okat = okat .. okat1
end
else
okupoj = ligiloj._delink(okupoj)
local okat1 = okupokategorio(shtato,okupoj,tk)
okat = okat .. okat1
end
end
if okupo ~="" then
okupo = ligiloj._delink(okupo)
local okat1 = okupokategorio(shtato,okupo,tk)
okat = okat .. okat1
end
if okupo2 ~="" then
okupo2 = ligiloj._delink(okupo2)
local okat1 = okupokategorio(shtato,okupo2,tk)
okat = okat .. okat1
end
if okupo3 ~="" then
okupo3 = ligiloj._delink(okupo3)
local okat1 = okupokategorio(shtato,okupo3,tk)
okat = okat .. okat1
end
-- Kategorioj pri okupoj el Vikidatumoj, se nenio alia ĉeestas
if okupoj == "" and okupo == "" and okupo2 == "" and okupo3 == "" then
local wdo = wikidatoj.okupo()
if wdo ~= nil then
local n = listoj._count(",", wdo)
if n > 1 then
strings = mw.text.split(wdo, ",", plain)
for k,v in pairs(strings) do
local okat1 = okupokategorio(shtato,v,tk)
okat = okat .. okat1
end
else
local okat1 = okupokategorio(shtato,wdo,tk)
okat = okat .. okat1
end
end
end
-- fino de kategorioj pri okupoj
-- transpreno de informoj pri la sekso de persono el vikidatumoj
local sekso = wikidatoj.sekso()
if sekso ~= nil then
if sekso == "vira" then
okat = okat .. okat .. "[[" .. tk .. "Kategorio:Viroj]]"
elseif sekso == "ina" then
okat = okat .. okat .. "[[" .. tk .. "Kategorio:Virinoj]]"
end
end
-- aldono al la eldonenda signoĉeno
kategorio = kategorio .. okat
-- ordigo
--{{DEFAULTSORT:{{ucfirst:{{#if:{{{Ordigo|}}}|{{{Ordigo}}}|{{#if:{{{Familinomo|}}}|{{{Familinomo}}}&#32;,{{{Antaŭnomo}}}|{{{Antaŭnomo}}}}}}}}}}}
local ordigo = ""
if ordigilo ~="" then
local ordigilo = mw.ustring.upper(mw.ustring.sub(ordigilo, 1, 1)) .. mw.ustring.sub(ordigilo, 2) -- anstataŭaĵo de {{ucfirst:
ordigo = ordigo .. ordigilo
else
if familinomo ~= "" then
ordigo = ordigo .. familinomo .. spaco .. "," .. antaunomo
else
ordigo = ordigo .. antaunomo
end
end
-- ĝi okazu nur, se la koncerna variablo ne malŝaltas tion
if ordigu == "ne" then
-- se ne okazu ordigo laŭ iu ordigilo, forĵetu tion, por ke tio ne subite aperu kiel normala teksto
ordigo = ""
end
-- dataj kategorioj
if naskjaro ~= "" then
local n = vivtempo(ordigo,naskjaro,mortjaro,tk)
-- aldono al la eldonenda signoĉeno
kategorio = kategorio .. n
elseif naskodato ~= "" and mortodato ~= "" then
local n = vivtempo(ordigo,naskodato, mortodato, tk)
kategorio = kategorio .. n
elseif naskodato ~= "" and mortodato == "" then
local n = vivtempo(ordigo,naskodato, "", tk)
kategorio = kategorio .. n
elseif naskodato == "" and mortodato ~= "" then
local n = vivtempo(ordigo,"NEKONATA",mortodato,tk)
kategorio = kategorio .. n
else
local n = wikidatoj.naskidato()
if n ~= nil then
local n = wikidatoj.Njaro()
local m = wikidatoj.Mjaro()
if wikidatoj.mortdato() == "nekonata" then m="NEKONATA" end
local k = vivtempo(ordigo,n,m,tk)
--local k = ""
-- aldono al la eldonenda signoĉeno
kategorio = kategorio .. k
else
kategorio = kategorio .. frame:callParserFunction{ name = "DEFAULTSORT", args = ordigo }
end
end
 
-- aldonu antaŭ tio
end
end
end
end
-- fina parto
-- nestado de interna ŝablono
if args['enhavo'] ~= "" and args['enhavo'] ~= nil and args['Enhavo'] ~= "" and args['Enhavo'] ~= nil then
-- tabela strukturo devas esti kreata de la interna ŝablono!
local enhavo = args['enhavo'] or args['Enhavo']
tabelo:newline()
tabelo:wikitext(enhavo)
tabelo:newline()
end
if args['subŝablono'] ~= "jes" and args['Subŝablono'] ~= "jes" then
if portalo == false then
-- ligilo al portalo, laŭ {{Informkesto homoj}}
-- ! colspan="2" style="margin:0;padding:1px;border:solid #aaa 1px;background:#fff;
-- font-size:90%;text-align:center"| '''[[Portalo:Homoj|<span style="color:#000;background:#f9f9f9">Portalo pri Homoj</span>]]'''
local portalo = '[[Portalo:Homoj|<span style="color:#000;background:#f9f9f9">Portalo pri Homoj</span>]]'
portalo = "'''" .. portalo .. "'''" -- la grasigo estu aparta, ĉar alie Lua traktas tion kiel eraron
local portallinio = tabelo:tag("tr")
local portalchelo = portallinio:tag("th")
:attr("colspan","2")
:css("margin","0")
:css("padding","1px")
:css("border","solid #aaa 1px")
:css("background","#fff")
:css("font-size","90%")
:css("text-align","center")
:wikitext(portalo)
end
-- ŝanĝu ŝablonon
-- {{ŝanĝu ŝablonon|ŝablono=Informkesto geografiaĵo}}
local t = informkesto._ligilaro (shablono,fono,"","","","","linio")
tabelo:newline()
:wikitext(t)
:newline()
:done()
end
-- fino de la tabelo
r = tostring(tabelo) .. teksto .. kategorio
return r
 
end
 
 
-- ligilo al portalo, laŭ {{Informkesto homoj}}
-- ! colspan="2" style="margin:0;padding:1px;border:solid #aaa 1px;background:#fff;
-- font-size:90%;text-align:center"| '''[[Portalo:Homoj|<span style="color:#000;background:#f9f9f9">Portalo pri Homoj</span>]]'''
local portalo = '[[Portalo:Homoj|<span style="color:#000;background:#f9f9f9">Portalo pri Homoj</span>]]'
portalo = "'''" .. portalo .. "'''" -- la grasigo estu aparta, ĉar alie Lua traktas tion kiel eraron
local portallinio = tabelo:tag("tr")
local portalchelo = portallinio:tag("th")
:attr("colspan","2")
:css("margin","0")
:css("padding","1px")
:css("border","solid #aaa 1px")
:css("background","#fff")
:css("font-size","90%")
:css("text-align","center")
:wikitext(portalo)
 
-- ŝanĝu ŝablonon
-- {{ŝanĝu ŝablonon|ŝablono=Informkesto biografio}}
local shablono="Informkesto biografio"
local t = informkesto._ligilaro (shablono,fono,"","","","","linio")
tabelo:newline()
:wikitext(t)
:newline()
:done()
 
r = tostring(tabelo)
return r
 
end
 
return p