Szerkesztő:Pepo41/Homokozó/Modul:MCitWeb

A Wikipédiából, a szabad enciklopédiából

--Version 2020_06_19 require 'Modul:No globals' local nyksz = require('Modul:Nyelvkódszűrő') local ds = require('Modul:Dátumszűrés') local getArgs = require('Modul:Arguments').getArgs local args = {} local lang = mw.getContentLanguage()


local hibavan = false

-- ou hibakeresésre szolgáló globális változó, ami tartalmazza az analízisre -- szolgáló üzeneteket, az alábbi pop() függvény gyűjtögeti a tartalmát local popmax = 500 -- a tesztüzenetek számának maximuma local oumarad = popmax local ou = {}


local function pop(...) -- idézőjeles rész és bővítmények az ou számára

                          -- memóriatúllépést okozhat, csak teszteléshez

local list = {...} oumarad = oumarad - 1 -- előre csökkentjük, így mindig a maradék lehetséges pop hívások számát mutatja if oumarad == 0 then return end -- hogy ne legyen memóriatúllépés for _, var in pairs(list) do table.insert(ou,tostring(var)..'\n') mw.log(ou) end

end



-- Egy hibaüzenet kezelése. -- Igazra állítja a hibavan változót és visszatér a megjeleníthető hibaüzenettel -- @argument about: A hibaüzenet (string) local function error(about)

       hibavan = true  
       local r = about
   if type( about ) == 'string' then
       if #about == 0 then
           r = 'Lua-hiba'
       end
   else
       r = tostring( about )
   end
   return '' .. r .. ', '

end


-- URL-ben nem használható paraméterek (szóköz, macskaköröm stb.) kódolása local function encodeURL(url)

       if type(url) ~= 'string' then
               return url
       end
       url = string.gsub(url, '%s','%%20')
       url = string.gsub(url, '"', '%%22')
       url = string.gsub(url, "'", '%%27')
       url = string.gsub(url, '<', '%%3c')
       url = string.gsub(url, '>', '%%3e')
       url = string.gsub(url, '%[','%%5b')
       url = string.gsub(url, '%]','%%5d')
       url = string.gsub(url, '{', '%%7b')
       url = string.gsub(url, '|', '%%7c')
       url = string.gsub(url, '}', '%%7d')
       return url

end

local function isISSN(str)

       local v, chsum
       str = string.gsub(str, '–' , '-') -- nagykötőjelből kicsi lesz
       str = string.gsub(str, '—' , '-') -- hetvenkvirtesből kicsi lesz
       local i, j = string.find(str, '-')
       if i == j and i == 5 then -- rendben, az ötödik helyen van a kötőjel
               v = string.sub(str,1,4) .. string.sub(str,6,8)
               chd = string.sub (str,-1,-1)
       else
               return false
       end
       if chd == 'X' or tonumber(chd) then
               if chd == 'X' then
                       chnum = 10
               else
                       chnum = string.byte(chd, 1) - string.byte('0', 1)
               end 
       else
               return false
       end 
       if tonumber(v) then 
               chsum = 0
               for j = 8, 2, -1 do
                       local elsbyte = string.byte(v, (9 - j))
                       chsum = chsum + (elsbyte - string.byte('0', 1)) * j
               end
       else
               return false -- nem számjegyek
       end
       local chnumdo = 11 - (chsum % 11)    
       if chnumdo == chnum then
               return true
       else
               return false 
       end

end

--CitWeb --[[

   --Alternatív paraméterekkel  ?weblap? nincs elsődleges cím,  hibás dátum,   ?weblap? nincs elsődleges cím,   

--]]

-- Egy sablonparaméter lekérdezése. -- Az üres paramétereket nilként adja át. -- A sablonhívásban fel kell sorolni a paraméterneveket: -- pl. getArg('aut', 'szerző', 'author') local function getArg(...)

       for _, v in ipairs{...} do
               if args[v] and args[v] ~=  then
                       return args[v]
               end
       end
       return nil

end

