More actions
replace space character with underscore character |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
local arg = util.firstToUpper(string.gsub(frame.args[1]," ","_")) | local arg = util.firstToUpper(string.gsub(frame.args[1]," ","_")) | ||
local payload = { | local payload = { | ||
source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. | source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. arg, | ||
format = 'json' | format = 'json' | ||
} | } | ||
Line 19: | Line 19: | ||
end | end | ||
local data, errors = mw.ext.externalData.getExternalData(payload) | local data, errors = mw.ext.externalData.getExternalData(payload) | ||
if not errors then | if not errors then | ||
for _,page in ipairs(data) do | for _,page in ipairs(data) do | ||
Line 27: | Line 24: | ||
if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then | if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then | ||
table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n')) | table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n')) | ||
table.insert(out, frame:expandTemplate({title='SmallLink', args = { page['title'] } })) | |||
table.insert(out, frame:expandTemplate({title=':' .. page['title']})) | table.insert(out, frame:expandTemplate({title=':' .. page['title']})) | ||
table.insert(out, frame:preprocess('\n----')) | table.insert(out, frame:preprocess('\n----')) | ||
end | end |
Latest revision as of 22:23, 20 October 2025
local p = {}
local util = require('Module:Utility')
local url = mw.site.server .. mw.site.scriptPath
function p.category(frame)
local out = {}
local arg = util.firstToUpper(string.gsub(frame.args[1]," ","_"))
local payload = {
source = url .. '/api.php?action=query&format=json&generator=categorymembers&gcmlimit=max&gcmtitle=Category:' .. arg,
format = 'json'
}
local header_depth = '=='
if frame.args.header ~= nil then
for i=0,frame.args.header do
header_depth = header_depth .. '='
end
end
local data, errors = mw.ext.externalData.getExternalData(payload)
if not errors then
for _,page in ipairs(data) do
if (page['title'] ~= nil) then
if (page['title'] ~= frame.args[1]) and (string.find(page['title'],'Category:') == nil) then
table.insert(out, frame:preprocess('\n'.. header_depth .. page['title'] .. header_depth .. '\n'))
table.insert(out, frame:expandTemplate({title='SmallLink', args = { page['title'] } }))
table.insert(out, frame:expandTemplate({title=':' .. page['title']}))
table.insert(out, frame:preprocess('\n----'))
end
end
end
end
return table.concat(out)
end
return p