Module:rad-pronunciation: Difference between revisions

Jump to navigation Jump to search
m
Beautified
No edit summary
m (Beautified)
Line 1: Line 1:
local export = {}
local export = {}
local getArgs = require('Module:Arguments').getArgs
local getArgs = require("Module:Arguments").getArgs


local m_rad_IPA = require("Module:rad-IPA")
local m_rad_IPA = require("Module:rad-IPA")
Line 9: Line 9:


function export.show(frame)
function export.show(frame)
local args = getArgs(frame)
    local args = getArgs(frame)
local word = mw.title.getCurrentTitle().subpageText
    local word = mw.title.getCurrentTitle().subpageText
local p = 1
    local p = 1
 
if args["entry"] ~= nil then word = args["entry"] end
    if args["entry"] ~= nil then
        word = args["entry"]
-- All possible "modes":
    end
local parameter = {["IPA"] = "IPA", ["syllables"] = "syllables", ["homophones"] = "homophones"}
 
local register = {["colloquial"] = "colloquial", ["formal"] = "formal", ["humorous"] = "humorous"}
    -- All possible "modes":
local dialect = {["hjádvanþs"] = "hjádvanþs", ["coastal"] = "coastal", ["insular"] = "insular"}
    local parameter = {["IPA"] = "IPA", ["syllables"] = "syllables", ["homophones"] = "homophones"}
    local register = {["colloquial"] = "colloquial", ["formal"] = "formal", ["humorous"] = "humorous"}
-- get automations --
    local dialect = {["hjádvanþs"] = "hjádvanþs", ["coastal"] = "coastal", ["insular"] = "insular"}
local auto_IPA = m_rad_IPA.generate({word})
 
local auto_IPA_phon = m_rad_IPA.generate({word, "phon"})
    -- get automations --
local auto_IPA_hj = m_rad_IPA.generate({word, "hj"})
    local auto_IPA = m_rad_IPA.generate({word})
local auto_IPA_phon_hj = m_rad_IPA.generate({word, "hj", "phon"})
    local auto_IPA_phon = m_rad_IPA.generate({word, "phon"})
local auto_syllables = m_rad_syllables.generate({word})
    local auto_IPA_hj = m_rad_IPA.generate({word, "hj"})
    local auto_IPA_phon_hj = m_rad_IPA.generate({word, "hj", "phon"})
-- create data arrays --
    local auto_syllables = m_rad_syllables.generate({word})
local IPA = {
 
["standard"] = {
    -- create data arrays --
["plain"] = {},
    local IPA = {
}
        ["standard"] = {
}
            ["plain"] = {}
        }
    }
     for _, r in pairs(register) do
     for _, r in pairs(register) do
         IPA["standard"][r] = {}
         IPA["standard"][r] = {}
     end
     end
for _, d in pairs(dialect) do
    for _, d in pairs(dialect) do
    IPA[d] = {["plain"] = {}}
        IPA[d] = {["plain"] = {}}
    for _, r in pairs(register) do
        for _, r in pairs(register) do
        IPA[d][r] = {}
            IPA[d][r] = {}
    end
        end