local url, szerzo, szerzo2, szerzo3, szerzo4, szerzo5, szerzo6, szerzo7, szerzo8, szerzo9 local cim, alcim, forditas_cime, datum, publication_date, outdatum, nyelv, lan, english local ass,weblap,red,loc, publication_place, ev, ho,nap, oldal, deadurl, form,size,formsiz,aurl,archd,doi, isbn, issn, accd,misc,quote local szerzolink,szerzolink2,szerzolink3,szerzolink4,szerzolink5,szerzolink6,szerzolink7,szerzolink8,szerzolink9 local month, year, origyear, at, template_doc_demo, _format, tipus, sorozat, nopp -- local id, arxiv, _asin, _asin_tld, bibcode, doi_brokendate, jfm, jstor -- local lccn, mr, oclc, ol, osti, pmc, embargo, pmid, rfc, ssrn, zbl local layurl, laysource, laydate, author_mask, author_name_separator, author_separator local display_authors, display_editors, lastauthoramp, postscript, separator

local function _nilez()

       szerzo, szerzo2, szerzo3, szerzo4, szerzo5 = nil
       szerzo6, szerzo7, szerzo8, szerzo9, cim, alcim = nil
       ass, weblap, lan, loc, red, ev, datum, accd, form, size, aurl, archd, misc = nil

end

