нема опису редагування
starcitizen>Alistair3149 (Refactor templatestyles implementation) |
starcitizen>Alistair3149 Немає опису редагування |
||
| Рядок 249: | Рядок 249: | ||
end | end | ||
--- Returns a list with TemplateStyles found on page ' | --- Returns a list with TemplateStyles found on page 'pageName'. | ||
---@param templateName string | ---@param templateName string | ||
---@return table<string>[] | ---@return table<string>[] | ||
local function getTemplateStylesList( | local function getTemplateStylesList( pageName ) | ||
local content = mw.title.new( | local content = mw.title.new( pageName ):getContent() | ||
local | local templateStylesList = {} | ||
assert( content ~= nil, string.format( '%s does not exist', | assert( content ~= nil, string.format( '%s does not exist', pageName ) ) | ||
for styleName in string.gmatch( content, '<templatestyles src="(.[^"]+)"' ) do | for styleName in string.gmatch( content, '<templatestyles src="(.[^"]+)"' ) do | ||
| Рядок 266: | Рядок 266: | ||
end | end | ||
styleName = formatPageName( styleName ) | styleName = formatPageName( styleName ) | ||
table.insert( | table.insert( templateStylesList, {styleName=styleName} ) | ||
end | end | ||
templateStylesList = arr.unique( templateStylesList, function(x) return x.styleName end ) | |||
table.sort( | table.sort( templateStylesList, function(x, y) return x.styleName < y.styleName end ) | ||
return | return templateStylesList | ||
end | end | ||
| Рядок 551: | Рядок 551: | ||
---@param templateName string | ---@param templateName string | ||
---@param addCategories boolean | ---@param addCategories boolean | ||
---@param | ---@param templateStylesList table<string>[] @This is the list returned by getTemplateStylesList() | ||
---@return string | ---@return string | ||
local function formatTemplateStylesList( | local function formatTemplateStylesList( currentPageName, addCategories, templateStylesList ) | ||
local category = addCategories and '[[Category:Templates using TemplateStyles]]' or '' | local category = addCategories and '[[Category:Templates using TemplateStyles]]' or '' | ||
local res = {} | local res = {} | ||
for _, item in ipairs( | for _, item in ipairs( templateStylesList ) do | ||
table.insert( res, string.format( | table.insert( res, string.format( | ||
"<div role='note' class='hatnote'><div class=hatnote-container navigation-not-searchable'><span class='hatnote-icon metadata'>[[File:WikimediaUI-Palette.svg|14px|link=]]</span>'''%s''' invokes [[%s]] using [[Star Citizen:TemplateStyles|TemplateStyles]].</div></div>", | "<div role='note' class='hatnote'><div class=hatnote-container navigation-not-searchable'><span class='hatnote-icon metadata'>[[File:WikimediaUI-Palette.svg|14px|link=]]</span>'''%s''' invokes [[%s]] using [[Star Citizen:TemplateStyles|TemplateStyles]].</div></div>", | ||
| Рядок 565: | Рядок 565: | ||
end | end | ||
if # | if #templateStylesList > 0 then | ||
table.insert( res, category ) | table.insert( res, category ) | ||
end | end | ||