יחידה:אוצר ישראל/לוח מפתחות

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

local function indexLinks(frame)
	local args = frame:getParent().args

	-- local ordered_args = {}
	
	-- for k, v in ipairs(args) do
	--     table.insert(ordered_args, {k, v})
	-- end
	
	-- table.sort(ordered_args)
	
	local out = ''
	local dash_repl = ''
	for idx, arg in ipairs(args) do
	    -- local arg = ordered_args[i]
	    -- הפיכת שורורת חדשות ורווחים מיותרים לרווח אחד
	    arg = string.gsub(arg, "%s+", " ")
	    -- מחיקת רווחים מכל סוג בתחילת המחרוזת ובסופהּ
	    arg = string.gsub(arg, "^%s+", "")
		arg = string.gsub(arg, "%s+$", "")
	    -- שימוש בקו מפריד תקין
	    arg = string.gsub(arg, "^-", "–")
	    local target = string.gsub(arg, "^– *", dash_repl)
	    if (string.find(arg, "^–") == nil) then
	    	-- חיפוש סוגר
		    local match_start, match_end = string.find(arg, " ?%(")
		    if (match_start == nil) then
		    	-- אחרת, חיפוש פסיק
		    	match_start, match_end = string.find(arg, ",")
		    end
		    -- אחרת המחרוזת כולה
		    dash_repl = string.sub(arg, 1, match_start)
		    if (match_start == nil) then
		    	-- לו מחרנו במחרוזת כולה, אז יש לשרשר פסיק ורווח
		    	dash_repl = dash_repl .. ","
		    end
		    -- לצד פסיק, תמיד יש להוסיף רווח
		    dash_repl = string.gsub(dash_repl, ",", ", ")
		    -- הסרת רווחים מיותרים
		    dash_repl = string.gsub(dash_repl, " +", " ")
	    end
	    -- link = "{{אוצר ישראל/קישור|" + target + "|" + arg + "}}"
	    link = frame:expandTemplate{
	    	title = 'אוצר ישראל/קישור',
	    	args = { target, arg }
	    }
	    if (idx == 1) then
			out = out .. link
		else
			out = out .. "; " .. link
	    end
	end
	return out
end

return {
	indexLinks = indexLinks,
	['מפתחות'] = indexLinks
}