پودمان:Art pref/data

از ویکی تراث
نسخهٔ تاریخ ‏۱۲ مارس ۲۰۲۴، ساعت ۱۵:۱۲ توسط Admin (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «local title_object = mw.title.getCurrentTitle(); local content; local ret = {} if 10 ~= title_object.namespace then content = title_object:getContent() or ''; end if not content then return ret; end local start = content:find('{{ *تفضيلات مقالة[%s\n]*[|}]'); if start then local config_template = content:match ('%b{}', start); if not config_template then return ret; end local params_t = mw.text.split (config_temp...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)

توضیحات این پودمان می‌تواند در پودمان:Art pref/data/توضیحات قرار گیرد.

local title_object = mw.title.getCurrentTitle();
local content;
local ret = {}
if 10 ~= title_object.namespace then
	content = title_object:getContent() or '';
end

if not content then
	return ret;
end

local start = content:find('{{ *تفضيلات مقالة[%s\n]*[|}]');
if start then
	local config_template = content:match ('%b{}', start);

	if not config_template then
		return ret;
	end

	local params_t = mw.text.split (config_template:gsub ('^{{%s*', ''):gsub ('[%s\n]*}}$', ''), '[%s\n]*|[%s\n]*');
	table.remove (params_t, 1);

	for _, param in ipairs (params_t) do
		local k, v, t = param:match ('([^=]-)%s*=%s*(.+)');					-- <k> is the parameter name; <v> is parameter's assigned value
		if k then
			if k:find (':') then
				t, k = k:match ('([^:]-):(.+)');
			else
				t="عام"
			end
			if ret[t] then
				ret[t][k]=v
			else
				ret[t] = {[k]=v}
			end
		end
	end
end
return ret