Module:User:Xoristzatziki/etym
Documentation for this module may be created at Module:User:Xoristzatziki/etym/τεκμηρίωση
--συναρτήσεις:
----etymel
--για τα πρότυπα: αρχ, λενδ, μσν
----etymypok
--για το πρότυπο: υποκοριστικό του
--και τα συναφή (υποκ άκι κλπ.)
----etymother
--για το πρότυπο: ετυμ
local _module = {}
----------------------------------------
local languages = mw.loadData("Module:Languages")
errorhere = function(errstring)
return '<font color=red>' .. errstring .. '</font>[[Κατηγορία:Σελίδες με σφάλματα στο πρότυπο]]'
end
--για τα πρότυπα: αρχ, λενδ, μσν
--
_module.etymel = function (frame)
local args = frame.args
local output =''
--πρόσθεσε στις παραμέτρους args το pagename
--πρόβλημα αν κάποιος θέλει να στείλει τέτοια παράμετρο και να τη χρησιμοποιήσει
--αλλά "κακό του κεφαλιού του"...
--args['pagename'] = 'τεστ εδω'
args['pagename'] = mw.title.getCurrentTitle().text
-- διάβασε όλες τις παραμέτρους που στέλνει το λήμμα στο πρότυπο
-- είτε τις στέλνει εδώ το πρότυπο είτε όχι
local pargs = frame:getParent().args
--ποια ενέργεια να κάνει, δηλαδή ποιο πρότυπο είναι
--αρχ ή μσν ή λενδ ή μτγν ή ...
--η μόνη παράμετρος που χρειάζεται να στέλνει το πρότυπο
--και η μόνη, από αυτές που στελνει το πρότυπο, που χρησιμοποιείται
local argaction = args[1]
--αν η πρώτη παράμετρος είναι λενδ
if argaction == 'λενδ' then
output = 'λόγιο ενδογενές δάνειο:'
--μπορούν να μπουν κι' άλλες παράμετροι όπως η γλώσσα του ετύμου, το ίδιο το έτυμο κλπ.
--αν η πρώτη παράμετρος είναι αρχ
elseif argaction == 'αρχ' then
output = arxaio(args, pargs, 'grc')
--αν η πρώτη παράμετρος είναι μσν
elseif argaction == 'μσν' then
output = arxaio(args, pargs, 'gkm')
--αν δημιουργηθούν και άλλες περίοδοι μπορεί να επεκταθεί εδώ
else
output = errorhere('δεν δόθηκε η πρώτη παράμετρος') --.. args[1] .. '#' .. pargs[1] .. '#' .. firstarg
end
return output
end
--εσωτερική συνάρτηση, που δεν την βλέπουν οι "απέξω"
arxaio = function ( args, pargs, periodos)
--κάνει αντικατάσταση εδώ;(periodos)
mw.log(periodos)
output = '\'\'' .. languages[periodos].frm .. '\'\''
--αν η σελίδα έχει στείλει κάποια παράμετρο
--στο πρότυπο
if pargs[1] ~= nil then
if pargs[1] == "" then
--αν είναι κενή
--παραπομπή στην ίδια σελίδα
output = output .. ' [[' .. args['pagename'] .. '#' .. languages[periodos].link .. '|' .. args['pagename'] .. ']]'
else
--αν δεν είναι κενή
--παραπομπή στη σελίδα της λέξης
output = output .. ' [[' .. pargs[1] .. '#' .. languages[periodos].link .. '|' .. pargs[1] .. ']]'
end
else
--δεν έχει στείλει παράμετρο
--μην κάνεις τίποτε
end
return output
end
--για χρήση στο:
--Πρότυπο:ετυμ
--που θα περιέχει μόνο το:
--{{#invoke:etym|etymother}}
_module.etymother = function (frame)
local args = frame.args
local pargs = frame:getParent().args
local output
local fromlang = pargs[1] or ''
local lemmalang = pargs[2] or ''
local fromword = pargs[3] or ''
if lemmalang == 'el' then
--είναι ελληνική λέξη άρα θέλει "δάνειο"
return errorhere('η παράμετρος δεν υποστηρίζεται ακόμη')
end
if fromlang == '' then
return errorhere('Σφάλμα! Δεν δόθηκε η πρώτη παράμετρος')
end
if lemmalang == '' then
return errorhere( 'Σφάλμα! Δεν δόθηκε η δεύτερη παράμετρος' )
end
output = "''[[w:" .. languages[fromlang].wiki .. "|" .. languages[fromlang].frm .. "]]'', "
if fromword ~= nil and fromword ~= '' then
output = output .. "[[" .. fromword .. "#" .. languages[fromlang].link .. "|" .. fromword .. "]]"
end
output = output .. "[[Κατηγορία:" .. languages[lemmalang].words .. " " .. languages[fromlang].from .. "]]"
return frame:preprocess(output)
end
_module.periex = function(frame)
local parentargs = frame:getParent().args
PAGENAME = mw.title.getCurrentTitle().text
NAMESPACE = mw.title.getCurrentTitle().nsText
allogramma = parentargs[2] or ''
if allogramma == '' then allogramma = parentargs[1] end
local output = '[{{SERVER}}{{localurl:' .. NAMESPACE .. ':' .. PAGENAME .. '|from=' .. parentargs[1] .. '}} ' .. allogramma .. ']'
return frame:preprocess(output)
end
_module.periex2 = function(frame)
local parentargs = frame:getParent().args
--PAGENAME = mw.title.getCurrentTitle().text
--NAMESPACE = mw.title.getCurrentTitle().nsText
allogramma = parentargs[2] or ''
if allogramma == '' then allogramma = parentargs[1] end
local lquery = 'from=' .. parentargs[1]
local output = '['.. mw.title.getCurrentTitle():fullUrl( lquery) .. ' ' .. allogramma .. ']'
return frame:preprocess(output)
end
--δοκιμές στην κονσόλα:
--από το http://wikimedia.7.x6.nabble.com/Help-with-Scribunto-Lua-modules-td5006578.html
--γράφουμε μία μία τις γραμμές (χωρίς φυσικά τις 2 πρώτες παύλες...) και πατάμε enter κάθε φορά
--(δοκιμή για {{#invoke:User:Xoristzatziki/etym|etymel|αρχ}} στο πρότυπο αρχ)
--parentFrame = mw.getCurrentFrame():newChild{ args = { '' } }
--frame = parentFrame:newChild{ args = { 'αρχ' } }
--=p.etymel(frame)
--(δοκιμή για {{#invoke:User:Xoristzatziki/etym|etymel|αρχ}} στο πρότυπο αρχ
-- και παράμετρο 'κάτι' στο λήμμα, δηλαδή στο λήμμα να έχει {{αρχ|κάτι}})
--parentFrame = mw.getCurrentFrame():newChild{ args = { 'κάτι' } }
--frame = parentFrame:newChild{ args = { 'αρχ' } }
--=p.etymel(frame)
--(δοκιμή για {{#invoke:User:Xoristzatziki/etym|etymel|λενδ}} στο πρότυπο λενδ)
--parentFrame = mw.getCurrentFrame():newChild{ args = { '' } }
--frame = parentFrame:newChild{ args = { 'λενδ' } }
--=p.etymel(frame)
return _module