Line 14: |
Line 14: |
| -------------------------------------------------------------------------------- | | -------------------------------------------------------------------------------- |
| --]] | | --]] |
− |
| + | |
| local data = mw.loadData('Module:Namespace detect/data') | | local data = mw.loadData('Module:Namespace detect/data') |
| local argKeys = data.argKeys | | local argKeys = data.argKeys |
| local cfg = data.cfg | | local cfg = data.cfg |
| local mappings = data.mappings | | local mappings = data.mappings |
− |
| + | |
| local yesno = require('Module:Yesno') | | local yesno = require('Module:Yesno') |
| local mArguments -- Lazily initialise Module:Arguments | | local mArguments -- Lazily initialise Module:Arguments |
| local mTableTools -- Lazily initilalise Module:TableTools | | local mTableTools -- Lazily initilalise Module:TableTools |
| local ustringLower = mw.ustring.lower | | local ustringLower = mw.ustring.lower |
− |
| + | |
| local p = {} | | local p = {} |
− |
| + | |
| local function fetchValue(t1, t2) | | local function fetchValue(t1, t2) |
| -- Fetches a value from the table t1 for the first key in array t2 where | | -- Fetches a value from the table t1 for the first key in array t2 where |
Line 38: |
Line 38: |
| return nil | | return nil |
| end | | end |
− |
| + | |
| local function equalsArrayValue(t, value) | | local function equalsArrayValue(t, value) |
| -- Returns true if value equals a value in the array t. Otherwise | | -- Returns true if value equals a value in the array t. Otherwise |
Line 49: |
Line 49: |
| return false | | return false |
| end | | end |
− |
| + | |
| function p.getPageObject(page) | | function p.getPageObject(page) |
| -- Get the page object, passing the function through pcall in case of | | -- Get the page object, passing the function through pcall in case of |
Line 64: |
Line 64: |
| end | | end |
| end | | end |
− |
| + | |
| -- Provided for backward compatibility with other modules | | -- Provided for backward compatibility with other modules |
| function p.getParamMappings() | | function p.getParamMappings() |
| return mappings | | return mappings |
| end | | end |
− |
| + | |
| local function getNamespace(args) | | local function getNamespace(args) |
| -- This function gets the namespace name from the page object. | | -- This function gets the namespace name from the page object. |
Line 110: |
Line 110: |
| return ustringLower(ret) | | return ustringLower(ret) |
| end | | end |
− |
| + | |
| function p._main(args) | | function p._main(args) |
| -- Check the parameters stored in the mappings table for any matches. | | -- Check the parameters stored in the mappings table for any matches. |
Line 128: |
Line 128: |
| return ret | | return ret |
| end | | end |
− |
| + | |
| function p.main(frame) | | function p.main(frame) |
| mArguments = require('Module:Arguments') | | mArguments = require('Module:Arguments') |
Line 135: |
Line 135: |
| return ret or '' | | return ret or '' |
| end | | end |
− |
| + | |
| function p.table(frame) | | function p.table(frame) |
| --[[ | | --[[ |
Line 142: |
Line 142: |
| -- needs to be excluded in the documentation. | | -- needs to be excluded in the documentation. |
| --]] | | --]] |
− |
| + | |
| -- Load modules and initialise variables. | | -- Load modules and initialise variables. |
| mTableTools = require('Module:TableTools') | | mTableTools = require('Module:TableTools') |
Line 150: |
Line 150: |
| and type(frame.args) == 'table' | | and type(frame.args) == 'table' |
| and yesno(frame.args.talk) -- Whether to use the talk parameter. | | and yesno(frame.args.talk) -- Whether to use the talk parameter. |
− |
| + | |
| -- Get the header names. | | -- Get the header names. |
| local function checkValue(value, default) | | local function checkValue(value, default) |
Line 161: |
Line 161: |
| local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace') | | local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace') |
| local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases') | | local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases') |
− |
| + | |
| -- Put the namespaces in order. | | -- Put the namespaces in order. |
| local mappingsOrdered = {} | | local mappingsOrdered = {} |
Line 173: |
Line 173: |
| end | | end |
| mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered) | | mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered) |
− |
| + | |
| -- Build the table. | | -- Build the table. |
| local ret = '{| class="wikitable"' | | local ret = '{| class="wikitable"' |
Line 196: |
Line 196: |
| return ret | | return ret |
| end | | end |
− |
| + | |
| return p | | return p |