local function angol_parameterek()

       local szerzo_csaladneve, szerzo2_csaladneve, szerzo3_csaladneve, szerzo4_csaladneve
       local szerzo5_csaladneve, szerzo6_csaladneve, szerzo7_csaladneve, szerzo8_csaladneve, szerzo9_csaladneve
       local szerzo_keresztneve, szerzo2_keresztneve, szerzo3_keresztneve, szerzo4_keresztneve
       local szerzo5_keresztneve, szerzo6_keresztneve, szerzo7_keresztneve, szerzo8_keresztneve, szerzo9_keresztneve
       local szerkeszto_csaladneve, szerkeszto2_csaladneve, szerkeszto3_csaladneve, szerkeszto4_csaladneve
       local szerkeszto_keresztneve, szerkeszto2_keresztneve, szerkeszto3_keresztneve, szerkeszto4_keresztneve
       cim = getArg('title')
       datum = getArg('date')
       accd = getArg('accessdate')
       aurl = encodeURL(getArg('archiveurl'))
       archd = getArg('archivedate')
       weblap = getArg('website', 'work')
       red = getArg('publisher')
       szerzo_csaladneve  = getArg('last', 'author', 'last1', 'author1', 'authors')
       szerzo2_csaladneve = getArg('last2', 'author2')
       szerzo3_csaladneve = getArg('last3', 'author3')
       szerzo4_csaladneve = getArg('last4', 'author4')
       szerzo5_csaladneve = getArg('last5', 'author5')
       szerzo6_csaladneve = getArg('last6', 'author6')
       szerzo7_csaladneve = getArg('last7', 'author7')
       szerzo8_csaladneve = getArg('last8', 'author8')
       szerzo9_csaladneve = getArg('last9', 'author9')
   szerzo_keresztneve  = getArg('first', 'first1')
       szerzo2_keresztneve = getArg('first2')
       szerzo3_keresztneve = getArg('first3')
       szerzo4_keresztneve = getArg('first4')
       szerzo5_keresztneve = getArg('first5')
       szerzo6_keresztneve = getArg('first6')
       szerzo7_keresztneve = getArg('first7')
       szerzo8_keresztneve = getArg('first8')
       szerzo9_keresztneve = getArg('first9')
       
       if szerzo_csaladneve then
               szerzo = szerzo_csaladneve
               if szerzo_keresztneve then
                       szerzo = szerzo .. ', ' .. szerzo_keresztneve
               end
       end
   if szerzo2_csaladneve then
               szerzo2 = szerzo2_csaladneve
               if szerzo2_keresztneve then
                       szerzo2 = szerzo2 .. ', ' .. szerzo2_keresztneve
               end
       end
   if szerzo3_csaladneve then
               szerzo3 = szerzo3_csaladneve
               if szerzo3_keresztneve then
                       szerzo3 = szerzo3 .. ', ' .. szerzo3_keresztneve
               end
       end
   if szerzo4_csaladneve then
               szerzo4 = szerzo4_csaladneve
               if szerzo4_keresztneve then
                       szerzo4 = szerzo4 .. ', ' .. szerzo4_keresztneve
               end
       end
   if szerzo5_csaladneve then
               szerzo5 = szerzo5_csaladneve
               if szerzo5_keresztneve then
                       szerzo5 = szerzo5 .. ', ' .. szerzo5_keresztneve
               end
       end
   if szerzo6_csaladneve then
               szerzo6 = szerzo6_csaladneve
               if szerzo6_keresztneve then
                       szerzo6 = szerzo6 .. ', ' .. szerzo6_keresztneve
               end
       end
   if szerzo7_csaladneve then
               szerzo7 = szerzo7_csaladneve
               if szerzo7_keresztneve then
                       szerzo7 = szerzo7 .. ', ' .. szerzo7_keresztneve
               end
       end
   if szerzo8_csaladneve then
               szerzo8 = szerzo8_csaladneve
               if szerzo8_keresztneve then
                       szerzo8 = szerzo8 .. ', ' .. szerzo8_keresztneve
               end
       end
   if szerzo9_csaladneve then
               szerzo9 = szerzo9_csaladneve
               if szerzo9_keresztneve then
                       szerzo9 = szerzo9 .. ', ' .. szerzo9_keresztneve
               end
       end
       
       szerzolink = getArg('authorlink', 'authorlink1', 'author-link1', 'author1-link', 'author1link')
       if szerzolink then szerzo = '' .. szerzolink .. '' end
       szerzolink2 = getArg('authorlink2', 'author2-link')
       if szerzolink2 then szerzo2 = '' .. szerzolink2 .. '' end
       szerzolink3 = getArg('authorlink3', 'author3-link')
       if szerzolink3 then szerzo3 = '' .. szerzolink3 .. '' end
       szerzolink4 = getArg('authorlink4', 'author4-link')
       if szerzolink4 then szerzo4 = '' .. szerzolink4 .. '' end
       szerzolink5 = getArg('authorlink5', 'author5-link')
       if szerzolink5 then szerzo5 = '' .. szerzolink5 .. '' end
       szerzolink6 = getArg('authorlink6', 'author6-link')
       if szerzolink6 then szerzo6 = '' .. szerzolink6 .. '' end
       szerzolink7 = getArg('authorlink7', 'author7-link')
       if szerzolink7 then szerzo7 = '' .. szerzolink7 .. '' end
       szerzolink8 = getArg('authorlink8', 'author8-link')
       if szerzolink8 then szerzo8 = '' .. szerzolink8 .. '' end
       szerzolink9 = getArg('authorlink9', 'author9-link')
       if szerzolink9 then szerzo9 = '' .. szerzolink9 .. '' end
       datum = getArg('date', 'year')
       origyear = getArg('origyear')
       ass = getArg('others')
       lan = getArg('language')
       cim = getArg('title')
       forditas_cime = getArg('trans_title')
       loc = getArg('place','location')
       red = getArg('publisher')
       publication_date = getArg('publication-date')
       if publication_date then 
               if select(2, ds.datumszuro(publication_date)) == select(2, ds.datumszuro(datum)) then
                       publication_date = nil 
               else
                       datum = publication_date
               end
       end -- csak akkor tekintjük létezőnek, ha különbözik a dátumtól         
       publication_place = getArg('publication-place')
       szerkeszto_csaladneve = getArg('editor-last','editor1-last', 'editor', 'editors')
       szerkeszto_keresztneve = getArg('editor-first', 'editor1-first')
       szerkeszto2_csaladneve = getArg('editor2-last')
       szerkeszto2_keresztneve = getArg('editor2-first')
       szerkeszto3_csaladneve = getArg('editor3-last')
       szerkeszto3_keresztneve = getArg('editor3-first')
       szerkeszto4_csaladneve = getArg('editor4-last')
       szerkeszto4_keresztneve = getArg('editor4-first')
       local szerkesztok = {}
       if szerkeszto_csaladneve then
               szerkeszto = szerkeszto_csaladneve
               if szerkeszto_keresztneve then
                       szerkeszto = szerkeszto .. ', ' .. szerkeszto_keresztneve
               end
               table.insert(szerkesztok, szerkeszto)
       end
       if szerkeszto2_csaladneve then
               szerkeszto2 = szerkeszto2_csaladneve
               if szerkeszto2_keresztneve then
                       szerkeszto2 = szerkeszto2 .. ', ' .. szerkeszto2_keresztneve
               end
               table.insert(szerkesztok, szerkeszto2)
       end
       if szerkeszto3_csaladneve then
               szerkeszto3 = szerkeszto3_csaladneve
               if szerkeszto3_keresztneve then
                       szerkeszto3 = szerkeszto3 .. ', ' .. szerkeszto3_keresztneve
               end
               table.insert(szerkesztok, szerkeszto3)
       end
       if szerkeszto4_csaladneve then
               szerkeszto4 = szerkeszto4_csaladneve
               if szerkeszto4_keresztneve then
                       szerkeszto4 = szerkeszto4 .. ', ' .. szerkeszto4_keresztneve
               end
               table.insert(szerkesztok, szerkeszto4)
       end
       if #szerkesztok > 0 then
               szerkeszto = 'szerk.: ' .. table.concat(szerkesztok, ' – ')
       end
       
       oldal = getArg('page', 'pages')
       nopp = getArg('nopp')
       if not oldal then
               at = getArg('at')
       end
       deadurl = getArg(' deadurl')
       template_doc_demo = (getArg('template doc demo') == 'true')
       _format = getArg('format')
       if _format then
               _format= '( '.._format..') '
       end
       isbn = getArg('isbn')
       issn = getArg('issn')
       
       --Quote
       quote = getArg('quote')
       doi = getArg('doi')
       tipus = getArg('type')
       sorozat = getArg('series', 'version')
       if sorozat then
               sorozat = 'Sorozat: ' .. sorozat .. ' '
       else
               sorozat = getArg('agency')
       end
       
       --[[ nem használja semmi
       id = getArg('id')   
       if not id then  
               arxiv = getArg('arxiv')
               _asin = getArg('asin')
               _asin_tld = getArg('asin-tld')
               
               bibcode = getArg('bibcode')
               doi_brokendate = getArg('doi_brokendate')
               jfm = getArg('jfm')
               jstor = getArg('jstor')
               lccn = getArg('lccn') 
               mr = getArg('mr')
               oclc = getArg('oclc')
               ol = getArg('ol')
               osti = getArg('osti')
               pmc = getArg('pmc')
               embargo = getArg('embargo')
               pmid = getArg('pmid')
               rfc = getArg('rfc')
               ssrn = getArg('ssrn')
               zbl = getArg('zbl')
       end
       --]]
        
       --Laysummary
       layurl = getArg('layurl')
       laysource = getArg('laysource')
       laydate = getArg('laydate')
       
       --Display options
       author_mask = getArg('author-mask')
       author_name_separator = getArg('author-name-separator')
       author_separator = getArg('author-separator')
       display_authors = getArg('display-authors')
       display_editors = getArg('display-editors')
       lastauthoramp = getArg('lastauthoramp')
       postscript = getArg('postscript')
       separator = getArg('separator')

