יחידה:קצרמר

ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:קצרמר/תיעוד

local jsonlist = mw.text.jsonDecode(mw.title.new('קצרמר/list.json','Module'):getContent())
local defcode = {"{{קצרמר/קוד|",
				 "|נושא נוסף=",
				 "|מידע נוסף=",
				 "|NoCategory={{#שווה:{{מרחב השם}}||",
				 "}}}}"}
local errcode = '<div style="border:1px solid #aaa; background:#FFF0F5;">[[קובץ:Nuvola apps important.svg|25px|ימין|אזהרה]]דף ציטוט זה הוא ' ..
	'[[חב"דציטוט:קצרמר|קצרמר]], אך הוא סווג כקצרמר מסוג שאינו ב[[:קטגוריה:קצרמר|רשימת הקצרמרים]] ב[[חב"דציטוט]].' ..
	' נא לתקן ולבחור שם מהרשימה.</div>{{#תנאי:{{NAMESPACE}}||[[קטגוריה:קצרמר לא מסווג]]}}'
local catcode = {"'''<nowiki>{{</nowiki>[[:קטגוריה:קצרמר ",
                 "|קצרמר|",
                 "]]<nowiki>}}</nowiki>'''"}
local catstartcode = "{{כתב מחוק|'''<nowiki>{{</nowiki>[[:קטגוריה:קצרמר|קצרמר]]<nowiki>}}</nowiki>'''}} לא בשימוש:" ..
	" מותר רק קצרמר ספציפי: <nowiki>{{קצרמר|</nowiki>'''סוג הקצרמר'''<nowiki>}}</nowiki>{{הערה|קצרמר לא ספציפי" ..
	" יוצר [[:קטגוריה:שגיאות פרמטריות בתבנית קצרמר|שגיאה פרמטרית]]}}"

function main(frame)
	local parentargs = frame:getParent().args
	local entry = parentargs[1] or 'כללי'
	local param2 = parentargs[2] or ''
	local parammidanosaf = parentargs['מידע נוסף'] or ''
	local paramnocategory = parentargs['NoCategory'] or ''
	local paramnocategoryyes = parentargs['NoCategory'] or 'yes'
	local catanswer = mw.ustring.format('%s%s|%s%s', '{{קטגוריה בתבנית|:[[קטגוריה:קצרמר - כל הערכים]]|ללא קטגוריה={{#שווה:{{מרחב השם}}||',
		  paramnocategory, paramnocategoryyes, '}}}}')
	local ans = getparams(entry, jsonlist)
	if (not ans)
		then return frame:preprocess(errcode .. catanswer)
	end
	if (entry == 'כללי')
		then param2 = ''
		end
	if (entry == 'שונות')
		then param2 = ''
			 parammidanosaf = ''
		end
	return frame:preprocess(mw.ustring.format('%s%s%s%s%s%s|%s%s%s|%s%s', defcode[1], ans[2], defcode[2], param2, defcode[3],
	       parammidanosaf, ans[1], defcode[4], paramnocategory, paramnocategoryyes, defcode[5]) .. catanswer)
end

function getparams(entry, tab)
	local value = tab[entry]
	if (not value or type(value) == "table")
		then return value
		end
	return {value, entry}
end

function templatedata(frame)
	local ans = {}
	for k, v in pairs( jsonlist )
		do table.insert(ans, k)
		end
	table.sort(ans)
	return table.concat(ans, ', ')
end

function categories(frame)
	local ans = {}
	local param
	for k, v in pairs( jsonlist )
		do if (k ~= 'כללי')
		   then if (type(v) == "table")
				   then param = v[2]
				   else param = k
				   end
			    table.insert(ans, mw.ustring.format("%s%s%s%s%s", catcode[1], param, catcode[2], k, catcode[3]))
		   end
		end
	table.sort(ans)
	return frame:preprocess('<ol><li>' .. catstartcode .. '</li><li>' .. table.concat(ans, '</li><li>') .. '</li></ol>{{מטמון}}')
end

return {main = main, templatedata = templatedata, categories = categories}