檢視模組:Interwiki的原始碼
←
模組: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
」。
導覽選單
個人工具
建立帳號
登入
associated-pages
模組
討論
English
視圖
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
特殊頁面
工具
連結至此的頁面
相關變更
頁面資訊