localgetArgs=require('Module:Arguments').getArgslocalp={}localdemo=function(s)return'<'..string.sub(s,2,-8)..'</span>'end-- Protect against sortkey nesting.-- Example: {{sort|{{dts|2013|07|07}}|{{dts|1990|12|01}}}}localencode=function(s)return(string.find(s,"sortkey")orstring.find(s,"data-sort-value"))and""ormw.text.encode(s)endfunctionp._name(args)localsortkey=encode(((args[4]orargs.sortor'')~='')and(args[4]orargs.sort)or((args[2]orargs.lastor'{{{last}}}')..', '..(args[1]orargs.firstor'{{{first}}}')))localspan=(args[1]orargs.firstor'{{{first}}}')..' '..(args[2]orargs.lastor'{{{last}}}')if((args.nolinkor'')=='')and((args[1]orargs.firstor'')..(args[2]orargs.lastor'')..(args.dabor'')~='-')thenif(args[3]orargs.linkor'')~=''thenspan=(args[3]orargs.link)..'|'..spanelseif(args.dabor'')~=''thenspan=span..' ('..args.dab..')|'..spanendspan='[['..span..']]'endlocalcat=(mw.title.getCurrentTitle().namespace==0andnotargs.demo)and'[[Category:Articles with hCards]]'or''span='<span data-sort-value="'..sortkey..'"><span class="vcard"><span class="fn">'..span..'</span></span></span>'return(args.demoanddemo(span)orspan)..catendfunctionp._sort(args)localspan='<span data-sort-value="'..encode((args[1]or'{{{1}}}')..' !')..'">'..(args[2]or('[['..(args[1]or'{{{1}}}')..']]'))..'</span>'returnargs.demoanddemo(span)orspanend-- {{sortname}}p.name=function(frame)returnp._name(getArgs(frame,{removeBlanks=false}))end-- {{sort}}p.sort=function(frame)returnp._sort(getArgs(frame,{removeBlanks=false}))endreturnp