Modulo:Biografio

Dokumentado Dokumentado


Ŝablona programadoDiskutojLuaTestojSubpaĝoj
ModuloEsperantoEnglish

Modulo:Dokumentado


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- modulo Biografio, 2021-05-08-- ĉi tiu modulo celas aranĝi la ŝablonon {{informkesto biografio}}, kiu konsistas el tri partoj:-- enkonduka frazo-- kategorioj-- informkestolocal datoj = require("Modulo:Datoj")local wikidata = require("Modulo:Wikidata")-- bonvolu atenti, ke temas pri du malsamaj moduloj!local wikidatoj = require("Modulo:WikidataBiografio")-- bonvolu atenti, ke temas pri du malsamaj moduloj!local listoj = require("Modulo:Listutil")local bildoj = require("Modulo:InfoboxImage")local prenubildon = require ("Modulo:Portalo").imagelocal informkesto = require("Modulo:Informkesto")local ligiloj = require ("Modulo:Linkutil")local signocheno = require("Modulo:String")-- helpaj funkciojlocal function argumentoj(args, par)if par ~= "" and par ~= nil thenlocal varianto = mw.ustring.gsub(par, "_", " ")   -- ŝanĝo de _ el parametro al spacolocal varianto2 = mw.ustring.upper(par)  -- ŝanĝo al majusklaj literojlocal varianto3 = mw.ustring.upper(mw.ustring.sub(par, 1, 1)) .. mw.ustring.sub(par, 2)   -- nur la unua litero fariĝas majusklolocal r = args["" .. par] or args["" .. varianto] or args["" .. varianto2] or args["" .. varianto3] or ""if r ~= "" thenreturn rendendend-- aldonaj parametroj por bildojlocal 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" thenlocal r = ""if parto == "priskribo" thenr = "priskribo de " .. par elseif parto == "grandeco" thenr = "grandeco de " .. parendif r ~= "" thenr = argumentoj(args,r)if r ~= "" and r ~= nil thenreturn rendendendend-- Vikidatumaj helpaj funkcioj-- transprenas vikidatuman eron, se ne temas pri bildolocal function wdparam(pk,wdid,ref)-- analizo, ĉu pk enhavas valoron.if pk ~= "" and pk ~= nil thenlocal r, r2if ref == "auto" thenif 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"} })endif r ~= "" and r ~= nil thenreturn r, refendelseif wdid ~= "" and wdid ~= nil thenr = wikidata.claim({args={pk,id=wdid} })elser = wikidata.claim({args={pk} })endif r ~= "" and r ~= nil thenreturn r, refendendend endlocal function wdlink (id, pkodo)-- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P374|[+]]]</span>if pkodo ~= "" and pkodo ~= nil thenlocal ligiloif id ~= "" and id ~= nil thenligilo = idelseligilo = wikidata.pageId({args = {} }) or ""endif ligilo thenligilo = ' <span class="el_wd">[[:d:' .. ligilo .. "#" .. pkodo .. '|[+]]]</span>'endreturn ligiloendend-- por aldono de piednoto al tekstolocal function notaldono(noto, param)if noto ~= "" and noto ~= nil thenparam = param .. "  ''" .. noto .. "''" -- aldonas noton kursivereturn paramelsereturn paramendend-- por aldono de referencolocal function refaldono(referenco, param, refnomo, refnomodua)if (referenco ~= "" and referenco ~= nil) or (refnomo ~= "" and refnomo ~= nil) thenlocal rlocal frame = mw.getCurrentFrame()if referenco ~= "" and referenco ~= nil thenlocal strings= mw.text.split(referenco, "///", plain)local nombro = #stringsif nombro > 1 thenfor k, ref in pairs(strings) doif refnomo ~= "" and refnomo ~= nil thenif refnomodua ~= "" and refnomodua ~= nil thenr = frame:extensionTag('ref', {name= refnomo } )elser = frame:extensionTag('ref', ref, {name=refnomo} )endparam = param .. relseif ref ~= "" and ref ~= nil thenr = frame:extensionTag('ref',  ref )param = param .. rendendreturn paramendendif refnomo ~= "" and refnomo ~= nil thenif refnomodua ~= "" and refnomodua ~= nil thenr = frame:extensionTag('ref', {name= refnomo } )elser = frame:extensionTag('ref', referenco, {name=refnomo} )endparam = param .. rreturn paramelseif referenco ~= "" and referenco ~= nil thenr = frame:extensionTag('ref',  referenco )param = param .. rreturn paramendelsereturn paramendend-- 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"-- kaplinioif klaso ~= "" and klaso ~= nil and type(klaso) == "string" thenklaso = klasoelseklaso = "kaplinio persono fn"endif wd == "jes" thenklaso = klaso .. " wikidata-content"endlocal tabelkapoif montrilo ~= "" and montrilo ~= nil thentabelkapo = tabelo:tag('tr'):attr('title',montrilo):addClass('mergedtoprow')elsetabelkapo = tabelo:tag('tr')end-- kaplinia ĉelolocal kapchelo = tabelkapo:tag('th'):addClass(klaso):attr('colspan','2'):css('color','#000'):css('background-color',fono):css('text-align','center'):css('font-family','Monotype Corsiva, serif'):wikitext(titolo):done():newline()endend-- tabela subtitilolocal function tabelsubtitolo(titolo, fono, montrilo)if titolo == nil thentitolo = ""endlocal subtitolo1if montrilo ~= "" and montrilo ~= nil thensubtitolo1 = tabelo:tag('tr'):attr('title',montrilo):addClass('mergedrow')elsesubtitolo1 = tabelo:tag('tr')endif fono ~= "" and fono ~= nil thenlocal 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()elselocal titol1chelo = subtitolo1:tag('th'):css('text-align','center'):attr('colspan','2'):wikitext(titolo):done():newline()endend-- bilda ĉelo por unuopa bildolocal function unuopabildo(bildo, wd)if bildo == nil thenbildo = ""endif wd == "jes" thenwd = "wikidata-content"elsewd = ""endlocal 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)endlocal function aldonulinion (c1, c2, wd)local tabellinio = tabelo:tag("tr")local chelo1 = tabellinio:tag("td"):wikitext("'''" .. c1 .. "'''"):done()if wd == "jes" thenlocal chelo2 = tabellinio:tag("td"):addClass("wikidata-content"):wikitext(c2):done():newline()elselocal chelo2 = tabellinio:tag("td"):wikitext(c2):done():newline()endend-- unuopa ĉelo-- c - enhavo de la ĉelo-- v - varianto de ĉelo-- wd - ĉu datoj el Vikidatuma erolocal function aldonuchelon (c, v, wd, montrilo)local t = ""local css_klaso = "mergedrow"if v == "titolo" thent = "th"elseif v == "linio"thent = "td"css_klaso = "mergedtoprow"elset = "td"endif montrilo == nil thenmontrilo = ""endlocal tabellinio = tabelo:tag('tr'):attr('title',montrilo):addClass(css_klaso)if wd == "jes" thenwd = "wikidata-content"elsewd = ""endlocal 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 tekstolocal function flago(nomo)if nomo == "" or nomo == nil then return endlocal testo = ligiloj._chuligilo2(nomo)local ligilo = ""if testo == "ligu" thenligilo = "[[" .. nomo .. "]]"elseligilo = nomonomo = ligiloj._delink(nomo)endlocal n = prenubildon{nomo} -- ne estu ronda krampo, ĉar estas importita funkcioif n ~= "Portal-puzzle.svg" and n ~= nil thenn = "[[Dosiero:" .. n .. "|18px]]&nbsp;" .. ligiloreturn nelsereturn ligiloendend-- rearanĝas la okupojn, traŝovante la unuopajn erojn tra alia helpa funkcio, se estas pli ol unu-- alie faru kiel ĉe "okupo", "okupo2" kaj "okupo3"-- "chu" stiras, ĉu la rekunigitaj listeroj jam estu traktataj de la modulo Listutil aŭ nelocal function okupoanalizo(okupoj,chu)local o = ""local n = listoj._count(",",okupoj)if n > 1 thenlocal strings = mw.text.split(okupoj, ",", plain)for k,v in pairs(strings) dolocal listero = ""if ligiloj._chuligilo1(v) thenlistero = "[[" .. v .. "]]"elselistero = vendif k > 1 theno = o .. "," .. listeroelseo = listeroendendif chu ~="ne" theno = listoj._list(",",o,"jes","kaj")endelse-- analizo, ĉu jam estas ligilo. se jes, ŝanĝu nenion.if ligiloj._chuligilo1(okupoj) theno = "[[" .. okupoj .. "]]"elseo = okupojendendreturn oendlocal function okupokategorio (shtato, okupo,t)if shtato ~= "" and shtato ~= nil thenlocal frame = mw.getCurrentFrame()local r = frame:expandTemplate{title="Informkesto biografio/Kategorio",args={shtato,okupo}}if t ~="" thenr = mw.ustring.gsub(r,"%[%[Kategorio:","[[:Kategorio:")endreturn relsereturn ""endendlocal function shtatadjektivo (shtato)local frame = mw.getCurrentFrame()local st = frame:expandTemplate{title = "Informkesto biografio/Ŝtatlisto",args = {shtato,}}return stendlocal 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 thenn = mw.ustring.gsub(n,"%[%[Kategorio:Vivantaj homoj%]%]","")endif t ~="" thenn = mw.ustring.gsub(n,"%[%[Kategorio:","[[:Kategorio:")endreturn nendlocal function etmajuskloj (teksto)local frame = mw.getCurrentFrame()local n = frame:expandTemplate {title="etmajuskloj",args = {teksto}}return nendlocal function monato (m)local frame = mw.getCurrentFrame()local n = frame:expandTemplate {title="monato",args = {m}}return nend-- malkomponilaj funkcioj-- formatigi numeronfunction formatnum(numero)local frame = mw.getCurrentFrame()local n = tonumber(numero)if n ~= nil thenlocal r = frame:callParserFunction( "formatnum", n )return rendendlocal function paghenamebase ()local frame = mw.getCurrentFrame()local n = frame:expandTemplate {title="PAGENAMEBASE",}return nend-- alvoko de informkestera ŝablonolocal function kestero(teksto, etikedo, fono, shtopado)local frame = mw.getCurrentFrame()local r = frame:expandTemplate {title='Ŝablono:Informkesto/+/html',args = {linisalto='jes',['titola koloro']='neniu',['koloro alt']=fono,fono=fono,teksto=teksto,etikedo=etikedo,['ŝtopado']=shtopado}}return rend-- anstataŭu ionlocal function anstatau(teksto, serchu, metu)local frame = mw.getCurrentFrame()local r = frame:expandTemplate {title='Ŝablono:Anstataŭu',args={teksto,serchu, metu}}return rendlocal p = {}-- spaco por enkonduko kaj kategoriojlocal function kesteroj(nomo, trajto, k)if trajto == 'ĉelo' thentabelo:wikitext('<tr><td colspan="2" style="padding:0"><div>\n')if k == 'kaŝu' thentabelo:wikitext('{| class="collapsible collapsed" style="width:23em"\n')elsetabelo:wikitext('{| style="width:23em"\n')endtabelo:wikitext('|-\n')end--tabelo:wikitext('\n<nowiki/>\n')tabelo:wikitext('\n\n')tabelo:wikitext(nomo)if trajto == 'ĉelo' thentabelo:wikitext('\n\n|}\n')tabelo:wikitext('\n</div></td></tr>')endend-- rigardas al la Vikidatuma ero, ĉu iu havas indikon pri Esperanto en P1412.local function chuesperanto(id)local frame = mw.getCurrentFrame()local r = frame:expandTemplate{title="Ĉuesperanto",args={wdid=id}}return rend-- funkcio por la informkesta parto, iom post iom kompletigotafunction p.informkesto (frame)-- This function builds the infobox used by the {{informkesto biografio}} template.if not getArgs thengetArgs = require("Module:Arguments").getArgsend--local args = getArgs(frame, {wrappers = "Template:Babel"})local args = getArgs(frame, {wrappers = "Ŝablono:Informkesto biografio"})-- analizo de la nomspaco    currentTitle = mw.title.getCurrentTitle()    local ns   = currentTitle.namespace    local wdidstirilo = true-- klaso por la tuta tabelo, aldonata post "infobox"local klaso = args['klaso'] or args['Klaso'] or "infobox vcard"local titolklaso = args['titolklaso'] or args['Titolklaso'] or "kaplinio persono fn"local tipo = args[1] or ""if tipo ~= "" thentipo = mw.ustring.lower(tipo)end-- vikidatuma id-- helpa parametro por testoj de valoroj el Vikidatumojlocal wdid  if wdidstirilo == true thenwdid = args['wd']end-- formatojlocal fono = args['fono'] or args['Fono'] or ""local fono2 = args['fono2'] or args['Fono2'] or "#efefef"if fono == "" then fono = "#DDDDFF"endlocal testo = chuesperanto(wdid)if testo ~= '0' thenfono = '#090'titolklaso = "kaplinio stelo fn"endlocal shablono-- parametro kun nomo de la ŝablonoif (args['ŝablono'] ~= "" and args['ŝablono'] ~= nil) or (args['Ŝablono'] ~= "" and args['Ŝablono'] ~= nil) thenshablono = args['ŝablono'] or args['Ŝablono']elseshablono = "Informkesto biografio"end-- pliaj variablojlocal r = ""-- ĉu io estas el Vikidatuma ero aŭ ne., ebla valoro estas "jes"local wdj = ""-- por la enkonduka tekstolocal teksto = ''local nasko_teksto = ''local morto_teksto = ''local okupo_teksto = ''local d = ''local vn = "" -- vera nomo kun indiko pri tiolocal estas = "estas"-- komenco de la tabelolocal titolo = args["titolo"] or args["Titolo"] or args["nomo"] or args["Nomo"] or "" -- pliaj variantoj aldoneblasif titolo == "" thentitolo = paghenamebase ()end-- nomojlocal 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 variablojlocal r = ""local spaco = "&#32;"local fn1 = '<span style="text-transform:uppercase">'local fn2 = "</span>"local br = "<br/>"-- nomojlocal nomo = ""local nomo2 = "" -- por la enkondukoif antaunomo ~="" thennomo = antaunomo .. spacoendif familinomo ~="" thennomo = nomo .. fn1 .. familinomo .. fn2endif postnomo ~= "" then--ne shanghu la sinsekon de la du sekvaj linioj!nomo2 = nomo .. spaco .. postnomonomo = nomo .. br .. spaco .. postnomoendif nomo ~= "" and nomo ~= nil thentitolo = nomoendif nomo2 ~= "" and nomo2 ~= nil thentitolo2 = nomo2elseif nomo ~= "" and nomo ~= nil thentitolo2 = nomo elsetitolo2 = titoloend-- por la enkonduka tekstolocal prononco = args["Prononco"] or ""local postfamilinomo = args["PostFamilinomo"] or ""local aliajlingvoj = args["AliajLingvoj"] or ""-- datojlocal nasktago = args["NaskiĝTago"] or ""local naskmonato = args["NaskiĝMonato"] or ""local naskjaro = args["NaskiĝJaro"] 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 ""-- okupojlocal 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 ""-- por la kategoriojlocal ordigilo = args["Ordigo"] or ""local ordigu = args["Ordigu"] or ""local test = args["Testo"] or ""-- ceteraj variabloj por la kategoriolocal kategorio = ""local okat = ""local spaco = "&#32;"local tk = ""if test == "yes" or test == "jes" or ns ~= 0 thentk = ":"endlocal shtato = ''-- el la malnova modulo-- okupojlocal o = ""local n = 1 -- nombro de okupoj, ĉar de tio dependas la teksto en la tabeloif okupoj ~="" thenif aliajokupoj ~= "" thenokupoj = okupoj .. "," .. aliajokupojendn = listoj._count(",",okupoj)o =  okupoanalizo(okupoj)elseif okupo ~= "" or okupo2 ~= "" or okupo3 ~= "" or aliajokupoj ~= ""  thenlocal okupoj = ""if okupo ~="" thenlocal o1 = okupoif ligiloj._chuligilo1(okupo) theno1 = "[[" .. o1 .. "]]"endokupoj = o1endif okupo2 ~="" thenlocal o2 = okupo2if ligiloj._chuligilo1(okupo2) theno2 = "[[" .. o2 .. "]]"endokupoj = okupoj .. "," .. o2endif okupo3 ~="" thenlocal o3 = okupo3if ligiloj._chuligilo1(okupo3) theno3 = "[[" .. o3 .. "]]"endokupoj = okupoj .. "," .. o3endif aliajokupoj ~="" thenlocal o_a = okupoanalizo(aliajokupoj,"ne")okupoj = okupoj .. "," .. o_aendif okupo ~= "" or okupo2 ~= "" or okupo3 ~= "" or aliajokupoj ~= "" thenn = listoj._count(",",okupoj)if n > 1 theno = listoj._list(",",okupoj,"jes","kaj","","jes") -- disiga signo, ĉitiea variablo, modo, limsigno (ĉikaze ne uzata), linisaltoelseo = okupojendendelse-- okupoj el Vikidatumojlocal wdo = wikidatoj.okupo()if wdo ~= nil thenn = listoj._count(",",wdo)o = listoj._list(",",wdo,"jes","kaj","","jes")wdj = "jes" -- ne estu "local" ĉi tie, ĉar alie ne funkcios ekster ĉi tiu else-blokoendendlocal va = true -- ĉu viva?if naskjaro ~= "" and mortjaro ~="" then-- naskiĝdatolocal nj = naskjarolocal nm = "januaro"if naskmonato ~= "" thennm = naskmonatoendlocal nm = monato(nm)local nt = "1"if nasktago ~= "" thennt = nasktagoend-- mortodatolocal mj = mortjarolocal mm = "januaro"if mortmonato ~= "" thenmm = mortmonatoendlocal mm = monato(mm)local mt = "1"if morttago ~= "" thenmt = morttagoend--a = agho (nj,nm,nt,mj,mm,mt,ordigo)-- la funkcio prefere estu en la modulo Datoj kaj tial estas nun enplektita de tieif ordigo ~= "" and ordigo ~= nil thena = datoj._agho(nt,nm,nj,mt,mm,mj,"","",ordigo)elsea = datoj._agho(nt,nm,nj,mt,mm,mj,"","",'')endva = falseelseif naskjaro ~= "" and mortjaro == "" then-- naskiĝdatolocal nj = naskjarolocal nm = "januaro"if naskmonato ~= "" thennm = naskmonatoendlocal nm = monato(nm)local nt = "1"if nasktago ~= "" thennt = nasktagoend--a = agho (nj,nm,nt,"","","",ordigo)-- nun la funkcio troviĝas en la modulo Datoj, ĉar tio estas pli taŭga modulo por ĝiif ordigo ~= nil and ordigo ~= "" thena = datoj._agho(nt,nm,nj,"","","","","",ordigo)elsea = datoj._agho(nt,nm,nj,"","","","","","")endelsea = wikidatoj.agho()local test = wikidatoj.vivanta()if test == 1 thenva = falseendif a == nil thena = ""endend-- pliaj variabloj local portalo = false-- ekuzi submodulojn por la informkesta strukturolocal submodulo = args['submodulo'] or args['Submodulo'] or "homo"if args['subŝablono'] ~= "jes" and args['Subŝablono'] ~= 'jes' then-- la variablo "tabelo" ne povas esti local, ĉar alie ĝia uzo en subŝablono ne funkciastabelo = mw.html.create("table"):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ĝatatabelkapo(titolo, fono, "", wd, titolklaso, montrilo)else-- la variablo "tabelo" ne povas esti local, ĉar alie ĝia uzo en subŝablono ne funkciastabelo = mw.html.create()end-- loko por la enhavo-- posttitola parto de la informkestolocal variabloj = 'Modulo:Biografio/' .. submodulolocal parametroj = mw.loadData(variabloj)local listo = parametroj.liniojlocal noto = parametroj.noto or ""local referenco = parametroj.referenco or ""if type(listo) == "table" then-- testolocal slocal par, t, pk, pk2, a1, a2, pri, pri2, iso, ligfor k, v in pairs(listo) doif type(v) == "table" thenpar = 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"]-- por la finaĵo de bildo. laŭ la ĝisnuna trajto.suf = v["sufikso"]suf2 = v["sufikso2"]-- por kaŝado kaj aliaj ruzaĵojkondicho = v["kondicho"]-- voki la parametron el argspar = tostring(par)-- local param = args[par]or ""local param = argumentoj (args, par) or argumentoj(args, par_a) or argumentoj(args, par_b)local param2if par2 ~= "" and par2 ~= nil thenparam2 = argumentoj(args,par2) or argumentoj(args, par2_a) or argumentoj(args, par2_b)end-- por notojlocal noto2if noto == "_noto" thennoto2 = par .. noto-- kunigas parametrajn nomojn, ne valorojnelseif noto == "noto por " thennoto2 = noto .. par-- kunigas parametrajn nomojn, ne valorojnendlocal notovaloro = argumentoj(args,noto2)-- transprenas la valoron el la ŝablono-- por referencojlocal referenco2, referenco2a, referenco2bif referenco == "_referenco" thenreferenco2 = par .. referenco-- kunigas parametrajn nomojn, ne valorojnreferenco2a = referenco2 .. "_nomo"referenco2b = referenco2 .. "_nomo-dua"elseif referenco == "referenco por " thenreferenco2 = referenco .. par-- kunigas parametrajn nomojn, ne valorojnreferenco2a = referenco2 .. "-nomo"referenco2b = referenco2 .. "-nomo-dua"endlocal referencovaloro = argumentoj(args,referenco2)-- transprenas la valoron el la ŝablonolocal referenconomo = argumentoj(args,referenco2a)-- transprenas la valoron el la ŝablonolocal referenconomodua = argumentoj(args,referenco2b)-- transprenas la valoron el la ŝablonoif t == "subtitolo" then  -- ankoraŭ devas resti-------------------- SUBTITOLO ---------------------------------------------local kon = argumentoj(args, kondicho)if args['subŝablono'] ~= "jes" and kon ~= 'jes' thenif param ~= "" and param ~= nil thentabelsubtitolo(param, fono, montrilo)endendelseif t == 'subtitolo2'then----------------------------------------------------------------------------local kon = argumentoj(args, kondicho)if param ~= "" and param ~= nil and kon ~= 'jes' thenlocal r = kapo_paramif a1 ~= "" and a1 ~= nil thenlocal nombro = tonumber(a1)if nombro ~= nil thenfor i=1, nombro dolocal titolo = par .. ilocal st = argumentoj(args, titolo) or ""if st ~= "" thenr = r .. ', ' .. stendendendendtabelsubtitolo(r,fono, montrilo)endelseif 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 ĝinif pri ~= "" and pri ~= nil thenif param ~= "" and param ~= nil thenpri = paramendif grupanoj ~= "" and grupanoj ~= nil thenlocal nombro = #grupanoj-- la disiga signaro estas ///local string = mw.text.split(grupanoj, "///", true)-- helpa parametro por eviti pli ol unu strionlocal n = 1if shablono == "Informkesto biografio" thenfono2 = args['fono']if fonkoloro ~= "" and fonkoloro ~= nil thenfono2 = fonkoloroendelseif v["koloro"] == "cheftitolo" thenfono2 = fonoendfor k, v in pairs(string) dolocal testo = argumentoj(args,v)-- aldono por Informkesto urbo kaj similaj ŝablonojif v == "situo sur mapo" and (testo == "" or testo == nil) thentesto = argumentoj(args,"regiono-ISO")elseif v == "koordinatoj" and (testo == "" or testo == nil) thenlat, lon = koordargumentoj(args,"situo")if lat and lon thentesto = "jes"elselat = argumentoj(args,"latitudo")lon = argumentoj(args,"longitudo")if lat and lon thentesto = "jes"endendelseif testo == "" or testo == nil thenlocal chupkodo = mw.ustring.match(v,"P[0-9]*([0-9])")  --analizo, ĉu estas pkodo if chupkodo ~= nil thentesto=wdparam(v,wdid)endendif testo ~= "" and testo ~= nil and n == 1 thentabelsubtitolo(pri, fono2, montrilo)n = n +1endendendendelseif t == "bildo" then---------------- BILDO -------------------------------------------------------------------------------------------------------------- bilda parto -- bildo estas malaperigebla per certaj valoroj-- komunaj variablojlocal 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" thenlocal fino = argumentoj(args, suf) or argumentoj(args, suf2)-- 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,ending=fino,endingdefault='jpg',sizedefault="frameless",center="yes", caption=priskribo} })unuopabildo(bildo)elseif param ~= "ne" and param ~= "neniu" thenif 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 bildoif wdid ~= "" and wdid ~= nil thenbildo = wikidataBildo.bildoj({args={grandeco=grando,["defaŭlta grandeco"]="frameless",["priskribo de bildoj"]=priskribo,pkodo=pk, pkodo2=pk2,id=wdid, tabelo=args, grupo=grupo} })elsebildo = wikidataBildo.bildoj({args={grandeco=grando,["defaŭlta grandeco"]="frameless",["priskribo de bildoj"]=priskribo,pkodo=pk, pkodo2=pk2, tabelo=args, grupo=grupo} })endif bildo thenunuopabildo(bildo,"jes")endendendelseif 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 priskribolocal a2aif pri ~= "" thena1a = argumentoj(args,a1) or argumentoj(args,a1_a)if a1a ~= "" and a1a ~= nil thenpri = a1aendif v['sub'] == 1 thenpri = " - " .. prienda2a = argumentoj(args,a2) or argumentoj(args,a2_a)if a2a ~= "" and a2a ~= nil thenif t == "ekde" thenif a3 ~= "" and a3 ~= nil thenlocal a3a = argumentoj(args,a3) or argumentoj(args,a3_a)if a3a ~= "" and a3a ~= nil thena3a = " ĝis " .. a3apri = pri .. " (ekde " .. a2a .. a3a .. ")"elsepri = pri .. " (ekde " .. a2a .. ")"endelsepri = pri .. " (ekde " .. a2a .. ")"endendendendif v['kondicho'] ~= "" and v['kondicho'] ~= nil and (param == "" or param == nil) thenlocal kondicho = v['kondicho']local strings = mw.text.split(kondicho, "///", plain)for k, v in pairs(strings) dolocal testo = argumentoj(args,v)if testo ~= "" and testo ~= nil thenparam = "&nbsp;"breakendendend-- pliaj informoj pri situolocal situo2 = ""if situo ~= "" and situo ~= nil and t == "situo" thenlocal strings = mw.text.split(situo, "///", plain)local n = 1      -- nombro de tiaj parametroj en artikolofor k, v in pairs(strings) dolocal situoinformo = argumentoj(args,a2 .. "_" .. v)if situoinformo ~= "" and situoinformo ~= nil thenif n == 1 thensituo2 = situo2 .. situoinformoelsesituo2 = situo2 .. ", " .. situoinformoendn = n + 1endendend-- se parametro estas en la artikoloif param ~= "" and param ~= nil then-- por naskiĝloko kaj mortolokoif t == 'loko' then-- ligilo al artikolo malsamas al legebla ligilotekstolocal l = argumentoj(args, lig)-- savu la nomon de loko por pli posta uzolocal l2 = paramif l ~= "" and l ~= nil thenparam = "[[" .. l .. "|" .. l2 .. "]]"elselocal l = listoj._count(",",l2)if l > 1 thenparam = listoj._list(",",l2, "jes", "span", ",", "", "", "", 0, "")elseparam = "[[" .. l2 .. "]]"endend-- por la enkonduka tekstoif tt == 'nasko_teksto' thenif nasko_teksto == '' thennasko_teksto = 'naskiĝis 'endnasko_teksto = nasko_teksto .. " en " .. paramelseif tt == 'morto_teksto'thenif morto_teksto == '' thenmorto_teksto = 'mortis 'endmorto_teksto = morto_teksto .. " en " .. paramendend-- pliaj variantojif tt == 'vn' thenvn = "&#059; vera nomo " .. paramelseif tt == 'ŝtato' thenlocal testo = ligiloj._chuligilo2(param)if testo == 'ligu' thenshtato = paramparam = '[[' .. param .. ']]'elseshtato = ligiloj._delink(param)endendif t == "numero" or t == "loĝantaro" then       -- se estas numero aŭ nombro de loĝantoj, laŭ la subŝablona tabelo, tiam formatigu tiellocal n = tonumber(param)if n ~= nil thenparam = formatnum(param) elsenenumero = true -- aktivigas zorgigan kategorionendendif a2a ~= "" and a2a ~= nil thenif t == "loĝantaro" thenparam = param .. " <small>(" .. a2a .. ")</small>"elseif t ~= "situo" thenif v["prefikso"] ~= "" and v["prefikso"] ~= nil thena2a = v["prefikso"] .. a2aendparam = param .. " (" .. a2a .. ")"endendif situo2 ~= "" thenparam = param .. ", " .. situo2endparam = notaldono(notovaloro,param, a2)param = refaldono(referencovaloro,param, referenconomo, referenconomodua)if pri ~= "" and pri ~= nil thenaldonulinion(pri,param, "", "", montrilo)elsealdonuchelon(param, "", "", montrilo)endelse-- ĉu vikidatuma ero ekzistaslocal wd, referencovaloro = wdparam(pk,wdid,referencovaloro)if wd ~= "" and wd ~= nil and wd ~= 'sen valoro' and wd ~= "nekonata valoro" thenlocal ligilo = wdlink (wdid, pk) or ""if t == "numero" or t == "loĝantaro" thenwd = formatnum(wd) or wdendif tt == 'nasko_teksto' thennasko_teksto = nasko_teksto .. ' en [[' .. wd .. ']]'elseif tt == 'morto_teksto' thenmorto_teksto = morto_teksto .. ' en [[' .. wd .. ']]'endwd = notaldono(notovaloro,wd, a2)wd = refaldono(referencovaloro,wd, referenconomo, referenconomodua)wd = wd .. ligiloif 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 thenwda2 = wikidata.claim({args={pk,qualifier=pk2,id=wdid} })elsewda2 =  wikidata.claim({args={pk,qualifier=pk2} })endif wda2 ~= "" and wda2 ~= nil then-- forigi K.E. el la teksto, sed ankaŭ la antaŭa spaco estu forigitawda2 = mw.ustring.gsub( wda2, " K%.E%.", "")wd = wd .. " <small>(" .. wda2 .. ")</small>"end-- fino de la verukoelseif a2a ~= "" and a2a ~= nil thenwd = wd .. " (" .. a2a .. ")"endend-- wd = notaldono(noto,par, wd, args,a2,pk,wdid)if pri ~= "" and pri ~= nil thenaldonulinion(pri,wd,"jes", "",montrilo)elsealdonuchelon(wd,"", "jes", montrilo)endendendelseif t == "teksto1" then---------------- TEKSTO1 - do unuĉela teksto kun priskribo --------------------------------------------------------------------------- komuna parto kun priskribolocal p = pri or ""if p ~= "" thenp = "<b>" .. p .. "</b>: "end-- se parametro estas en artikoloif param ~= "" and param ~= nil thenlocal p2 = p .. paramp2 = notaldono(notovaloro,p2)p2 = refaldono(referencovaloro,p2, referenconomo, referenconomodua)aldonuchelon(p2,"", "", montrilo)else-- ĉu estas vikidatuma erolocal wd, referencovaloro = wdparam(pk,wdid,referencovaloro)if wd ~="" and wd ~= nil thenlocal ligilo = wdlink (wdid, pk) or ""local p2 = p .. wdp2 = notaldono(notovaloro,p2)p2 = refaldono(referencovaloro,p2, referenconomo, referenconomodua)p2 = p2 .. ligiloaldonuchelon(p2,"","jes", montrilo)endendelseif t == "portalo" then---------------- PORTALO - rilata portalo -------------------------------------------------------------------------if param ~= "" and param ~= nil thenlocal bildo = "[[Dosiero:Portal.svg|15px]]"param = "&nbsp;<b>[[Portalo:" .. param .. "|" .. param .. "]]</b>"local p2 = bildo .. paramaldonuchelon(p2, "", "", montrilo)portalo = trueendelseif t == "listo" then---------------- LISTO ---------------------------------------------------------------------------------------------------------------- Listecaj parametrojif param ~= "" and param ~= nil thenlocal c1 = prilocal f = false   -- ne pluralolocal div = false-- neniu faldadolocal nombro = 15if listeroj ~= "" and listeroj ~= nil thenlocal l = tonumber(listeroj)if l ~= nil thennombro = lendendlocal n = 1local chuflagoif a3 ~= "" and a3 ~= nil thenchuflago=argumentoj(args,a3)endif chuflago ~= "" and chuflago ~= nil thenparam = flago(param)end-- analizo, ĉu jam estas ligilo en la listero. se ne, aldonu ĝin.local testo = ligiloj._chuligilo2(param)if testo == "ligu" thenparam = "[[" .. param .. "]]"endif v["prefikso"] ~= "" and v["prefikso"] ~= nil and a2 ~= "" and a2 ~= nil thenlocal a2a = argumentoj(args,a2)if a2a ~= "" and a2a ~= nil thena2a = v["prefikso"] .. a2aparam = param .. " (" .. a2a .. ")"endendparam = notaldono(notovaloro,param)param = refaldono(referencovaloro,param, referenconomo, referenconomodua)for i=1, nombro dolocal c2 = args["" .. v["parametro"] .. i] or ""if c2 ~= "" and c2 ~= nil thenif chuflago ~= "" and chuflago ~= nil thenc2 = flago(c2)else-- analizo, ĉu jam estas ligilo en la listero. se ne, aldonu ĝin.local testo = ligiloj._chuligilo2(c2)if testo == "ligu" thenc2 = "[[" .. c2 .. "]]"endendlocal noto2 if noto == "_noto" thennoto2 = par .. i .. notoelseif noto == "noto por " thennoto2 = noto .. par .. iendlocal notovaloro = argumentoj(args,noto2)local referenco2, referenco2a, referenco2bif referenco == "_referenco" thenreferenco2 = par .. i .. referencoreferenco2a = referenco2 .. "_nomo"referenco2b = referenco2 .. "_nomo-dua"elseif referenco == "referenco por " thenreferenco2 =  referenco .. par .. ireferenco2a = referenco2 .. "-nomo"referenco2b = referenco2 .. "-nomo-dua"endlocal 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 .. ";;;" .. c2f = truen = n + 1endendif n > 1 thenlocal chufaldi = argumentoj(args,a2)local chufaldiN = tonumber(chufaldi)if chufaldiN == 1 or chufaldi == "faldo" thenparam = n .. ";;;" .. paramdiv = trueendendif f == true and pri2 ~= "" and pri2 ~= nil thenc1 = pri2endif a1 ~= "" and a1 ~= nil then-- c1 = argumentoj(args, a1)local c1a = args["" .. a1]if c1a ~= "" and c1a ~= nil thenc1 = c1aendendlocal c2if div == true thenc2 = 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)endaldonulinion(c1,c2,"", "",montrilo)elselocal wdif wdid ~= "" and wdid ~= nil thenwd = wikidata.claim({args={pk,list=";;;",id=wdid} })elsewd = wikidata.claim({args={pk,list=";;;"} })endif wd ~= "" and wd ~= nil and wd ~= 'sen valoro' and wd ~= 'nekonata valoro' thenlocal nombro = listoj._count(";;;",wd)local chufaldi = argumentoj(args,a2)local chufaldiN = tonumber(chufaldi)local ligilo = wdlink (wdid,pk) or ""local c2if chufaldiN == 1 or chufaldi == "faldo" thenwd = nombro .. ligilo .. ";;;" .. wdc2 = listoj._list(";;;",wd,"jes","faldebla","","jes")elsewd = wd .. ligilo-- (delimiter, text, x, mode, sep, w, kind, spaces, spaces1, spaces2)c2 = listoj._list(";;;",wd,"jes","span",",","jes","","",0)endaldonulinion(pri,c2,"jes", "",montrilo)endendelseif t == "dato" then----------------- DATO -----------------------------------------------------------------------if param ~= "" and param ~= nil thenlocal c1 = pri or "Dato" local c2local c1a = argumentoj(args, a1) or argumentoj(args, a1_a) or ""if c1a ~= "" thenc1 = c1aend--aldonulinion(c1,param)-- testo, ĉu temas pri numero. se jes, supozeble iu transdonis la nuran jaronlocal testo = tonumber(param)if type(testo) == 'number' then-- por la enkonduka tekstoif tt == "nasko_teksto" thennasko_teksto= 'naskiĝis en ' .. datoj._daton("","",param)elseif tt == 'morto_teksto' thenmorto_teksto = 'mortis en ' .. datoj._daton("","",param)estas = 'estis'endparam = datoj._dato("","",param)elselocal s = anstatau(param, '-', '')local testo = tonumber(s)if type(testo) =='number' then-- por la enkonduka tekstoif tt == "nasko_teksto" thennasko_teksto= 'naskiĝis la ' .. datoj._daton(param,"","")elseif tt == 'morto_teksto' thenmorto_teksto = 'mortis la ' .. datoj._daton(param,"","")estas = 'estis'endparam = datoj._dato(param,'','')endendc2 = notaldono(notovaloro,param, a2)c2 = refaldono(referencovaloro,c2, referenconomo, referenconomodua)aldonulinion(c1,c2,wd,"",montrilo)endelseif t == 'faldokomenco' then------------------------------------------------------------------------------------------------if param == 'jes' or param == '1' thenlocal faldo = kestero(pri,'+',fono2,'0.4em 0.2em')-- aldonuchelon(faldo)--tabelo = tabelo .. faldotabelo:wikitext(faldo)endelseif t == 'faldofino' then--------------------------------------------------------------------------------------------------if param == 'jes' or param == '1' thenlocal faldo = kestero('','*')-- aldonuchelon(faldo)--tabelo = tabelo .. faldotabelo:wikitext(faldo)endelseif t == 'aldono' then---------------------------------------------------------------------------------------------------local kon = argumentoj(args, kondicho)if param ~= '' and param ~= nil and kon ~= 'jes' thenlocal trajto = argumentoj(args,a1)local k = v["aldono2"]kesteroj(param, trajto, k)endelseif t == 'okupo' then------------------------------------------------------------------------------------------------------ el la malnova modulo-- metado en tabelajn ĉelojnlocal o1 = "Okupoj"if o ~= "" thenif n == 1 or n == "1" theno1 = "Okupo"endlocal o2 = oif wdj == "jes" thenlocal wdl = wikidata._pageId()         -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P106|[+]]]</span>if wdl ~= nil theno2 = o2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P106|[#]]]</span>"endaldonulinion(o1, o2,wd)okupo_teksto = o2elsealdonulinion(o1, o2)okupo_teksto = o2endendelseif t == 'nasko' or t == 'naskiĝo' then-------------------------------------------------------------------------------- naskiĝjarolocal n1 = "Dato de naskiĝo"if naskjaro ~= "" thenlocal testo = tonumber(naskjaro)local n2 = ""local n3 = ''if type(testo) == "number" then-- por la informkeston2 = datoj._dato(nasktago,naskmonato,naskjaro)-- por la enkonduka tekston3 = datoj._daton(nasktago,naskmonato,naskjaro)elsen2 = naskjaron3 = naskjaroendaldonulinion (n1, n2)-- por la enkonduka tekstoif nasktago ~= '' and naskmonato ~= '' thennasko_teksto = 'naskiĝis la ' .. n3elseif naskjaro == '?' thennasko_teksto = 'naskiĝdato nekonata'elselocal testo = tonumber(naskjaro)if type(testo) == 'number' thennasko_teksto = "naskiĝis en [[" .. naskjaro .. "]]"elsenasko_teksto = "naskiĝis " .. naskjaroendendendelselocal 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 thenn2 = n2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P569|[#]]]</span>"endlocal wd = "jes"aldonulinion (n1, n2, wd)nasko_teksto = "naskiĝis " .. datoj.Nteksto()naskodato = naskdatoendendelseif t == 'morto' then---------------------------------------------------------------------------------------- mortjarolocal m1 = "Dato de morto"if mortjaro ~= "" thenlocal testo = tonumber(mortjaro)local m2 = ""local m3 = ""if type(testo) == "number" thenm2 = datoj._dato(morttago,mortmonato,mortjaro)-- por la enkondika tekstom3 = datoj._daton(morttago,mortmonato,mortjaro)elsem2 = mortjarom3 = mortjaroendaldonulinion (m1, m2)-- por la enkondika tekstoestas = "estis"if morttago ~= '' and mortmonato ~= '' thenmorto_teksto = 'mortis la ' .. m3elseif mortjaro == '?' thenmorto_teksto = 'mortodato nekonata'elselocal testo = tonumber(mortjaro)if type(testo) == 'number' thenmorto_teksto = "mortis en [[" .. mortjaro .. "]]"elsemorto_teksto = "mortis " .. mortjaroendendendelselocal mortdato = wikidatoj.mortdato()if mortdato ~= nil then-- m2 = wikidatoj.Mkesto()m2 = datoj.Mkesto()if wikidatoj.mortdato() == "nekonata" then m2="nekonata" endlocal wdl = wikidata._pageId()         -- <span class="el_wd">[[:d:{{#invoke:Wikidata|pageId}}#P570|[+]]]</span>if wdl ~= nil thenm2 = m2 .. ' <span class="el_wd">[[:d:' .. wdl .. "#P570|[#]]]</span>"endlocal wd = "jes"aldonulinion (m1, m2, wd)morto_teksto = "mortis " .. datoj.Mteksto()mortodato = mortdatoestas = 'estis'endendelseif t == 'aĝo' then----------------------------------------------------------------------------------- aldono al la tabelolocal a1 = "Aĝo"if a ~= "" thenif va == false thena1 = "Aĝo je morto"endlocal a2 = aaldonulinion (a1, a2)endelseif t == 'nomo' then--------------------------------------------------------------------------------if antaunomo ~= "" or familinomo ~= "" or titolo ~= "" thenlocal c1 = 'Nomo'local c2local 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 ~= "" thenc1 = 'Plumnomo'endif antaunomo ~= "" thenc2 = antaunomo .. spacoelse c2 = ''endif familinomo ~= "" thenc2 = c2 .. etmajuskloj(familinomo)endif postnomo ~= "" thenc2 = c2 .. spaco .. postnomoendif antaunomo == "" and familinomo == "" thenc2 = titoloendaldonulinion(c1, c2)endelseif t == 'enkonduko' then------------------------------------------------------------------------if param ~= 'ne' thenif titolo2 ~= "" thenlocal nomo2 = titolo2teksto = "'''" .. nomo2 .. "'''"local spaco = "&#32;"-- enkrampa teksto-- stira variablo por la sekvaj informoj kaj la funkcia bloko pri naskiĝo kaj mortolocal jamkrampo = false-- transdoni prononcindikon al la rilata ŝablonoif prononco ~= "" thenlocal p = frame:expandTemplate{title = "prononco",args = {prononco,}}teksto = teksto .. spaco .. "(" .. pjamkrampo = trueendif postfamilinomo ~= "" thenlocal k = ""if jamkrampo == false thenk = "("jamkrampo = trueelsek = ", "endteksto = teksto .. spaco .. k .. postfamilinomoendif aliajlingvoj ~= "" thenlocal k = ""if jamkrampo == false thenk = "("jamkrampo = trueelsek = ", "endteksto = teksto .. spaco .. k .. aliajlingvojend-- 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 punktokomolocal k = "; "if jamkrampo == false thenk = "("jamkrampo = trueendif nasko_teksto ~= "" and morto_teksto ~= "" thend = spaco .. k .. nasko_teksto .. ", " .. morto_teksto .. vn .. ") "elseif nasko_teksto ~= "" and morto_teksto == "" thend = spaco .. k .. nasko_teksto .. vn .. ") "elseif nasko_teksto == "" and morto_teksto ~= "" thend = spaco .. k .. "naskiĝdato nekonata; " .. morto_teksto .. vn .. ") "elseif nasko_teksto == "" and morto_teksto == "" thend = spaco .. k .. "naskiĝdato nekonata" .. vn .. ") "end-- aldono al la eldonota signoĉenoteksto = teksto .. d-- fina krampo estu aranĝata, se informoj pri naskiĝo kaj morto forestas, sed estas io pri-- prononco, postfamilinomo aŭ aliajlingvojif d == "" and jamkrampo == true thenteksto = teksto .. ") "end-- aldono al la eldonota signoĉenoif antauokupo ~= "" thenteksto = teksto .. antauokupo .. spacoelseteksto = teksto .. " " .. estasend-- ŝtato kaj la rilata adjektivo per ŝablonolocal s = " [[" .. shtato .. "|"local st = shtatadjektivo(shtato)if shtato ~= "" thenteksto = teksto .. s .. st .. "]] "endif o ~= '' thenteksto = teksto .. ' ' .. oendif postokupo ~= "" thenteksto = teksto .. postokupoend-- fino "param ~= ne"end-- fino "enkonduko"endelseif t == 'kategorio' and param ~= 'ne' and ns ~= 10 then-- kategorioj ne aperu en la dokumentado de ŝablono, sed en artikoloj kaj sur testo- kaj diskutopaĝoj------------------------------------------------------------------ kategorioj pri okupojif okupoj ~= "" thenlocal n = listoj._count(",", okupoj)if n > 1 thenstrings = mw.text.split(okupoj, ",", plain)for k,v in pairs(strings) dov = ligiloj._delink(v)local okat1 = okupokategorio(shtato,v,tk)okat = okat .. okat1endelseokupoj = ligiloj._delink(okupoj)local okat1 = okupokategorio(shtato,okupoj,tk)okat = okat .. okat1endendif okupo ~="" thenokupo = ligiloj._delink(okupo)local okat1 = okupokategorio(shtato,okupo,tk)okat = okat .. okat1endif okupo2 ~="" thenokupo2 = ligiloj._delink(okupo2)local okat1 = okupokategorio(shtato,okupo2,tk)okat = okat .. okat1endif okupo3 ~="" thenokupo3 = ligiloj._delink(okupo3)local okat1 = okupokategorio(shtato,okupo3,tk)okat = okat .. okat1end-- Kategorioj pri okupoj el Vikidatumoj, se nenio alia ĉeestasif okupoj == "" and okupo == "" and okupo2 == "" and okupo3 == "" thenlocal wdo = wikidatoj.okupo()if wdo ~= nil thenlocal n = listoj._count(",", wdo)if n > 1 thenstrings = mw.text.split(wdo, ",", plain)for k,v in pairs(strings) dolocal okat1 = okupokategorio(shtato,v,tk)okat = okat .. okat1endelselocal okat1 = okupokategorio(shtato,wdo,tk)okat = okat .. okat1endendend-- fino de kategorioj pri okupoj-- transpreno de informoj pri la sekso de persono el vikidatumojlocal sekso = wikidatoj.sekso()if sekso ~= nil thenif sekso == "vira" thenokat = okat .. okat .. "[[" .. tk  .. "Kategorio:Viroj]]"elseif sekso == "ina" thenokat = okat .. okat .. "[[" .. tk .. "Kategorio:Virinoj]]"endend-- aldono al la eldonenda signoĉenokategorio = kategorio .. okat-- ordigo--{{DEFAULTSORT:{{ucfirst:{{#if:{{{Ordigo|}}}|{{{Ordigo}}}|{{#if:{{{Familinomo|}}}|{{{Familinomo}}}&#32;,{{{Antaŭnomo}}}|{{{Antaŭnomo}}}}}}}}}}}local ordigo = ""if ordigilo ~="" thenlocal ordigilo = mw.ustring.upper(mw.ustring.sub(ordigilo, 1, 1)) .. mw.ustring.sub(ordigilo, 2)   -- anstataŭaĵo de {{ucfirst:ordigo = ordigo .. ordigiloelseif familinomo ~= "" thenordigo = ordigo .. familinomo .. spaco .. "," .. antaunomoelseordigo = ordigo .. antaunomoendend-- ĝi okazu nur, se la koncerna variablo ne malŝaltas tionif ordigu == "ne" then-- se ne okazu ordigo laŭ iu ordigilo, forĵetu tion, por ke tio ne subite aperu kiel normala tekstoordigo = ""end-- dataj kategoriojif naskjaro ~= "" thenlocal n = vivtempo(ordigo,naskjaro,mortjaro,tk)-- aldono al la eldonenda signoĉenokategorio = kategorio .. nelseif naskodato ~= "" and mortodato ~= "" thenlocal n = vivtempo(ordigo,naskodato, mortodato, tk)kategorio = kategorio .. nelseif naskodato ~= "" and mortodato == "" thenlocal n = vivtempo(ordigo,naskodato, "", tk)kategorio = kategorio .. nelseif naskodato == "" and mortodato ~= "" thenlocal n = vivtempo(ordigo,"NEKONATA",mortodato,tk)kategorio = kategorio .. nelselocal n = wikidatoj.naskidato()if n ~= nil thenlocal n = wikidatoj.Njaro()local m = wikidatoj.Mjaro()if wikidatoj.mortdato() == "nekonata" then m="NEKONATA" endlocal k = vivtempo(ordigo,n,m,tk)--local k = ""-- aldono al la eldonenda signoĉenokategorio = kategorio .. kelsekategorio = kategorio .. frame:callParserFunction{ name = "DEFAULTSORT", args = ordigo }endend-- aldonu antaŭ tioendendendend-- fina parto -- nestado de interna ŝablonoif 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()endif args['subŝablono'] ~= "jes" and args['Subŝablono'] ~= "jes" thenif 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 eraronlocal 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","","","","jes")tabelo:newline():wikitext(t):newline():done()end-- fino de la tabelor = tostring(tabelo) .. teksto .. kategorioreturn rendreturn p