Modul:Yesno: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
baru |
. |
||
Baris 1: | Baris 1: | ||
-- Function allowing for consistent treatment of boolean-like wikitext input. |
|||
local p = {} |
|||
-- It works similarly to the template {{yesno}}. |
|||
function |
return function (val, default) |
||
val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case |
|||
-- defaults |
|||
local retvals = { |
|||
yes = "yes", |
|||
no = "", |
|||
⚫ | |||
} |
|||
-- Allow arguments to override defaults. |
|||
-- 'any' tracks the presence of any arguments at all. |
|||
local args = frame.args |
|||
⚫ | |||
for k,v in pairs(args) do |
|||
any = true |
|||
retvals[k] = v |
|||
end |
|||
-- If there are no arguments, try and get them from the parent frame. |
|||
if any == false then |
|||
local pframe = frame:getParent() |
|||
args = pframe.args |
|||
for k,v in pairs(args) do |
|||
retvals[k] = v |
|||
end |
|||
end |
|||
val = args[1] |
|||
-- First deal with the case if val is nil, then deal with other cases. |
|||
if val == nil then |
if val == nil then |
||
return |
return nil |
||
⚫ | |||
end |
|||
⚫ | |||
val = val |
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then |
||
⚫ | |||
val = val:match'^%s*(.*%S)' or '' -- Trim whitespace. |
|||
if val == '' then |
|||
return retvals['blank'] or retvals['no'] |
|||
⚫ | |||
return retvals['no'] |
|||
elseif val == 'y' or val == 'yes' or tonumber(val) == 1 then |
|||
return retvals['yes'] |
|||
elseif val == '¬' then |
|||
return retvals['¬'] |
|||
else |
else |
||
return |
return default |
||
end |
end |
||
end |
end |
||
return p |
Revisi per 24 Desember 2013 04.04
Modul Lua ini digunakan pada 1.120.000+ halaman, atau sekira 29% dari keseluruhan halaman halaman. Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan perlu diuji di subhalaman /bak pasir atau /kasus uji modul, atau bak pasir modul Anda. Perubahan yang diuji dapat ditambahkan ke halaman ini dalam satu suntingan. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya. |
Modul ini dilindungi. Modul ini sangat mencolok yang digunakan oleh banyak halaman, atau sangat sering disubstitusikan. Karena vandalisme atau kesalahan akan mempengaruhi banyak halaman, dan suntingan kecil dapat memberi beban besar pada server, modul ini dilindungi dari penyuntingan. |
Sintaks
yesno(value, default)
value
adalah nilai yang akan diuji. Input boolean atau input dengan style boolean (lihat di bawah) selalu dievaluasi menjadi true
atau false
, dan nil
akan selalu mengevaluasi ke nil
. Nilai lain dievaluasi ke default
.
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case
if val == nil then
return nil
elseif val == false or val == 'no' or val == 'n' or val == 'false' or tonumber(val) == 0 then
return false
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
return true
else
return default
end
end