有兽档案馆
搜索
切换搜索
切换菜单
切换个人菜单
查看“Module:Ilh”的源代码
来自有兽档案馆
阅读
查看源代码
查看历史
模块
讨论
更多操作
←
Module:Ilh
因为以下原因,您没有权限编辑该页面:
您所请求的操作,仅限具有
注册用户
、
自动确认用户
、
管理员
、
界面管理员
、
优质编辑者
、
确认用户
、
巡查员
、
档案理事员
等
权限
的
用户
执行。
若您尚未登录有兽档案馆账号,请您
登录
有兽档案馆账号后操作。
您尚未完成电子邮件确认,因此操作受限,请尽快
完成电子邮件确认
。
若您无法完成前述手续,请通过适当渠道请求管理员或档案理事员协助。
您可以查看和复制此页面的源代码。
若您无权编辑本页面,您可以
提出编辑请求
,提请有权限者代为编辑。
local ilh = {} local getArgs local yesno = require('Module:Yesno') local args function ilh.main(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end args = getArgs(frame, {parentFirst=true}) return ilh._ilh(arg) end function ilh._ilh(arg) --frameArgs = getArgs(frame, {frameOnly=true}) local context={} context["isMainPage"]=ilh.isMainPage() context["localPage"]=args[1] context["foreignPage"]=args[2] or args[1] --如果{{{2}}}不传入的话 context["displayName"]=ilh.displayName(args) context["langCode"]=args["lang-code"] context["lang"]=args["lang"] context["nocat"]=yesno( args["nocat"] , false ) context["isExist"]= (args["$exist$"] and args["$exist$"]==1) or ilh.isExist(context["localPage"]) local curPage_obj=mw.title.getCurrentTitle() context["isNoCatWithNamespace"]=curPage_obj:inNamespaces(2,828) --User,Module --context["curPageNamespace"]=curPage_obj.namespace return (context["isMainPage"] and ilh.onlyLink(context)) or ilh.functionLink(context) end function ilh.onlyLink(context) return ( context["isExist"] and mw.ustring.format( '[[:%s|%s]]', context["localPage"], context["displayName"] ) ) or context["displayName"] end function ilh.functionLink(context) context["_localPage"]= (context["localPage"] == nil and {mw.ustring.gsub(context["foreignPage"],'"','"')} or {mw.ustring.gsub(context["localPage"],'"','"')})[1] context["_foreignPage"]=mw.ustring.gsub(context["foreignPage"],'"','"') local need_cat= (not context["nocat"]) and (not context["isNoCatWithNamespace"]) --[[not ( context["curPageNamespace"]==2 --User or context["curPageNamespace"]==828 --Module )]] --mw.log(context["nocat"]) --mw.log(context["curPageNamespace"]) --mw.log(need_cat) local output_context={} table.insert(output_context, mw.ustring.format('[[:%s|%s]]' , (context["localPage"] == nil and {context["foreignPage"]} or {context["localPage"]})[1], (context["displayName"] == nil and {((context["localPage"] == nil and {context["foreignPage"]} or {context["localPage"]})[1])} or {context["displayName"]})[1] ) ) return table.concat(output_context,"") end function ilh.displayName(args) local _d=args["d"] local _1=args["1"] local _3=args["3"] local dpN1=_3 or _d return (dpN1 and {dpN1} or {_1})[1] end --以下需要更高效的实现 --确定主页 --使用mw信息获得主页名 --使用language库获得本站默认语言代码(zh)来确定信息的对应语言,获得全主页名 ---因为其他zh分语言只有名,没有命名空间,可以识别出来,但麻烦 --然后判断当前页和主页是否一致 ---计划做重定向判断,但没需要 function ilh.isMainPage() local mainpage_msgobj=mw.message.new('Mainpage') mainpage_msgobj=mainpage_msgobj:inLanguage(mw.getContentLanguage():getCode()) local mainPage_obj=mw.title.makeTitle(0,mainpage_msgobj:plain()) local curpage_obj=mw.title.getCurrentTitle() --local curpage_redirectFrom_obj=curpage_obj.redirectTarget --[[if curpage_redirectFrom_obj ~=false then curpage_obj=curpage_redirectFrom_obj end]] return mw.title.equals(mainPage_obj,curpage_obj) --and curpage_obj.namespace==4 end --确定页面存在 ---exists是高开销方法,需要更高效的实现 --带保护的包装方法 --由于exists和解析器函数ifexist都是高开销方法 --而ifexist达到限制时默认返回结果为false的操作 --而exists会直接抛出错误而中断执行 --所以将相应调用包裹,压制exists的抛错,按照ifexist的理念,返回false --正常情况下则一切正常 function ilh.isExist(pageName) do return true end local execStatus,result=pcall(ilh._isExist,pageName) if execStatus then return result else return false end end --真实方法 function ilh._isExist(pageName) local localPage_obj=mw.title.makeTitle(0,pageName) return localPage_obj.exists end --end return ilh
该页面使用的模板:
Module:Arguments
(
查看源代码
)
Module:Documentation
(
查看源代码
)
Module:Fullurl
(
查看源代码
)
Module:Ilh
(
查看源代码
)
Module:Ilh/doc
(
查看源代码
)
Module:No globals
(
查看源代码
)
Module:Page name
(
查看源代码
)
Module:Yesno
(
查看源代码
)
返回
Module:Ilh
。