跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
维基百科
搜索
搜索
外观
创建账号
登录
个人工具
创建账号
登录
查看“︁模块:Interwiki”︁的源代码
模块
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
外观
移至侧栏
隐藏
←
模块:Interwiki
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local familys = {} local siteCfg siteCfg = { lang = 'zh', family = 'wiki', familyToInterPrefix = { wiki = 'w', wiktionary = 'wikt', wikiquote = 'q', wikibooks = 'b', wikinews = 'n', wikisource = 's', wikiversity = 'v', wikivoyage = 'voy', }, getInterWikiFromWikiId = function (wikiId) if wikiId == 'mediawikiwiki' then return 'mw:' end local familyPrefix = '' local lang = wikiId for _, family in ipairs(familys) do if wikiId:sub(-#family) == family then lang = wikiId:sub(0, -#family-1) if family ~= siteCfg.family then familyPrefix = siteCfg.familyToInterPrefix[family] .. ':' end break end end if lang == siteCfg.lang then return familyPrefix end return familyPrefix .. lang .. ':' end } for family, _ in pairs(siteCfg.familyToInterPrefix) do table.insert(familys, family) end local function inArray(array, item) for _, this in ipairs(array) do if this == item then return true end end return false end local p = {} local getArgs = require('Module:Arguments').getArgs function p._main(args) local lang = args['lang'] or args['1'] or args[1] local family = args['family'] local wikiId = args['wiki'] if not wikiId then if not lang and not family then error('At least one of the parameters lang, family or wiki must be provided.') elseif family and not inArray(familys, family) then error('Unknown family: "' .. family .. '".') end wikiId = (lang or siteCfg.lang) .. (family or siteCfg.family) end local overrideTitle = args['title'] local entity = args['entity'] if not entity then if overrideTitle then entity = mw.wikibase.getEntityIdForTitle(overrideTitle) if not entity then error('The title "' .. overrideTitle .. '" isn\'t valid or there are no wikidata entity for this title yet.') end else entity = mw.wikibase.getEntityIdForCurrentPage() if not entity then error('There are no wikidata entity for this page yet.') end end end local remotePage = mw.wikibase.getSitelink(entity, wikiId) if remotePage then return '[[:' .. siteCfg.getInterWikiFromWikiId(wikiId) .. remotePage .. ']]' end return args.fallback or error('Can\'t found interwiki for wikiId ' .. wikiId .. ' for entity ' .. entity .. '.') end function p.main(frame) return p._main(getArgs(frame, { trim = true, removeBlanks = true })) end return p
该页面使用的模板:
模块:Interwiki/doc
(
查看源代码
)
返回
模块:Interwiki
。
搜索
搜索
查看“︁模块:Interwiki”︁的源代码
添加话题