end -- set up IPA
    end -- set up IPA
 
    local rhymes = {}
    local syllables = {}
    local homophones = {}
 
    -- get data --
    local IPA_no_auto = false
    local syllables_no_auto = false
    local show_rhymes = true
    local mode = "IPA"
    local mode_dialect = "standard"
    local mode_register = "plain"
    local working_syllables = ""
    local manual_entry = false
 
    -- turn off rhymes if affix
    if mw.ustring.find(word, "^[%-·]") or mw.ustring.find(word, "[%-·]$") then
        show_rhymes = false
    end
 
    local function insert_rhyme(input, pos)
        local new_rhyme = m_rad_IPA.get_rhyme(input)
        if not (new_rhyme == nil or m_table.contains(rhymes, new_rhyme)) and show_rhymes then
            if pos == nil then
                table.insert(rhymes, new_rhyme)
            else
                table.insert(rhymes, pos, new_rhyme)
            end
        -- mw.log("Rhyme registered: " .. new_rhyme)
        end
    end
 
    local i = 1
 
    while args[i] ~= nil or args[i + 1] ~= nil do
        mw.log("Processing argument " .. i .. ".")
        if parameter[args[i]] ~= nil then -- mode changer
            mode = args[i]
            mode_dialect = "standard"
            mode_register = "plain"
        elseif dialect[args[i]] ~= nil then
            if mode ~= "IPA" then
                mode = "IPA"
                mode_dialect = "standard"
                mode_register = "plain"
            end
            mode_dialect = args[i]
            mode_register = "plain"
        elseif register[args[i]] ~= nil then
            -- begin adding data to tables --
            if mode ~= "IPA" then
                mode = "IPA"
                mode_dialect = "standard"
                mode_register = "plain"
            end
            mode_register = args[i]
        elseif mode == "IPA" then
            if args[i] == "no auto" or args[i] == "noauto" then
                IPA_no_auto = true
            elseif args[i] ~= nil then
                local temp_arg = args[i]
 
                if not mw.ustring.find(temp_arg, "%/(.*)%/") then
                    if mw.ustring.find(temp_arg, "%[(.*)%]") then
                        if mw.ustring.find(temp_arg, "(.*) %[") then
                            temp_arg =
                                "/" ..
                                mw.ustring.match(temp_arg, "(.*) %[") .. "/ " .. mw.ustring.match(temp_arg, "(%[.*%])")
                        else
                            temp_arg = mw.ustring.match(temp_arg, "(%[.*%])")
                        end
                    elseif mw.ustring.find(temp_arg, "^%<(.*)%>$") and mode_dialect == "standard" then
                        temp_arg_match = mw.ustring.match(temp_arg, "^%<(.*)%>$")
                        temp_arg_ipa = m_rad_IPA.generate({temp_arg_match})
                        temp_arg_ipa_phon = m_rad_IPA.generate({temp_arg_match, "phon"})
                        temp_arg_ipa_hj = m_rad_IPA.generate({temp_arg_match, "hj"})
                        temp_arg_ipa_hj_phon = m_rad_IPA.generate({temp_arg_match, "hj", "phon"})
 
                        temp_arg = "/" .. temp_arg_ipa .. "/"
                        if temp_arg_ipa_phon ~= temp_arg_ipa then
                            temp_arg = temp_arg .. " [" .. temp_arg_ipa_phon .. "]"
                        end
                        if temp_arg_ipa_hj ~= temp_arg_ipa then
                            temp_arg_hj = "/" .. temp_arg_ipa_hj .. "/"
                            if temp_arg_ipa_hj_phon ~= temp_arg_hj_ipa then
                                temp_arg_hj = temp_arg_hj .. " [" .. temp_arg_ipa_hj_phon .. "]"
                            end
                            table.insert(IPA["hjádvanþs"][mode_register], temp_arg_hj)
                        end
                    else
                        temp_arg = "/" .. temp_arg .. "/"
                    end
                end
 
                table.insert(IPA[mode_dialect][mode_register], temp_arg)
                mw.log("IPA: added '" .. temp_arg .. "' to IPA[" .. mode_dialect .. "][" .. mode_register .. "]")
                manual_entry = true
 
                if mode_dialect == "standard" or mode_dialect == "hjádvanþs" then
                    local just_phonemic = mw.ustring.match(temp_arg, "%/(.*)%/")
                    insert_rhyme(just_phonemic)
                end
            end
        elseif mode == "syllables" then
            if args[i] == "no auto" or args[i] == "noauto" then
                syllables_no_auto = true
            elseif args[i] == "" or args[i] == nil then
                if mw.ustring.find(working_syllables, "(%|)") then
                    table.insert(syllables, working_syllables)
                    mw.log("Syllables: " .. working_syllables .. " registered.")
                end
                working_syllables = ""
            elseif args[i + 1] == nil then
                working_syllables = working_syllables .. "|" .. args[i]
                table.insert(syllables, working_syllables)
                mw.log("Syllables: " .. working_syllables .. " registered.")
                working_syllables = ""
            else
                working_syllables = working_syllables .. "|" .. args[i]
            end
        elseif mode == "homophones" then
            if args[i] ~= nil then
                table.insert(homophones, args[i])
                mw.log("Homophones: " .. args[i] .. " registered.")
            end
        end
 
        i = i + 1
    end
 
    i = nil
 
    -- add auto values --
    if IPA_no_auto == false then
        table.insert(IPA["standard"]["plain"], 1, "/" .. auto_IPA .. "/")
        insert_rhyme(auto_IPA, 1)
 
        if auto_IPA_phon ~= auto_IPA then
            IPA["standard"]["plain"][1] = IPA["standard"]["plain"][1] .. " [" .. auto_IPA_phon .. "]"
        end
 
        if auto_IPA_hj ~= auto_IPA then
            table.insert(IPA["hjádvanþs"]["plain"], 1, "/" .. auto_IPA_hj .. "/")
            insert_rhyme(auto_IPA_hj, 2)
 
            if auto_IPA_phon_hj ~= auto_IPA_hj then
                IPA["hjádvanþs"]["plain"][1] = IPA["hjádvanþs"]["plain"][1] .. " [" .. auto_IPA_phon_hj .. "]"
            end
        end
    end
 
    if syllables_no_auto == false and mw.ustring.find(auto_syllables, "(%|)") then
        table.insert(syllables, 1, auto_syllables)
    end
 
    -- format --
 
    if #IPA["standard"]["plain"] == 0 then
        error("Missing IPA input")
    end
 
    local args_temp = {}
    local accent_temp = {}
 
    args_temp = IPA["standard"]["plain"]
    table.insert(args_temp, 1, "rad")
    local IPA_show = "* " .. frame:expandTemplate {title = "IPA", args = args_temp}
    if manual_entry == true then
        IPA_show = IPA_show .. "[[Category:Radestrian terms with manually entered pronunciation]]"
    end
 
    for r, _ in pairs(register) do
        if #IPA["standard"][r] > 0 then
            args_temp = IPA["standard"][r]
            table.insert(args_temp, 1, "rad")
            args_temp["nopre"] = 1
            IPA_show =
                IPA_show .. "\n** (<i>" .. r .. "</i>) " .. frame:expandTemplate {title = "IPA", args = args_temp}
        end
    end
 
    if #IPA["hjádvanþs"]["plain"] > 0 then
        args_temp = IPA["hjádvanþs"]["plain"]
        table.insert(args_temp, 1, "rad")
        args_temp["nopre"] = 1
        IPA_show =
            IPA_show ..
            "\n** " ..
                frame:expandTemplate {title = "accent", args = {"rad", "hjádvanþs"}} ..
                    " " ..
                        frame:expandTemplate {title = "IPA", args = args_temp} ..
                            "[[Category:Radestrian terms with hjádvanþs dialect pronunciation]]"
    end
    for r, _ in pairs(register) do
        if #IPA["hjádvanþs"][r] > 0 then
            args_temp = IPA["hjádvanþs"][r]
            table.insert(args_temp, 1, "rad")
            args_temp["nopre"] = 1
            IPA_show =
                IPA_show ..
                "\n** " ..
                    frame:expandTemplate {title = "accent", args = {"rad", "hjádvanþs", r}} ..
                        " " ..
                            frame:expandTemplate {title = "IPA", args = args_temp} ..
                                "[[Category:Radestrian terms with hjádvanþs dialect pronunciation]]"
        end
    end
 
    dialect["hjádvanþs"] = nil
 
    for d, _ in pairs(dialect) do
        if #IPA[d]["plain"] > 0 then
            args_temp = IPA[d]["plain"]
            table.insert(args_temp, 1, "rad")
            args_temp["nopre"] = 1
            IPA_show =
                IPA_show ..
                "\n** " ..
                    frame:expandTemplate {title = "accent", args = {"rad", d}} ..
                        " " ..
                            frame:expandTemplate {title = "IPA", args = args_temp} ..
                                "[[Category:Radestrian terms with " .. d .. " dialect pronunciation]]"
        end
 
        for r, _ in pairs(register) do
            if #IPA[d][r] > 0 then
                args_temp = IPA[d][r]
                table.insert(args_temp, 1, "rad")
                args_temp["nopre"] = 1
                IPA_show =
                    IPA_show ..
                    "\n** " ..
                        frame:expandTemplate {title = "accent", args = {"rad", d, r}} ..
                            " " ..
                                frame:expandTemplate {title = "IPA", args = args_temp} ..
                                    "[[Category:Radestrian terms with " .. d .. " dialect pronunciation]]"
            end
        end
    end