end

local function magyar_e()

       local function cleanArg(...)
               local arg = getArg(...)
               if arg then
                       return (string.gsub(arg, '[%[%]]', ))
               else
                       return nil
               end
       end
       url = getArg('url')
       szerzo  = getArg('szerző',  'aut' )
       szerzo2 = getArg('szerző2', 'aut2')
       szerzo3 = getArg('szerző3', 'aut3')
       szerzo4 = getArg('szerző4', 'aut4')
       szerzo5 = getArg('szerző5', 'aut5')
       szerzo6 = getArg('szerző6', 'aut6')
       szerzo7 = getArg('szerző7', 'aut7')
       szerzo8 = getArg('szerző8', 'aut8')
       szerzo9 = getArg('szerző9', 'aut9')
       cim = getArg('cím', 'tit')
       alcim = getArg('alcím', 'subtit')
       ass = getArg('ass', 'közreműködők')
       weblap = getArg('weblap', 'work')
       lan = getArg('lan', 'nyelvkód')
       loc = getArg('loc', 'hely')
       red = getArg('red', 'kiadó')
       ev = cleanArg('év', 'ann')
       datum = cleanArg('dátum', 'date')
       oldal = getArg('oldal', 'pag')
       accd = cleanArg('elér', 'accd')
       form = getArg('form', 'formátum')
       size = getArg('siz', 'méret')
       aurl = getArg('aurl', 'archívurl')
       archd = cleanArg('archd', 'archívdátum')
       doi = getArg('doi') 
       misc = getArg('egyéb', 'misc')
       quote = getArg('quote', 'idézet')
       local x = szerzo or szerzo2 or szerzo3 or szerzo4 or szerzo5 or szerzo6
               or szerzo7 or szerzo8 or szerzo9 or cim or alcim or ass or lan or loc
               or red or ev or accd or form or size or aurl or archd  or misc
       return (x ~= nil)

