Module:TemplateStarter: Difference between revisions
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode |
||
| Line 189: | Line 189: | ||
end | end | ||
return table.concat(templates, ", ") | return table.concat(templates, ", ") | ||
end | |||
-- Get creator fields for a specific template type | |||
function p.getCreatorFields(templateType) | |||
if not templateType or templateType == "" then | |||
return {} | |||
end | |||
local config = ConfigRepository.getConfig(templateType) | |||
return config.creatorFields or {} | |||
end | |||
-- Get field definitions for creator fields | |||
function p.getCreatorFieldDefinitions(templateType) | |||
if not templateType or templateType == "" then | |||
return {} | |||
end | |||
local creatorFields = p.getCreatorFields(templateType) | |||
local fieldDefinitions = {} | |||
for _, fieldKey in ipairs(creatorFields) do | |||
local fieldDef = ConfigRepository.pageCreatorFields[fieldKey] | |||
if fieldDef then | |||
fieldDefinitions[fieldKey] = fieldDef | |||
end | |||
end | |||
return fieldDefinitions | |||
end | |||
-- Replace placeholders in boilerplate text with user values | |||
function p.replacePlaceholders(text, values) | |||
if not text or not values then | |||
return text | |||
end | |||
local result = text | |||
for key, value in pairs(values) do | |||
if value and value ~= "" then | |||
result = result:gsub("%$" .. key .. "%$", value) | |||
end | |||
end | |||
return result | |||
end | |||
-- Generate template with placeholder replacement | |||
function p.generateTemplateWithValues(templateType, values) | |||
if not templateType or templateType == "" then | |||
return "Error: Template type is required" | |||
end | |||
-- Get base template | |||
local baseTemplate = p.generateTemplate(templateType) | |||
-- Get boilerplate and replace placeholders | |||
local config = ConfigRepository.getConfig(templateType) | |||
if config.boilerplate and config.boilerplate.intro then | |||
local processedIntro = p.replacePlaceholders(config.boilerplate.intro, values) | |||
-- Replace the boilerplate in the template | |||
baseTemplate = baseTemplate:gsub(config.boilerplate.intro, processedIntro) | |||
end | |||
return baseTemplate | |||
end | end | ||
return p | return p | ||