请输入您要查询的百科知识:

 

词条 Module:ArbCaseAlias
释义

local me = { }

-- mw.loadData doesn't support loading data that has function type, so use require

local config = require('Module:ArbCaseAlias/data')

local function sortByLastPart(a, b)

local lastPartPattern = '([^-]+)$'

local aLastPart = string.match(a, lastPartPattern)

local bLastPart = string.match(b, lastPartPattern)

return tonumber(aLastPart) < tonumber(bLastPart)

end

function me.luaListCases(args)

local outputBuffer = { }

local primaryCategories = { }

for primaryCategory, caseInfoForCategory in pairs(config.arbCaseAliasInfo.caseInfoFor) do

-- skip test year 1000

if (primaryCategory ~= '1000') then

table.insert(primaryCategories, primaryCategory)

end

end

table.sort(primaryCategories)

for index, primaryCategory in pairs(primaryCategories) do

table.insert(outputBuffer, '* ' .. primaryCategory .. '\')

local outputForCaseAlias = { }

local caseAliases = { }

for caseName, caseInfo in pairs(config.arbCaseAliasInfo.caseInfoFor[primaryCategory]) do

outputForCaseAlias[caseInfo.byYear] = '** ' .. caseInfo.byYear .. ' — ' .. caseName .. '\'

table.insert(caseAliases, caseInfo.byYear)

end

table.sort(caseAliases, sortByLastPart)

for caseAliasIndex, caseAlias in pairs(caseAliases) do

table.insert(outputBuffer, outputForCaseAlias[caseAlias])

end

end

return table.concat(outputBuffer)

end

function me.listCases(frame)

local args = require('Module:Arguments').getArgs(frame)

return me.luaListCases(args) or

end

function me.luaMain(args)

local alias = args[1] or

local aliasFor = { }

for format, normalizer in pairs(config.arbCaseAliasInfo.normalizeAlias) do

local normalizedAlias = normalizer(alias)

if (normalizedAlias ~= nil) then

aliasFor[format] = normalizedAlias

end

end -- loop over normalizers

    local primaryCategory = config.arbCaseAliasInfo.extractPrimaryKey(alias)    if (primaryCategory == nil) then    	return alias    end
    if (config.arbCaseAliasInfo.caseInfoFor[primaryCategory] == nil) then    	return alias    end

for caseName, caseInfo in pairs(config.arbCaseAliasInfo.caseInfoFor[primaryCategory]) do

for format, caseAlias in pairs(caseInfo) do

if (aliasFor[format] == caseAlias) then

return caseName

end

end -- loop over different case aliases

end -- loop over cases for given primary category

-- failed to find a match

return alias

end

function me.main(frame)

local args = require('Module:Arguments').getArgs(frame)

return me.luaMain(args) or

end

return me

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/21 15:34:17