end

local function _citweb()

       _nilez()
       local hiba_jelzes = nil
       local igen_magyar = magyar_e()

       if not igen_magyar then
               angol_parameterek()
       end


       hiba_jelzes = 
       -- a szerzőket előre lépteti, társszerzőből szerzőt csinál stb.
       local szerzok = {}
       if szerzo then
               table.insert(szerzok, szerzo)
       end
       if szerzo2 then
               table.insert(szerzok, szerzo2)
       end
       if szerzo3 then
               table.insert(szerzok, szerzo3)
       end
       if szerzo4 then
               table.insert(szerzok, szerzo4)
       end
       if szerzo5 then
               table.insert(szerzok, szerzo5)
       end
       if szerzo6 then
               table.insert(szerzok, szerzo6)
       end
       if szerzo7 then
               table.insert(szerzok, szerzo7)
       end
       if szerzo8 then
               table.insert(szerzok, szerzo8)
       end
       if szerzo9 then
               table.insert(szerzok, szerzo9)
       end
       if #szerzok > 0 then
               szerzo = table.concat(szerzok, ' – ') .. ': '
       else
               szerzo = nil
       end
       
       --cím és alcím
       local terminator
       if cim then
               cim = mw.text.trim(lang:ucfirst(cim))
       else
               hiba_jelzes = hiba_jelzes .. error('nincs elsődleges cím')
       end
       if cim and alcim then
               alcim = lang:ucfirst(alcim)
               if string.sub(cim, -1, -1) ~= ':' then
                       cim = cim .. ': ' .. alcim
               else
                       cim = cim .. ' ' .. alcim
               end
       end
       if cim then
               terminator = string.sub(cim, -1, -1)
               if terminator ~= '?' and terminator ~= '!' and terminator ~= ',' and terminator ~= '.' and terminator ~= '\166' then
                       cim = cim .. '.'
               end   
               
               -- SZÜKSÉGES CSERÉK:
               --newline       [            ]       |    Ezek kellenek, mert az URL ráhúzásakor bezavarnak
               --space    [        ]   |
               if forditas_cime then
                       cim = cim .. ' [' .. forditas_cime .. '] '
               end
               cim = string.gsub(cim, '\n', ' ')
               cim = string.gsub(cim, '%[', '[')  
               cim = string.gsub(cim, '%]', ']')
               cim = string.gsub(cim, '%|', '|')
       end
       
       -- asszisztencia
       if ass then
               ass = lang:ucfirst(ass) .. ' '
       end
       
       url = getArg('url'); --pop('url', url)
       url = encodeURL(url)
       
       -- weblap
       -- pop('weblap', weblap or 'nincs eddig') 
       local function weboldalkereso(rest)

local wl,j,i --pop("maradek="..rest)

                       j, i = string.find(rest, '/')
                       if i then  
                               wl = string.sub(rest, 1, i-1)
                               --pop("weblap="..wl)  
                       else
                               wl = rest
                       end