local rhymes = {}
    if mw.ustring.match(IPA_show, "%>%, ") or mw.ustring.match(IPA_show, "%*.*%*") then
local syllables = {}
        IPA_show = IPA_show .. "[[Category:Radestrian terms with multiple pronunciations]]"
local homophones = {}
    end
-- get data --
local IPA_no_auto = false
local syllables_no_auto = false
local show_rhymes = true
local mode = "IPA"
local mode_dialect = "standard"
local mode_register = "plain"
local working_syllables = ""
local manual_entry = false
-- turn off rhymes if affix
if mw.ustring.find(word, "^[%-·]") or mw.ustring.find(word, "[%-·]$") then
show_rhymes = false
end
local function insert_rhyme(input, pos)
local new_rhyme = m_rad_IPA.get_rhyme(input)
if not (new_rhyme == nil or m_table.contains(rhymes, new_rhyme)) and show_rhymes then
if pos == nil then
table.insert(rhymes, new_rhyme)
else
table.insert(rhymes, pos, new_rhyme)
end
-- mw.log("Rhyme registered: " .. new_rhyme)
end
end
local i = 1


while args[i] ~= nil or args[i+1] ~= nil do
    local homophones_show = ""
mw.log("Processing argument " .. i .. ".")
if parameter[args[i]] ~= nil then -- mode changer
mode = args[i]
mode_dialect = "standard"
mode_register = "plain"
elseif dialect[args[i]] ~= nil then
if mode ~= "IPA" then
mode = "IPA"
mode_dialect = "standard"
mode_register = "plain"
end
mode_dialect = args[i]
mode_register = "plain"
elseif register[args[i]] ~= nil then
if mode ~= "IPA" then
mode = "IPA"
mode_dialect = "standard"
mode_register = "plain"
end
mode_register = args[i]
-- begin adding data to tables --
elseif mode == "IPA" then
if args[i] == "no auto" or args[i] == "noauto" then
IPA_no_auto = true
elseif args[i] ~= nil then
local temp_arg = args[i]
if not mw.ustring.find(temp_arg, "%/(.*)%/") then
if mw.ustring.find(temp_arg, "%[(.*)%]") then
if mw.ustring.find(temp_arg, "(.*) %[") then
temp_arg = "/" .. mw.ustring.match(temp_arg, "(.*) %[") .. "/ " .. mw.ustring.match(temp_arg, "(%[.*%])")
else
temp_arg = mw.ustring.match(temp_arg, "(%[.*%])")
end
elseif mw.ustring.find(temp_arg, "^%<(.*)%>$") and mode_dialect == "standard" then
temp_arg_match = mw.ustring.match(temp_arg, "^%<(.*)%>$")
temp_arg_ipa = m_rad_IPA.generate({temp_arg_match})
temp_arg_ipa_phon = m_rad_IPA.generate({temp_arg_match, "phon"})
temp_arg_ipa_hj = m_rad_IPA.generate({temp_arg_match, "hj"})
temp_arg_ipa_hj_phon = m_rad_IPA.generate({temp_arg_match, "hj", "phon"})


