Module:Lua banner
Εμφάνιση
Τεκμηρίωση module[προβολή] [επεξεργασία] [ιστορικό] [ανανέωση]
Αυτό το module εφαρμόζει το πρότυπο {{lua}}.
Χρήση από κώδικα wiki
[επεξεργασία κώδικα]Αυτό το module δεν μπορεί να χρησιμοποιηθεί απευθείας από κώδικα wiki. Μπορεί να χρησιμοποιηθεί μόνο μέσω του προτύπου {{lua}}. Ανατρέξτε στη σελίδα προτύπου για τεκμηρίωση.
Χρήση από Lua modules
[επεξεργασία κώδικα]To use this module from other Lua modules, first load the module. Για να χρησιμοποιήσετε αυτό το module από άλλα modules Lua, φορτώστε πρώτα το module.
local mLuaBanner = require('Module:Lua banner')
Στη συνέχεια, μπορείτε να δημιουργήσετε ένα πλαϊνό πλαίσιο χρησιμοποιώντας τη συνάρτηση _main.
mLuaBanner._main(args)
Η μεταβλητή args πρέπει να είναι ένας πίνακας που περιέχει τις παραμέτρους για να περάσουν στο module. Για να δείτε τις διαφορετικές παραμέτρους που μπορούν να καθοριστούν και πώς επηρεάζουν την έξοδο του module, ανατρέξτε στην τεκμηρίωση του προτύπου {{lua}}.
-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules < 1 then
boxArgs.text = '<strong class="error">Σφάλμα: δεν ορίστηκαν modules</strong>'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
end
local moduleList = mList.makeList('bulleted', moduleLinks)
boxArgs.text = 'Χρησιμοποιεί [[Βικιπαίδεια:Lua|Lua]]:\n' .. moduleList
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=Lua λογότυπο|link=Βικιπαίδεια:Lua]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules < 1 then
cats[#cats + 1] = 'Πρότυπα Lua με σφάλματα'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if titleObj.namespace == 10
and not subpageBlacklist[titleObj.subpageText]
then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Πρότυπα βασισμένα στο Lua String',
['Module:Math'] = 'Πρότυπα βασισμένα στο Math Lua module',
['Module:BaseConvert'] = 'Πρότυπα βασισμένα στο BaseConvert Lua module',
['Module:Citation'] = 'Πρότυπα τεκμηρίωσης βασισμένα στη Lua'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Πρότυπα βασισμένα στη Lua'
end
cats[#cats + 1] = category
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p