return wl

       end	
       
       if not(weblap) then -- ha nincs megadva
          if url then 
               local maradek, i,j
               j, i = string.find(url, '//')
               --pop("j és i=",j,i)
               if i then
                       maradek = string.sub(url, i+1, -1)
                       --pop("maradek1=",maradek)
                       weblap = weboldalkereso (maradek)
                                       else 
                                           i = nil
                                               j, i = string.find(url, ':')
                                               if i then 
                                               
                                                       maradek = string.sub(url, i+1, -1) -- kett0spont ös a k0vetü / utäni rösz egösze
                                                       maradek = string.gsub(maradek, "^/",)
                                                       --pop("maradek : utän=",maradek)
                                                       weblap = weboldalkereso (maradek)
                                               else    
                                                       error ("helytelen url szerkezet")
                                                       --pop("helytelen url szerkezet")
                                                       weblap = "?weblap?"
                                                       --pop("weblap=    ",weblap)
                                               end --if i belsü
                                       end     -- if i kßlsü
          else         
          	        error ("nincs url")
                   weblap = "?weblap?"    
                   --pop("weblap nem volt=" ,weblap)
          end  -- if url             
        --  pop ("weblap a végén=    ",weblap)
       end  -- if nincs weblap megadva      
    

   -- nyelv kezelése


if lan then

   local   nyelvek,hibak,nyomok = nil
   nyelvek,hibak,nyomok = nyksz.nyelvszuro(lan)
      if hibak then
         pop("kapott hibalista=", nyomok)
         hiba_jelzes = hiba_jelzes .. ' ' ..error(hibak ..'hibás nyelvkód') 
         
      end 
      if nyelvek then
         pop("kapott nyelvlista=", nyelvek)
         lan = nyelvek
      end          
      if nyomok then
         pop("nyomkövetés a nyelvszűrésen belül=", nyomok)
      end   
      if not(weblap) then
         hiba_jelzes = hiba_jelzes .. ' ' .. error('nyelv weblap nélkül')          
      end         
      if cim == nil then
         hiba_jelzes = hiba_jelzes .. ' ' .. error('nyelv cím nélkül')
      end
       

