Movatterモバイル変換


[0]ホーム

URL:


跳转到内容
维基百科自由的百科全书
搜索

模組:Ilh/sandbox

维基百科,自由的百科全书
<Module:Ilh
这是Module:Ilh差异)的沙盒
模块文档[查看] [编辑] [历史] [清除缓存]
警告此模块sandbox被引用於約325,000個頁面
為了避免造成大規模的影響,所有對此模块sandbox的編輯應先於沙盒測試樣例上測試。
測試後無誤的版本可以一次性地加入此模块sandbox中,但是修改前請務必於討論頁發起討論。
模板引用數量會自動更新。

本模块为{{Internal link helper}}的Lua实现。

本模块支持通过传入Lua调用参数代替模板调用参数。

上述文档嵌入Module:Ilh/doc(编辑 |历史)
编者可以在本模块的沙盒(编辑 |差异)和测试样例(创建)页面进行实验。
请在/doc子页面中添加分类。本模块的子页面
localilh={}localgetArgslocalyesno=require('Module:Yesno')locallan=require('Module:Lan')locallangData=mw.loadData('Module:Ilh/data')--local frameArgslocalCOMMON_TAIL='</span>'localMODEL={frame_head='<span class="ilh-all %s" data-orig-title="%s" data-lang-code="%s" data-lang-name="%s" data-foreign-title="%s">',frame_tail=COMMON_TAIL,page_head='<span class="ilh-page">',page_tail=COMMON_TAIL,comment_head='<span class="noprint ilh-comment"><span class="ilh-paren">('..COMMON_TAIL,comment_tail='<span class="ilh-paren">)'..COMMON_TAIL..COMMON_TAIL,lang_head='<span class="ilh-lang">',lang_tail=COMMON_TAIL,colon='<span class="ilh-colon">:</span>',link_head='<span class="ilh-link">',link_body='[[:%s:%s|<span lang="%s" dir="auto">-{%s}-</span>]]',link_tail=COMMON_TAIL}localclazz_pageExist_framehead='ilh-blue'localTRA_CAT='[[Category:有蓝链却未移除内部链接助手模板的页面]]'functionilh.main(frame)ifnotgetArgsthengetArgs=require('Module:Arguments').getArgsendlocalargs=getArgs(frame)-- 使用{{#ifexist}}而不是Lua的exists来兼容MediaWiki的自动简繁重定向-- 见[[Special:PermaLink/85517269#不蓝不绿的绿链问题]]localexistsFunc=function(pageName)returnframe:callParserFunction('#ifexist',{pageName,'true','false'})endiflangData[args['lang-code']]==nilthenargs['lang']=mw.language.fetchLanguageName(args['lang-code'],mw.getContentLanguage():getCode())elseiflangData[args['lang-code']]['lang-hans']andlangData[args['lang-code']]['lang-hant']thenargs['lang']=lan._main({['zh-hans']=langData[args['lang-code']]['lang-hans'],['zh-hant']=langData[args['lang-code']]['lang-hant']},frame)elseiflangData[args['lang-code']]['lang']==nilthenargs['lang']=mw.language.fetchLanguageName(args['lang-code'],mw.getContentLanguage():getCode())elseargs['lang']=langData[args['lang-code']]['lang']endifnotargs['lang']orargs['lang']==''thenreturn'<span style="font-size:100%" class="error lang">錯誤:語言代碼「'..args['lang-code']..'」不存在</span>[[Category:內部連結助手模板語言代碼錯誤]]'endreturnilh._ilh(args,existsFunc)endfunctionilh._ilh(args,existsFunc)--frameArgs = getArgs(frame, {frameOnly=true})localcontext={}context["isMainPage"]=ilh.isMainPage()context["localPage"]=args[1]context["foreignPage"]=args[2]orargs[1]--如果{{{2}}}不传入的话context["displayName"]=args["d"]orargs[1]context["langCode"]=args["lang-code"]context["lang"]=args["lang"]context["nocat"]=yesno(args["nocat"],false)context["isExist"]=(args["$exist$"]andargs["$exist$"]==1)or(existsFunc(context["localPage"])=='true')localcurPage_obj=mw.title.getCurrentTitle()context["isNoCatWithNamespace"]=curPage_obj:inNamespaces(2,828)--User,Module--context["curPageNamespace"]=curPage_obj.namespacereturn(context["isMainPage"]andilh.onlyLink(context))orilh.functionLink(context)endfunctionilh.onlyLink(context)return(context["isExist"]andmw.ustring.format('[[%s|%s]]',context["localPage"],context["displayName"]))orcontext["displayName"]endfunctionilh.functionLink(context)context["_localPage"]=mw.ustring.gsub(context["localPage"],'"','&quot;')context["_foreignPage"]=mw.ustring.gsub(context["foreignPage"],'"','&quot;')localneed_cat=(notcontext["nocat"])and(notcontext["isNoCatWithNamespace"])--[[not (   context["curPageNamespace"]==2 --Useror context["curPageNamespace"]==828 --Module   )]]--mw.log(context["nocat"])--mw.log(context["curPageNamespace"])--mw.log(need_cat)localoutput_context={}table.insert(output_context,mw.ustring.format(MODEL.frame_head,(context["isExist"]andclazz_pageExist_framehead)or'',context["_localPage"],context["langCode"],context["lang"],context["_foreignPage"]))table.insert(output_context,MODEL.page_head)table.insert(output_context,mw.ustring.format('[[:%s|%s]]',context["localPage"],context["displayName"]))table.insert(output_context,MODEL.page_tail)ifcontext["isExist"]thenifneed_catthentable.insert(output_context,TRA_CAT)endelsetable.insert(output_context,MODEL.comment_head)table.insert(output_context,MODEL.lang_head)table.insert(output_context,context["lang"])table.insert(output_context,MODEL.lang_tail)table.insert(output_context,MODEL.colon)table.insert(output_context,MODEL.link_head)table.insert(output_context,mw.ustring.format(MODEL.link_body,context["langCode"],(context["foreignPage"]orcontext["localPage"]),context["langCode"],(context["foreignPage"]orcontext["localPage"])))table.insert(output_context,MODEL.link_tail)table.insert(output_context,MODEL.comment_tail)endtable.insert(output_context,MODEL.frame_tail)returntable.concat(output_context,"")end--以下需要更高效的实现--确定主页--使用mw信息获得主页名--使用language库获得本站默认语言代码(zh)来确定信息的对应语言,获得全主页名---因为其他zh分语言只有名,没有命名空间,可以识别出来,但麻烦--然后判断当前页和主页是否一致---计划做重定向判断,但没需要functionilh.isMainPage()localmainpage_msgobj=mw.message.new('Mainpage')mainpage_msgobj=mainpage_msgobj:inLanguage(mw.getContentLanguage():getCode())localmainPage_obj=mw.title.makeTitle(0,mainpage_msgobj:plain())localcurpage_obj=mw.title.getCurrentTitle()--local curpage_redirectFrom_obj=curpage_obj.redirectTarget--[[if curpage_redirectFrom_obj ~=false thencurpage_obj=curpage_redirectFrom_objend]]returnmw.title.equals(mainPage_obj,curpage_obj)--and curpage_obj.namespace==4endreturnilh
检索自“https://zh.wikipedia.org/w/index.php?title=Module:Ilh/sandbox&oldid=88138955
分类:​

[8]ページ先頭

©2009-2025 Movatter.jp