ผลต่างระหว่างรุ่นของ "มอดูล:User:Ans/ExpandTemplateContent"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Ans (คุย | ส่วนร่วม)
หน้าใหม่: local p = {} -- For passed as named template parameter that is going to be preprocessed. -- Since input text is assumed to has already been preprocessed, so '{', '}', and '<' are escaped -- to prevent them to be preprocessed. '[' is escaped to handle the case like '{{t1|a1=[[a}} -- -- Example: frame:preprocess('{{t1|a1='..escapeNamedTemplateParameter(s)..'}}') -- -- Note: This does not convert '=' to '{{=}}' -- local function escapeNamedTemplateParameter(s) r...
(ไม่แตกต่าง)

รุ่นแก้ไขเมื่อ 18:05, 22 กันยายน 2564

Documentation icon คู่มือการใช้งานมอดูล[สร้าง]
local p = {}

-- For passed as named template parameter that is going to be preprocessed.
-- Since input text is assumed to has already been preprocessed, so '{', '}', and '<' are escaped
-- to prevent them to be preprocessed.  '[' is escaped to handle the case like '{{t1|a1=[[a}}
--
--    Example: frame:preprocess('{{t1|a1='..escapeNamedTemplateParameter(s)..'}}')
--
-- Note: This does not convert '=' to '{{=}}'
--
local function escapeNamedTemplateParameter(s)
	return s:gsub('[{}<[]', '%1<!---->'):gsub('|', '{{!}}')
end

-- Suitable for passed as unnamed template parameter that is going to be preprocessed,
-- as it also convert '=' to '{{=}}'
--
--    Example: frame:preprocess('{{t1|'..escapeTemplateParameter(s)..'}}')
--
local function escapeTemplateParameter(s)
	return s:gsub('[{}<[]', '%1<!---->'):gsub('[|=]', {['|']='{{!}}', ['=']='{{=}}'})
end
local escapeUnnamedTemplateParameter = escapeTemplateParameter

function p.expand(frame)
	local i = 0
	local p = ''
	for k, v in ipairs(frame.args) do
		p = p..'|'..escapeUnnamedTemplateParameter(v)
		i = k
	end
	for k, v in ipairs(frame.args) do
		if type(k)=='number' then
			p = p..'|'..k..'='..escapeNamedTemplateParameter(v)
		end
	end
	return frame:expandTemplate {title='preprocessTemplateContent', args=frame.args}
end

return p