temp_arg = "/" .. temp_arg_ipa .. "/"
    if #homophones > 0 then
if temp_arg_ipa_phon ~= temp_arg_ipa then
        homophones_show = "\n* Homophones:"
temp_arg = temp_arg .. " [" .. temp_arg_ipa_phon .. "]"
        table.sort(homophones)
end
        for _, item in ipairs(homophones) do
if temp_arg_ipa_hj ~= temp_arg_ipa then
            homophones_show =
temp_arg_hj = "/" .. temp_arg_ipa_hj .. "/"
                homophones_show .. ", " .. m_links.full_link {term = item, language = m_languages.get_by_code("rad")}
if temp_arg_ipa_hj_phon ~= temp_arg_hj_ipa then
        end
temp_arg_hj = temp_arg_hj .. " [" .. temp_arg_ipa_hj_phon .. "]"
        homophones_show = mw.ustring.gsub(homophones_show, "(%:%,)", ":") .. "[[Category:Radestrian homophones]]"
end
    end
table.insert(IPA["hjádvanþs"][mode_register], temp_arg_hj)
end
else
temp_arg = "/" .. temp_arg .. "/"
end
end
table.insert(IPA[mode_dialect][mode_register], temp_arg)
mw.log("IPA: added '" .. temp_arg .. "' to IPA[" .. mode_dialect .. "][" .. mode_register .. "]")
manual_entry = true
if mode_dialect == "standard" or mode_dialect == "hjádvanþs" then
local just_phonemic = mw.ustring.match(temp_arg, "%/(.*)%/")
insert_rhyme(just_phonemic)
end
end
elseif mode == "syllables" then
if args[i] == "no auto" or args[i] == "noauto" then
syllables_no_auto = true
elseif args[i] == "" or args[i] == nil then
if mw.ustring.find(working_syllables, "(%|)") then
table.insert(syllables, working_syllables)
mw.log("Syllables: " .. working_syllables .. " registered.")
end
working_syllables = ""
elseif args[i+1] == nil then
working_syllables = working_syllables .. "|" .. args[i]
table.insert(syllables, working_syllables)
mw.log("Syllables: " .. working_syllables .. " registered.")
working_syllables = ""
else
working_syllables = working_syllables .. "|" .. args[i]
end
elseif mode == "homophones" then
if args[i] ~= nil then
table.insert(homophones, args[i])
mw.log("Homophones: " .. args[i] .. " registered.")
end
end
i = i + 1
end
i = nil


