ผลต่างระหว่างรุ่นของ "มอดูล:User:Ans/ExpandTemplateContent"
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
หน้าใหม่: 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
คู่มือการใช้งานมอดูล[สร้าง]
คุณอาจจะต้องการสร้างคู่มือการใช้งานของมอดูลนี้ ผู้เขียนสามารถทำการทดลองได้ที่กระบะทราย (สร้าง | คัดลอก) และชุดทดสอบ (สร้าง) ของมอดูลนี้ โปรดเพิ่มหมวดหมู่ไปที่หน้าย่อย /doc หน้าย่อยของมอดูลนี้ |
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