Latest revision |
Your text |
Line 1: |
Line 1: |
| local p = {} --p stands for package | | local p = {} --p stands for package |
|
| |
| langObject = mw.getLanguage('simple')
| |
|
| |
| local function has_value (tab, val)
| |
| for index, value in ipairs(tab) do
| |
| if langObject:lc(value) == langObject:lc(val) then
| |
| return true
| |
| end
| |
| end
| |
| return false
| |
| end
| |
|
| |
| function p.title_case(frame)
| |
| plain = false
| |
| if frame.args.plain == "true" then
| |
| plain = true
| |
| end
| |
| split = frame.args.split
| |
| if split == "space" then
| |
| split = " "
| |
| end
| |
| replace = split
| |
| if frame.args.replace ~= "" then
| |
| replace = frame.args.replace
| |
| end
| |
| parts = mw.text.split(frame.args.link, split, plain)
| |
| lower = mw.text.split(frame.args.lower, ",", true)
| |
| title = ""
| |
| for i, part in pairs(parts) do
| |
| if i > 1 and i < table.getn(parts) and has_value(lower, part) then
| |
| title = title .. langObject:lc(part) .. replace
| |
| else
| |
| title = title .. langObject:ucfirst(langObject:lc(part)) .. replace
| |
| end
| |
| end
| |
| if table.getn(parts) > 1 then
| |
| title = string.sub(title, 0, string.len(title) - string.len(replace))
| |
| end
| |
| if frame.args.nolink == "true" then
| |
| return title
| |
| end
| |
| return "[[" .. frame.args.link .. "|" .. title .. "]]"
| |
| end
| |
|
| |
| function p.uppercase_first_letter(frame)
| |
| uc_first_letter = langObject:ucfirst(langObject:lc(frame.args.link))
| |
| if frame.args.nolink == "true" then
| |
| return uc_first_letter
| |
| end
| |
| return "[[" .. frame.args.link .. "|" .. uc_first_letter .. "]]"
| |
| end
| |
|
| |
|
| function p.lowercase(frame) | | function p.lowercase(frame) |
| lc = langObject:lc(frame.args.link)
| | return "[[" + frame.args.link + "|" + string.lower(frame.args.link) + "]]" |
| if frame.args.nolink == "true" then
| |
| return lc
| |
| end
| |
| return "[[" .. frame.args.link .. "|" .. lc .. "]]" | |
| end | | end |
|
| |
|
| return p | | return p |