Difference between revisions of "Module:Citation/CS1/Arguments"
< Module:Citation | CS1
Jump to navigation
Jump to search
test>Dragons flight |
m (29 revisions imported) |
||
| (24 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
c = {}; | c = {}; | ||
| − | exclude = { ['#'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['k'] = true }; | + | exclude = { ['#'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['k'] = true, ['v'] = true, ['list'] = true }; |
function c.build_whitelist( frame ) | function c.build_whitelist( frame ) | ||
| Line 24: | Line 24: | ||
list[w] = true; | list[w] = true; | ||
end | end | ||
| − | + | ||
| + | for s in source:gmatch( "selectone%(%s*args%s*,%s*{(.-)}" ) do | ||
| + | for w in s:gmatch( "%s*([^,]+)%s*" ) do | ||
| + | w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" ); | ||
| + | w = w:gsub( "%s*%.%.%s*i", "#" ); | ||
| + | w = w:gsub( "i%s*%.%.%s*", "#" ); | ||
| + | w = w:gsub( '"', '' ); | ||
| + | w = w:gsub( "'", '' ); | ||
| + | w = w:gsub('1(%D)', '#%1'); | ||
| + | w = w:gsub('1$', '#'); | ||
| + | w = w:match( "^%s*(.-)%s*$"); | ||
| + | list[w] = true; | ||
| + | end | ||
| + | end | ||
| + | |||
| + | title = mw.title.new( "Module:Citation/CS1/Configuration/sandbox" ); | ||
| + | source = title:getContent(); | ||
| + | for s in source:gmatch( "%sparameters%s*=%s{(.-)}" ) do | ||
| + | for w in s:gmatch( "%s*([^,]+)%s*" ) do | ||
| + | w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" ); | ||
| + | w = w:gsub( "%s*%.%.%s*i", "#" ); | ||
| + | w = w:gsub( "i%s*%.%.%s*", "#" ); | ||
| + | w = w:gsub( '"', '' ); | ||
| + | w = w:gsub( "'", '' ); | ||
| + | w = w:gsub('1(%D)', '#%1'); | ||
| + | w = w:gsub('1$', '#'); | ||
| + | w = w:match( "^%s*(.-)%s*$"); | ||
| + | list[w] = true; | ||
| + | end | ||
| + | end | ||
| + | |||
| + | cfg = require( "Module:Citation/CS1/Configuration/sandbox" ); | ||
| + | for k, v in pairs( cfg.aliases ) do | ||
| + | if type( v ) == 'table' then | ||
| + | for k2, v2 in pairs( v ) do | ||
| + | list[v2] = true; | ||
| + | list[v2:gsub("#", "")] = true; | ||
| + | end | ||
| + | else | ||
| + | list[v] = true; | ||
| + | list[v:gsub("#", "")] = true; | ||
| + | end | ||
| + | end | ||
| + | |||
local list2 = {}; | local list2 = {}; | ||
for k in pairs( list ) do | for k in pairs( list ) do | ||
Latest revision as of 12:00, 6 September 2020
Documentation for this module may be created at Module:Citation/CS1/Arguments/doc
c = {};
exclude = { ['#'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['k'] = true, ['v'] = true, ['list'] = true };
function c.build_whitelist( frame )
local title = mw.title.new( "Module:Citation/CS1/sandbox" );
local source = title:getContent();
local result = "whitelist = {<br />\n<br />\n";
local list = {};
for w in source:gmatch( "args%[(.-)%]" ) do
w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" );
w = w:gsub( "%s*%.%.%s*i", "#" );
w = w:gsub( "i%s*%.%.%s*", "#" );
w = w:gsub('"', '' );
w = w:gsub('1(%D)', '#%1');
w = w:gsub('1$', '#');
list[w] = true;
end
for w in source:gmatch( "args%.([%w%d_-]*)" ) do
w = w:gsub('1(%D)', '#%1');
w = w:gsub('1$', '#');
list[w] = true;
end
for s in source:gmatch( "selectone%(%s*args%s*,%s*{(.-)}" ) do
for w in s:gmatch( "%s*([^,]+)%s*" ) do
w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" );
w = w:gsub( "%s*%.%.%s*i", "#" );
w = w:gsub( "i%s*%.%.%s*", "#" );
w = w:gsub( '"', '' );
w = w:gsub( "'", '' );
w = w:gsub('1(%D)', '#%1');
w = w:gsub('1$', '#');
w = w:match( "^%s*(.-)%s*$");
list[w] = true;
end
end
title = mw.title.new( "Module:Citation/CS1/Configuration/sandbox" );
source = title:getContent();
for s in source:gmatch( "%sparameters%s*=%s{(.-)}" ) do
for w in s:gmatch( "%s*([^,]+)%s*" ) do
w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" );
w = w:gsub( "%s*%.%.%s*i", "#" );
w = w:gsub( "i%s*%.%.%s*", "#" );
w = w:gsub( '"', '' );
w = w:gsub( "'", '' );
w = w:gsub('1(%D)', '#%1');
w = w:gsub('1$', '#');
w = w:match( "^%s*(.-)%s*$");
list[w] = true;
end
end
cfg = require( "Module:Citation/CS1/Configuration/sandbox" );
for k, v in pairs( cfg.aliases ) do
if type( v ) == 'table' then
for k2, v2 in pairs( v ) do
list[v2] = true;
list[v2:gsub("#", "")] = true;
end
else
list[v] = true;
list[v:gsub("#", "")] = true;
end
end
local list2 = {};
for k in pairs( list ) do
if exclude[k] == nil then
table.insert( list2, k );
end
end
table.sort( list2 );
result = result .. "basic_arguments = {<br />\n";
for _, k in pairs( list2 ) do
if k:match( "#" ) == nil then
result = result .. " ['" .. k .. "'] = true," .. "<br />\n";
end
end
result = result .. "},<br /> \n<br /> \n";
result = result .. "numbered_arguments = {<br />\n";
for _, k in pairs( list2 ) do
if k:match( "#" ) ~= nil then
result = result .. " ['" .. k .. "'] = true," .. "<br />\n";
end
end
result = result .. "},<br /> \n";
result = result .. "};<br />\n<br />\nreturn whitelist;"
return result;
end
return c;