Module:Dir: Difference between revisions
From Neodyland Wiki
More actions
create replacement for Template:Dir |
catch invalid language codes |
||
| Line 21: | Line 21: | ||
end | end | ||
function | local function isRTL(code) | ||
local | local success, ret = pcall(function () | ||
return | return mw.language.new(code):isRTL() | ||
end) | |||
return success and ret | |||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local code = args[1] | local code = trimAndRemoveBlanks(args[1]) | ||
if isRTL(code) then | |||
if | |||
return trim(args[2]) or 'rtl' | return trim(args[2]) or 'rtl' | ||
else | else | ||
Revision as of 03:39, 21 February 2015
This documentation is transcluded from Module:Dir/doc.
-- This module implements [[Template:Dir]].
local p = {}
local function trim(s)
if s then
return s:match('^%s*(.-)%s*$')
else
return nil
end
end
local function trimAndRemoveBlanks(s)
if s then
s = trim(s)
if s ~= '' then
return s
end
end
return nil
end
local function isRTL(code)
local success, ret = pcall(function ()
return mw.language.new(code):isRTL()
end)
return success and ret
end
function p.main(frame)
local args = frame:getParent().args
local code = trimAndRemoveBlanks(args[1])
if isRTL(code) then
return trim(args[2]) or 'rtl'
else
return trim(args[3]) or 'ltr'
end
end
return p