Module:ΑδελφικάΕγχειρήματα
Documentation for this module may be created at Module:ΑδελφικάΕγχειρήματα/τεκμηρίωση
--Module:ΑδελφικάΕγχειρήματα
--Να μπουν σε [[Κατηγορία:Πρότυπα για Βικιεγχειρήματα]]
--η πρώτη παράμετρος (αν υπάρχει) θα είναι η ονομασία της σελίδας εκεί
--η δεύτερη θα είναι η ονομασία που θα παρουσιάζεται στη σελίδα
--πρότυπα που αρχίζουν από προς
--ΒΕ,ΒΘ,ΒΚ,ΒΠ,ΒΦ
--[=[<includeonly>{{#invoke:ΑδελφικάΕγχειρήματα|main}}</includeonly><noinclude>
{{#invoke:ΑδελφικάΕγχειρήματα|main|οδηγίες}}[[Κατηγορία:Πρότυπα για Αδελφικά Εγχειρήματα]]</noinclude>]=]
export = {}
sisterprojects = mw.loadData("Module:ΑδελφικάΕγχειρήματα/δεδομένα")
g = require('Module:γενικέςσυναρτήσεις')
errorhere = function(errstring)
return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο Module ΑδελφικάΕγχειρήματα]]'
end
export.findproject = function(arg)
local findwhat = arg
local dowhat
if mw.ustring.sub( findwhat, 1, 4 ) == 'προς' then
findwhat = mw.text.trim(mw.ustring.sub( findwhat, 5 ))
dowhat = 'προς'
end
if mw.ustring.sub( findwhat, 1, 3 ) == 'από' then
findwhat = mw.text.trim(mw.ustring.sub( findwhat, 4 ))
dowhat = 'από'
end
for key, value in pairs(sisterprojects) do
if value.i18n.el.abbreviation == findwhat or value.i18n.el.name == findwhat then
return key, dowhat, value.i18n.el
end
end
return nil, nil
end
export.main = function(frame)
local protypo = g.getTemplateName(frame) or ''
local pageobj = mw.title.getCurrentTitle()
if protypo == '' then return errorhere('Σφάλμα! Η συνάρτηση δεν κληθηκε μέσω προτύπου.') end
local frargs = frame.args
if frargs.pagename ~= nil then return errorhere('Σφάλμα! Χρησιμοποιήθηκε παράμετρος "pagename".') end
local pagename = mw.text.trim(pageobj.text)
if frargs.project ~= nil then return errorhere('Σφάλμα! Χρησιμοποιήθηκε παράμετρος "project".') end
local project, dowhat, projectargs = export.findproject(protypo)
if frargs.project ~= nil then return errorhere('Σφάλμα! Δεν βρέθηκε το όνομα του εγχειρήματος.') end
table.insert(frargs, project)
table.insert(frargs, protypo)
table.insert(frargs, dowhat)
if frargs['οδηγίες'] ~= nil then
return instructions(frame, frargs, projectargs)
end
if dowhat == 'προς' then
return tableto(frame,frargs, projectargs)
elseif dowhat == 'από' then
return tablefrom(frame,frargs, projectargs)
else
return linewithasterisk(frame,frargs, projectargs)
end
end
--TODO...???
tableto = function(frame,args, projectargs)
local output = [=[<div class="infobox transwiki" style="background-color: yellow">
'''Αυτή η σελίδα είναι υποψήφια για μεταφορά στη [[w:Κύρια Σελίδα|Βικιπαίδεια]].'''<br />
Το κείμενο αυτό φαίνεται να ταιριάζει σε [[εγκυκλοπαίδεια|εγκυκλοπαιδικό]] άρθρο και όχι σε λήμμα [[λεξικό|λεξικού]]. Το [[Βικιλεξικό]] δεν είναι εγκυκλοπαίδεια, αλλά η Βικιπαίδεια είναι. Επιβεβαιώστε ότι είναι κατάλληλο για εκεί και μεταφέρετέ το. Αν το κείμενο μπορεί να υποστεί αλλαγές ώστε να γίνει λήμμα λεξικού, κάντε το και αφαιρέστε αυτή την ένδειξη.
</div><includeonly>[[Κατηγορία:Λήμματα υποψήφια για μεταφορά στη Βικιπαίδεια|{{PAGENAME}}]]</includeonly>]=]
return frame:preprocess( output )
end
--TODO...???
tablefrom = function(frame,args, projectargs)
local output = [=[<div class="infobox transwiki" style="background-color: yellow">
'''Αυτή η σελίδα είναι υποψήφια για μεταφορά στη [[w:Κύρια Σελίδα|Βικιπαίδεια]].'''<br />
Το κείμενο αυτό φαίνεται να ταιριάζει σε [[εγκυκλοπαίδεια|εγκυκλοπαιδικό]] άρθρο και όχι σε λήμμα [[λεξικό|λεξικού]]. Το [[Βικιλεξικό]] δεν είναι εγκυκλοπαίδεια, αλλά η Βικιπαίδεια είναι. Επιβεβαιώστε ότι είναι κατάλληλο για εκεί και μεταφέρετέ το. Αν το κείμενο μπορεί να υποστεί αλλαγές ώστε να γίνει λήμμα λεξικού, κάντε το και αφαιρέστε αυτή την ένδειξη.
</div><includeonly>[[Κατηγορία:Λήμματα υποψήφια για μεταφορά στη Βικιπαίδεια|{{PAGENAME}}]]</includeonly>]=]
return frame:preprocess( output )
end
linewithasterisk = function(frame,args, projectargs)
local output
local linkedarticle = args[1] or ''
local linkedshow = args[2] or ''
if linkedarticle == '' then
linkedarticle = args[pagename]
end
if linkedshow == '' then
--Αν έχει δώσει άλλο τίτλο τότε δείξτον για να είναι εμφανής η διαφορά;
if args[pagename] ~= linkedarticle then
linkedshow = linkedarticle
end
end
output = '* [[' .. sisterprojects[args[project]][common][iwPrefix] .. ':'
if args[pagename] == linkedarticle and linkedarticle == linkedshow then
output = output .. args[pagename] .. ']]'
else
output = output .. linkedarticle .. '|' .. linkedshow .. ']]'
end
output = output .. sisterprojects[args[project]][i18n][el][where]
return frame:preprocess( output )
end
instructions = function (frame,args, projectargs)
local output
local st = 'σ' .. projectargs.where
if dowhat == 'προς' then
output = ''
elseif dowhat == 'από' then
output = ''
else
local output = [=[<br clear="all">
== Επεξηγηματική σημείωση ==
Το πρότυπο <nowiki>{{<nowiki>[[:Πρότυπο:]=] .. args.protypo .. [=[]]}} είναι ένα στοιχείο απαρίθμησης που κατευθύνει προς μια σελίδα ]=] .. st .. [=[.
Συμπεριλαμβάνει τον αστερίσκο. Το βάζουμε συνήθως κάτω από το πρότυπο <nowiki>{{<nowiki>[[:Πρότυπο:βλέπε]]}}.
{| align=left style="border:1px" cellpadding=5
!colspan="2"| Παράμετροι
|-
| <tt>1</tt> || ''Προαιρετικό.'' Ο τίτλος της σελίδας όπως υπάρχει ]=] .. st .. [=[. Συνήθως είναι ο ίδιος με τον τίτλο της σελίδας του Βικιλεξικού.
|-
| <tt>2</tt> || ''Προαιρετικό.'' Ο τίτλος που θα εμφανίζεται εδώ. Κανονικά, είναι ο τίτλος της σελίδας εκεί.
|}
]=]
end
return frame:preprocess( output )
end
export.test = function(arg) --ex. απόΒΠ
local protypo = arg
--local pageobj = mw.title.getCurrentTitle()
if protypo == '' then return errorhere('Σφάλμα! Η συνάρτηση δεν κληθηκε μέσω προτύπου.') end
local frargs = {}
--if frargs.pagename ~= nil then return errorhere('Σφάλμα! Χρησιμοποιήθηκε παράμετρος "pagename".') end
--local pagename = mw.text.trim(pageobj.text)
--if frargs.project ~= nil then return errorhere('Σφάλμα! Χρησιμοποιήθηκε παράμετρος "project".') end
local project, dowhat = export.findproject(protypo)
return project, dowhat
end
return export