Module:Main article

-- local p = {}

function p.main(frame) local args = frame:getParent.args local ret = mw.html.create('div') :addClass('seealso')

-- list of all articles local params = {} -- total arguments counted counted local ttl = 0 for _, v in ipairs(args) do		ttl = ttl + 1 table.insert(params,v) end

-- main return string ret:wikitext('Main article'..(#params > 1 and 's' or '')..': ')

-- helper function local function link(article) article = string.gsub(article,'_',' ') article = mw.text.trim(article) -- replace anchors with section symbol if article:find('#',1,true) then local article_t = mw.text.split(article,'#') article_t = table.concat(article_t,' § ') -- article|alttext article = article..'|'..article_t end -- link article return ..article.. end

-- additional articles for i, v in ipairs(params) do		-- add article link if i 1 then ret:wikitext(link(v)) -- if last argument elseif i == ttl then -- only one argument, just add link if ttl == 1 then ret:wikitext(link(v)) -- otherwise finish with "and" else ret:wikitext(' and '..link(v)) end end

-- if more to come, add commas if i 2 then ret:wikitext(', ') end end

-- return finished string return ret end

return p