end --if lan

       -- loc, red
       local kiadas = loc
       if red then
               kiadas = (kiadas and kiadas .. ': ' or ) .. red
       end
       if kiadas and nyelv then
               nyelv = nyelv .. '.'
       elseif kiadas and weblap then
               weblap = weblap .. '.'
       end
       
       -- form és size
       
       local c = 
       if form then
               c = form
       end
       if size then
               if string.sub(size, -5, -1) == 'oldal' then
                       size = string.sub(size, 1, -6)
               end
               if c ~=  then
                       c = c .. ': ' .. size .. ' oldal '
               else
                       c = size .. ' oldal '
               end
       end
       if c ~=  then
               formsiz = '(' .. c .. ')'
       end
       
       if ev and not datum then
               datum = ev -- ha nincs dátum, akkor az év legyen a dátum
       end             
       if datum then -- ha van dátum (most már vagy a dátum, vagy ennek hiányában az év)
               local nyom =
               local nyom, dou = ds.datumszuro(datum)
               if dou then
                       outdatum =  '(' .. ds.honapnevesdate(dou) .. ') '
               else
                       hiba_jelzes = hiba_jelzes .. ' ' .. error('hibás dátum')
               end
       end
       
       -- oldaladatok
       if oldal then
               oldal = string.gsub(oldal, '-' ,  '–') -- kiskötőjelből nagy
               oldal = string.gsub(oldal, '—' ,  '–') -- hetvenkvirtesből nagy
               oldal = string.gsub(oldal, '%.,', ',') -- pontot követő veszőből vesszőt
               oldal = string.gsub(oldal, '%.',   ) -- pontból üreset
               oldal = string.gsub(oldal, ',',  '.,') -- végül vesszőből ponot követő vesszőt
               if nopp == 'y' then
                       oldal = ' ' .. oldal
               else
                       oldal = ' ' .. oldal .. '. o. '
               end
       end
       
       -- Archiválva
       aurl = encodeURL(aurl)
       if archd then -- ha van dátum
               local outarchd, dou
               dou = select(2, ds.datumszuro(archd))
               if dou then
                       outarchd = ds.honapnevesdate(dou)
                       if aurl then 
                               archd = '[' .. aurl .. ' arch]'
                       else
                               hiba_jelzes  = hiba_jelzes .. ' ' .. error('archívdátum van, de archívurl nélkül')
                       end
               else
                       hiba_jelzes  = hiba_jelzes .. ' ' .. error('hibás archívdátum')
               end  -- if dou                  
       end     -- if archd
       
       -- elérés
       if not accd then
               accd = getArg('accessdate')
       end
       if accd then -- ha van elérés
               local outaccd, dou
               dou = select(2, ds.datumszuro(accd))
               if dou then
                       outaccd = ds.honapnevesdate(dou)
                       accd = '(Hozzáférés: ' .. outaccd .. ')'
               else
                       hiba_jelzes = hiba_jelzes .. ' ' .. error('hibás elérés')
               end  -- if dou                  
       end     -- if accd
       if issn then 
               if isISSN (issn) then
                       issn = 'ISSN'
               else
                       hiba_jelzes = hiba_jelzes .. ' ' .. error('hibás ISSN: ') .. issn
               end    
       else
               issn =  -- ha nem létezik, legyen üres
       end
       isbn = getArg('isbn'); pop('isbn=', isbn)
       if isbn then
               local isbn_helyes, hibas
               isbn_helyes, isbn, hibas = require('Modul:CheckISBN').isISBN(isbn, true) -- linkelve az ISBN-ek
               if not isbn_helyes then
                       hiba_jelzes = hiba_jelzes .. ' ' .. error('hibás ISBN: ') .. isbn
               end
       end
       
       if doi then 
               local doicontrol
               doicontrol = string.sub(doi,1,2)
               if doicontrol ~= '10' then
                       hiba_jelzes = hiba_jelzes .. ' ' .. error('doi kötelezően 10-zel kezdődik!')
               else
                       doi = '.. doi .. ' doi'
               end
       end
       
       -- misc lekezelése
       if misc then
               misc = misc .. '.'
       end
       
       -- URL lekezelése
       if url and cim then
               url = encodeURL(url)
               if deadurl and deadurl ~= 'no' and aurl then
                       cim = '[' .. aurl .. ' ' .. cim .. ']'
               else
                       cim = '[' .. url .. ' ' .. cim .. ']'
               end
       end
       
       --idézet
       if quote then
               quote = " „" .. quote .. "”"
       end
       
       -- eredmény összeállítása
       local s = {}
       local function tabla(x)
               if x then
                       table.insert(s, x)
               end
       end
       
       if igen_magyar then
               tabla(szerzo)
               tabla(cim)
               tabla(ass)
               tabla(weblap)
               tabla(lan)
               tabla(kiadas)
               tabla(outdatum)
               tabla(oldal)
               tabla(accd)
               tabla(formsiz)
               tabla(archd)
               tabla(doi)
               tabla(misc)
               tabla(quote)
               tabla(isbn)
               if ou and #ou > 0 then tabla( table.concat(ou,'{}')) end --nyomkövetésnél kell
       else
               tabla(szerzo)
               tabla(cim)
               tabla(_format)
               tabla(lan)
               if tipus then table.insert(s, ' (' .. tipus .. ')') end
               tabla(ass)
               tabla(weblap)
               tabla(kiadas)
               tabla(outdatum)
               if origyear then table.insert(s, ' (' .. origyear .. ')') end
               tabla(oldal)
               tabla(at)
               tabla(sorozat)
               tabla(accd)
               tabla(formsiz)
               tabla(archd)
               tabla(doi)
               tabla(isbn)
               tabla(issn)
       end     if ou and #ou > 0 then tabla( table.concat(ou,'{}')) end --nyomkövetésnél kell
       tabla(ou)
       if hibavan and (igen_magyar or not template_doc_demo) then
               table.insert(s, hiba_jelzes .. )
       end
       return mw.text.trim(table.concat(s, ' '))

end --citweb

local function run(frame)

       args = getArgs(frame)
       return _citweb()

end

return {

       run = run -- az egyetlen átadandó függvény

}