-- add auto values --
    local rhymes_show = ""
if IPA_no_auto == false then
table.insert(IPA["standard"]["plain"], 1, "/" .. auto_IPA .. "/")
insert_rhyme(auto_IPA, 1)
if auto_IPA_phon ~= auto_IPA then
IPA["standard"]["plain"][1] = IPA["standard"]["plain"][1] .. " [" .. auto_IPA_phon .. "]"
end
if auto_IPA_hj ~= auto_IPA then
table.insert(IPA["hjádvanþs"]["plain"], 1, "/" .. auto_IPA_hj .. "/")
insert_rhyme(auto_IPA_hj, 2)
if auto_IPA_phon_hj ~= auto_IPA_hj then
IPA["hjádvanþs"]["plain"][1] = IPA["hjádvanþs"]["plain"][1] .. " [" .. auto_IPA_phon_hj .. "]"
end
end
end
if syllables_no_auto == false and mw.ustring.find(auto_syllables, "(%|)") then
table.insert(syllables, 1, auto_syllables)
end
-- format --
if #IPA["standard"]["plain"] == 0 then
error("Missing IPA input")
end
local args_temp = {}
local accent_temp = {}
args_temp = IPA["standard"]["plain"]
table.insert(args_temp, 1, "rad")
local IPA_show = "* " .. frame:expandTemplate{ title = "IPA", args = args_temp }
if manual_entry == true then
IPA_show = IPA_show .. "[[Category:Radestrian terms with manually entered pronunciation]]"
end
for r, _ in pairs(register) do
if #IPA["standard"][r] > 0 then
args_temp = IPA["standard"][r]
table.insert(args_temp, 1, "rad")
args_temp["nopre"] = 1
IPA_show = IPA_show .. "\n** (<i>" .. r .. "</i>) " .. frame:expandTemplate{ title = "IPA", args = args_temp }
end
end
if #IPA["hjádvanþs"]["plain"] > 0 then
args_temp = IPA["hjádvanþs"]["plain"]
table.insert(args_temp, 1, "rad")
args_temp["nopre"] = 1
IPA_show = IPA_show .. "\n** " .. frame:expandTemplate{ title = "accent", args = { "rad", "hjádvanþs" } } .. " " .. frame:expandTemplate{ title = "IPA", args = args_temp } .. "[[Category:Radestrian terms with hjádvanþs dialect pronunciation]]"
end
for r, _ in pairs(register) do
if #IPA["hjádvanþs"][r] > 0 then
args_temp = IPA["hjádvanþs"][r]
table.insert(args_temp, 1, "rad")
args_temp["nopre"] = 1
IPA_show = IPA_show .. "\n** " .. frame:expandTemplate{ title = "accent", args = { "rad", "hjádvanþs", r } } .. " " .. frame:expandTemplate{ title = "IPA", args = args_temp } .. "[[Category:Radestrian terms with hjádvanþs dialect pronunciation]]"
end
end
dialect["hjádvanþs"] = nil
for d, _ in pairs(dialect) do
if #IPA[d]["plain"] > 0 then
args_temp = IPA[d]["plain"]
table.insert(args_temp, 1, "rad")
args_temp["nopre"] = 1
IPA_show = IPA_show .. "\n** " .. frame:expandTemplate{ title = "accent", args = { "rad", d } } .. " " .. frame:expandTemplate{ title = "IPA", args = args_temp } .. "[[Category:Radestrian terms with " .. d .. " dialect pronunciation]]"
end
for r, _ in pairs(register) do
if #IPA[d][r] > 0 then
args_temp = IPA[d][r]
table.insert(args_temp, 1, "rad")
args_temp["nopre"] = 1
IPA_show = IPA_show .. "\n** " .. frame:expandTemplate{ title = "accent", args = { "rad", d, r } } .. " " .. frame:expandTemplate{ title = "IPA", args = args_temp } .. "[[Category:Radestrian terms with " .. d .. " dialect pronunciation]]"
end
end
end
if mw.ustring.match(IPA_show, "%>%, ") or mw.ustring.match(IPA_show, "%*.*%*") then
IPA_show = IPA_show .. "[[Category:Radestrian terms with multiple pronunciations]]"
end
local homophones_show = ""
if #homophones  > 0 then
homophones_show = "\n* Homophones:"
table.sort(homophones)
for _, item in ipairs(homophones) do
homophones_show = homophones_show .. ", " .. m_links.full_link{ term = item, language = m_languages.get_by_code("rad") }
end
homophones_show = mw.ustring.gsub(homophones_show, "(%:%,)", ":") .. "[[Category:Radestrian homophones]]"
end
local rhymes_show = ""
if #rhymes > 0 and show_rhymes then
rhymes_show = "\n* Rhymes:"
for num, rhyme in ipairs(rhymes) do
if num > 1 then
rhymes_show = rhymes_show .. ","
end
rhymes_show = rhymes_show .. " <span class=\"IPA\">[[:Category:Rhymes:Radestrian/" .. rhyme .. "|-" .. rhyme .. "]]</span>[[Category:Rhymes:Radestrian/" .. rhyme .. "]]"


