Module:έλεγχοι
Δοκιμαστικό. Αν πάτε στην επεξεργασία και γράψετε στην κονσόλα (στο κάτω μέρος)
=p['test']('go')
και πατήσετε enter θα επιστρέψει true γιατί στο λήμμα go υπάρχει μία τουλάχιστον ενότητα «γνωστής γλώσσας» (δηλαδή που υπάρχει στο Module:Languages)
Αντίστοιχα μπορείτε να ελέγξετε οποιοδήποτε λήμμα. π.χ. για το τάδε η εντολή είναι:
=p['test']('τάδε')
export = {}
local Lf = {}
local Ld = {}
Ld['γλώσσες'] = mw.loadData("Module:Languages")
--από en Module:User:Wikitiki89/split
Lf['χωρισμός σε γραμμές'] = function(theUtext)
lc = {}
lc['γραμμές'] = {}
lc['μήκος'] = mw.ustring.len(theUtext)
lc['αρχή'] = 1
while true do
lc['από'], lc['μέχρι'] = mw.ustring.find(theUtext, '\n', lc['αρχή'])
if lc['από'] == nil then
lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'])
break
end
if lc['μέχρι'] < lc['αρχή'] then
error("Infinite split (position: " .. lc['αρχή'] .. ")")
end
lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'], lc['από'])
lc['αρχή'] = lc['μέχρι'] + 1
end
return lc['γραμμές']
end
export['test'] = function(lemmatitle)
lc = {}
lc['το λήμμα'] = mw.title.new(lemmatitle)
lc['το κείμενο'] =lc['το λήμμα']:getContent()
lc['γραμμές'] = Lf['χωρισμός σε γραμμές'](lc['το κείμενο'])
--mw.log(type(lc['γραμμές']))
if lc['γραμμές'] == nil then
return 'ήταν άδειο...'
end
lc['αποτέλεσμα'] = ''
if type(lc['γραμμές']) == 'table' then
lc['αποτέλεσμα'] = has_one_known_language(lc['γραμμές'])
else
lc['αποτέλεσμα'] = "Σφάλμα 1"
end
return lc['αποτέλεσμα']
end
has_one_known_language = function(aUstring)
for k, myline in pairs(lc['γραμμές']) do
match, catch = mw.ustring.match(myline, "^(=+){{%-(.*)%-}}%1%s*")
if catch ~= nil then
--mw.log(type(match))
--mw.log("#" .. myline .. "#")
if Ld['γλώσσες'][catch] ~= nil then
--mw.log(type(match))
--mw.log(Ld['γλώσσες'][catch]['name'])
--return tostring(true)
return true
end
end
end
--return tostring(false)
return false
end
return export