Module:Sandbox/isaacl/ExpandPageAbbreviation

-- For unit tests, see Module:Sandbox/isaacl/ExpandPageAbbreviation/tests

local me = { outputForAbbr = { } }

local config

-- if mw.loadData not supported, use require instead if mw.loadData then config = mw.loadData('Module:Sandbox/isaacl/ExpandPageAbbreviation/data') else config = require('Module:Sandbox/isaacl/ExpandPageAbbreviation/data') end

me.phraseForAbbr = config.phraseForAbbr

function me._expand(abbr) if me.outputForAbbr[abbr] ~= nil then return me.outputForAbbr[abbr] else local outputString if me.phraseForAbbr[abbr] == nil then outputString = string.format("%s", abbr) me.outputForAbbr[abbr] = outputString else me.outputForAbbr[abbr] = string.format("%s",               abbr, me.phraseForAbbr[abbr]) outputString = string.format("%s (%s)",               me.outputForAbbr[abbr], abbr) end return outputString end end -- function _expand

function me.expand(frame) local abbr = frame.args[1] return me._expand(abbr) end

return me