<translate> This module is rated as [[<tvar name=1>Special:MyLanguage/Category:Modules in beta</tvar>|beta]], and is ready for widespread use.</translate> <translate> It is still new and should be used with some caution to ensure the results are as expected.</translate>
-- This implements [[Template:Tlg]]localgetArgs=require('Module:Arguments').getArgslocalyesno=require('Module:Yesno')localcfg=mw.loadData('Module:Template link general/config')localp={}-- Is a string non-empty?localfunction_ne(s)returns~=nilands~=""endlocalnw=mw.text.nowikilocalfunctionaddTemplate(s)locali,_=s:find(':',1,true)ifi==nilthenreturn'Template:'..sendlocalns=s:sub(1,i-1)ifns==''ormw.site.namespaces[ns]thenreturnselsereturn'Template:'..sendendlocalfunctiontrimTemplate(s)localneedle='template:'ifs:sub(1,needle:len()):lower()==needlethenreturns:sub(needle:len()+1)elsereturnsendendlocalfunctionlinkTitle(args)ifyesno(args.nolink)thenreturnargs[1]endlocaltitleObjlocaltitlePart='[['ifargs[1]then-- This handles :Page and other NStitleObj=mw.title.new(args[1],'Template')elsetitleObj=mw.title.getCurrentTitle()endtitlePart=titlePart..(titleObj~=nilandtitleObj.fullTextoraddTemplate(args[1]))localtextPart=args.alttextifnot_ne(textPart)theniftitleObj~=nilthentextPart=titleObj:inNamespace("Template")andargs[1]ortitleObj.fullTextelse-- redlinktextPart=args[1]endendifyesno(args.brace)thentextPart=nw('{{')..textPart..nw('}}')elseifyesno(args.braceinside)thentextPart=nw('{')..textPart..nw('}')endtitlePart=titlePart..'|'..textPart..']]'ifyesno(args.braceinside)thentitlePart=nw('{')..titlePart..nw('}')endreturntitlePartendfunctionp.main(frame)localargs=getArgs(frame,{trim=true,removeBlanks=false,wrappers={'Template:Tlg',},})returnp._main(args)endfunctionp._main(args)-- TemplateStyleslocaltemplateStyles={mono=false,nowrap=false,}localbold=yesno(args.bold)oryesno(args.boldlink)oryesno(args.boldname)localitalic=yesno(args.italic)oryesno(args.italics)localdontBrace=yesno(args.brace)oryesno(args.braceinside)localcode=yesno(args.code)oryesno(args.tt)localclasses={}-- Build the link partlocaltitlePart=linkTitle(args)ifboldthentitlePart="'''"..titlePart.."'''"endifyesno(args.subst)thenlocalsubstLink=cfg['subst-link']if_ne(substLink)andyesno(args['link subst'])thentitlePart='[['..substLink..'|subst]]:'..titlePartelsetitlePart='subst:'..titlePartendendifyesno(args.nowrapname)thentemplateStyles.nowrap=truetitlePart='<span class="nowrap">'..titlePart..'</span>'end-- Build the argumentslocaltextPart=""localtextPartBuffer=""locali=2whileargs[i]dolocalval=args[i]textPartBuffer=textPartBuffer..'|'ifval~=""thenifyesno(args.nowiki)then-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing upval=nw(mw.text.unstripNoWiki(val))endifitalicthenval='<span style="font-style:italic;">'..val..'</span>'endtextPart=textPart..textPartBuffer..valtextPartBuffer=""endi=i+1endlocaltagName=nillocalcss=nil-- final wraplocalret=titlePart..textPartifnotdontBracethenret=nw('{{')..ret..nw('}}')endifyesno(args.a)thenret=nw('*')..' '..retendifyesno(args.kbd)thentagName='kbd'endifyesno(args.mono)thentemplateStyles.mono=truetable.insert(classes,'monospaced')endlocalplaincode=yesno(args.plaincode)andnotcodeifcodeorplaincodetheniftagNamethen-- kbd == true && code == trueret=('<%s>%s</%s>'):format(tagName,ret,tagName)endtagName='code'ifplaincodethencss={background='transparent',border='none',}endendifyesno(args.nowrap)thentemplateStyles.nowrap=truetable.insert(classes,'nowrap')endiftagNameor#classes>0orcssthenlocalspan=mw.html.create(tagNameor'span'):addClass(table.concat(classes,' ')):wikitext(ret)ifcssthenspan:css(css)endret=tostring(span:allDone())endlocalts={}iftemplateStyles.monothentable.insert(ts,mw.getCurrentFrame():extensionTag{name='templatestyles',args={src='Template:Mono/styles.css'}})endiftemplateStyles.nowrapthentable.insert(ts,mw.getCurrentFrame():extensionTag{name='templatestyles',args={src='Template:Nowrap/styles.css'}})endifyesno(args.debug)thenret=ret..'\n<pre>'..mw.text.encode(mw.dumpObject(args))..'</pre>'endreturntable.concat(ts)..retendreturnp