Module:Contentious topics/aware

local p = {} local getArgs = require('Module:Arguments').getArgs

function p.detect(frame) local title local args = getArgs(frame) if args.testTitle then title = mw.title.new(args.testTitle) else title = mw.title.getCurrentTitle end local content = title:getContent or '' local codes = string.match(content, "{{%s-[cC]ontentious [tT]opics/[aA]ware%s-|([^}]-)}}") local shortcutCodes = string.match(content, "{{%s-[cC][tT]/[aA]ware%s-|([^}]-)}}") local dsCodes = string.match(content, "{{%s-D[sS]/[aA]ware%s-|([^}]-)}}") if (not codes) and (not dsCodes) and (not shortcutCodes) then return end local text if ( codes ) then text = p._listToText(frame, mw.text.split(codes, "|")) elseif ( dsCodes ) then text = p._listToText(frame, mw.text.split(dsCodes, "|")) else text = p._listToText(frame, mw.text.split(shortcutCodes, "|")) end return frame:preprocess(		" It is not necessary to notify this user about the following topics being contentious topics:"		..text..		"\n The user has indicated that they are already aware using the template on their talk page. "	) end

function p.listToText(frame) return p._listToText(frame, getArgs(frame)) end

function p._listToText(frame, t)	local new = {} local t = require('Module:TableTools').compressSparseArray(t) for i,v in ipairs(t) do		table.insert(new, frame:expandTemplate{title = 'Contentious_topics/list', args = {["scope"] = v}}) end return '\n*'..table.concat(new, '\n*') end

return p