localp={}localdefault_color='#F8F9FA'localcategories={party_not_in_list='[[رده:صفحههایی که از حزب سیاسی با حزب نامعلوم استفاده میکنند]]',shortname_not_in_list='[[رده:صفحههایی که از حزب سیاسی با نام کوتاه ناموجود استفاده میکنند]]',color_not_in_list='[[رده:صفحههایی که از حزب سیاسی با رنگ ناموجود استفاده میکنند]]',}localfunctioncreate_error(error_message)returnmw.ustring.format('<strong class="error">%s</strong>',error_message)endlocalfunctiongetFirstLetter(party)localindex=mw.ustring.sub(party,1,1)-- Set index for non-A-Z startsifmw.ustring.match(index,'%A')thenreturn'1'endreturnmw.ustring.upper(index)endlocalfunctionstripToNil(text)-- If text is a string, return its trimmed content, or nil if empty.-- Otherwise return text (which may, for example, be nil).iftype(text)=='string'thentext=mw.ustring.match(text,'(%S.-)%s*$')localdelink=require('Module:Delink')._delinktext=delink({text,wikilinks="target"})endreturntextend-- Example of having all the data - color and names - in one table. Requires one page to be edited instead of two when adding a new party.functionp._fetch(args)ifnotargs[1]thenreturncreate_error("پارامتر اول باید حاوی نام یک حزب باشد.")endifnotargs[2]thenreturncreate_error("پارامتر دوم باید حاوی نوع خروجی باشد.")endlocalparty=stripToNil(args[1])localout_type=stripToNil(args[2])ifout_type=='colour'thenout_type='color'endlocalindex=getFirstLetter(party)-- Load data from submodulelocaldata=mw.loadData('Module:Political party/'..index)localdata_all=data.fulllocalparty_alt=data.alternate[party]localparty_infoifparty_altthenifdata_all[party_alt]thenparty_info=data_all[party_alt]elseindex=getFirstLetter(party_alt)data=mw.loadData('Module:Political party/'..index)party_info=data.full[party_alt]endelseparty_info=data_all[party]end-- Check if database value exists-- * Not even in database - return given error or input-- * No color - return error-- * No shortname/abbrev - return first non-blank of abbrev->shortname->inputifnotparty_infothenifout_type=='color'thenreturnargs.errorordefault_colorelsereturnargs.errororpartyendendlocalreturn_value=party_info[out_type]ifreturn_value==""thenifout_type=='color'thenreturnargs.errororcreate_error("Value not in template. Please request that it be added.")elseifout_type=='abbrev'thenifparty_info.shortname~=""thenreturnparty_info.shortnameelsereturnpartyendelseifout_type=='shortname'thenifparty_info.abbrev~=""thenreturnparty_info.abbrevelsereturnpartyendelsereturnpartyendendifout_type=='color'andmw.ustring.find(return_value,'#')thenreturn_value=mw.ustring.gsub(return_value,'#','#')endreturnreturn_valueendfunctionp.fetch(frame)-- Initialise and populate variableslocalgetArgs=require("Module:Arguments").getArgslocalargs=getArgs(frame)ifargs['خطا']thenargs.error=args['خطا']endreturnp._fetch(args)endreturnp