end
    if #rhymes > 0 and show_rhymes then
end
        rhymes_show = "\n* Rhymes:"
 
local syllables_show = ""
        for num, rhyme in ipairs(rhymes) do
            if num > 1 then
local function split_syllables(input)
                rhymes_show = rhymes_show .. ","
            end
            rhymes_show =
                rhymes_show ..
                ' <span class="IPA">[[:Category:Rhymes:Radestrian/' ..
                    rhyme .. "|-" .. rhyme .. "]]</span>[[Category:Rhymes:Radestrian/" .. rhyme .. "]]"
        end
    end
 
    local syllables_show = ""
 
    local function split_syllables(input)
         local syllables = {}
         local syllables = {}
         for syl in mw.ustring.gmatch(input, "([^%|]+)") do
         for syl in mw.ustring.gmatch(input, "([^%|]+)") do
                table.insert(syllables, syl)
            table.insert(syllables, syl)
         end
         end
         return syllables
         return syllables
end
    end
 
if #syllables > 0 then
    if #syllables > 0 then
syllables_show = "\n* "
        syllables_show = "\n* "
args_temp = { "rad" }
        args_temp = {"rad"}
for set = 1, #syllables do
        for set = 1, #syllables do
if set > 1 then
            if set > 1 then
table.insert(args_temp, "")
                table.insert(args_temp, "")
end
            end
local working_syllables = split_syllables(syllables[set])
            local working_syllables = split_syllables(syllables[set])
for syl = 1, #working_syllables do
            for syl = 1, #working_syllables do
table.insert(args_temp, working_syllables[syl])
                table.insert(args_temp, working_syllables[syl])
end
            end
end
        end
args_temp["delimiter"] = "–"
        args_temp["delimiter"] = "–"
 
syllables_show = syllables_show .. frame:expandTemplate{ title = "syllables", args = args_temp }
        syllables_show = syllables_show .. frame:expandTemplate {title = "syllables", args = args_temp}
end
    end
 
local to_Return = IPA_show .. homophones_show .. rhymes_show .. syllables_show
    local to_Return = IPA_show .. homophones_show .. rhymes_show .. syllables_show
 
if args["entry"] ~= nil then to_Return = mw.ustring.gsub(to_Return, "%[%[Category[^%]]+%]%]","") end
    if args["entry"] ~= nil then
        to_Return = mw.ustring.gsub(to_Return, "%[%[Category[^%]]+%]%]", "")
return to_Return
    end
 
    return to_Return
end
end


Navigation menu