fbpx
วิกิพีเดีย

มอดูล:Ilh

คู่มือการใช้งานมอดูล[สร้าง]
local ilh = {} local getArgs local yesno = require('Module:Yesno')  local args --local frameArgs local COMMON_TAIL='</span>' local MODEL={  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">('  ,comment_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 } local clazz_pageExist_framehead='ilh-blue' local TRA_CAT='[[Category:Interlanguage link template existing link]]'  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"]=mw.ustring.gsub(context["localPage"],'"','&quot;')  context["_foreignPage"]=mw.ustring.gsub(context["foreignPage"],'"','&quot;')  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(MODEL.frame_head ,  (context["isExist"] and clazz_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)  if context["isExist"] then  if need_cat then  table.insert(output_context,TRA_CAT)  end  else  table.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"] or context["localPage"])  ,context["langCode"]  ,(context["foreignPage"] or context["localPage"])  )  )  table.insert(output_context,MODEL.link_tail)  table.insert(output_context,MODEL.comment_tail)  end  table.insert(output_context,MODEL.frame_tail)   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)  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 

มอด, อการใช, งานมอด, สร, าง, ณอาจจะต, องการสร, างค, อการใช, งานของมอด, ลน, เข, ยนสามารถทำการทดลองได, กระบะทราย, สร, าง, ดลอก, และช, ดทดสอบ, สร, าง, ของมอด, ลน, โปรดเพ, มหมวดหม, ไปท, หน, าย, อย, หน, าย, อยของมอด, ลน, local, local, getargs, local, yesno, require. khumuxkarichnganmxdul srang khunxaccatxngkarsrangkhumuxkarichngankhxngmxdulniphuekhiynsamarththakarthdlxngidthikrabathray srang khdlxk aelachudthdsxb srang khxngmxdulnioprdephimhmwdhmuipthihnayxy doc hnayxykhxngmxdulnilocal ilh local getArgs local yesno require Module Yesno local args local frameArgs local COMMON TAIL lt span gt local MODEL frame head lt span class ilh all s data orig title s data lang code s data lang name s data foreign title s gt frame tail COMMON TAIL page head lt span class ilh page gt page tail COMMON TAIL comment head lt span class noprint ilh comment gt comment tail COMMON TAIL lang head lt span class ilh lang gt lang tail COMMON TAIL colon lt span class ilh colon gt lt span gt link head lt span class ilh link gt link body s s lt span lang s dir auto gt s lt span gt link tail COMMON TAIL local clazz pageExist framehead ilh blue local TRA CAT Category Interlanguage link template existing link 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 mw ustring gsub context localPage amp quot context foreignPage mw ustring gsub context foreignPage amp quot 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 MODEL frame head context isExist and clazz 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 if context isExist then if need cat then table insert output context TRA CAT end else table 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 or context localPage context langCode context foreignPage or context localPage table insert output context MODEL link tail table insert output context MODEL comment tail end table insert output context MODEL frame tail 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 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 ekhathungcak https th wikipedia org w index php title mxdul Ilh amp oldid 8406502, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม