Module:English variant notice/sandbox

local p = {}local categoryHandler = require( 'Module:Category handler' ).mainlocal yesno = require('Module:Yesno')local mArguments = require('Module:Arguments')local nfunction p.main (frame)local fulltitle = frame:getParent():getTitle()local templatetitle = string.sub(fulltitle, 10)local title = mw.title.getCurrentTitle()if mw.title.equals(title, mw.title.makeTitle('Template', title.rootText)) then --if it is on the main template page, load docn = mArguments.getArgs(frame, {parentFirst = true})n.variant = n.variant or templatetitle --automatically use title generated from template nameif  n.doc ~= 'no' thenreturn frame:expandTemplate {title = 'English variant notice/documentation', args = n}endendreturn p._main (frame, templatetitle)endfunction p._main (frame, templatetitle)n = mArguments.getArgs(frame, {parentFirst = true})n.variant = n.variant or templatetitle --automatically use title generated from template namen.category = ''n.spelling_examples = n.spelling_examples or n['spelling examples']n.bid = not not n.id --bool of n.id, for making iupac and oxford not be added to the id if it doesn't exist--Generate the text if it isn't specifiedif not n.text thenp.modify_text ()p.base_text (frame)endp.cat ('Wikipedia articles that use '..n.variant)return p.style(frame)..(n.category or '')endfunction p.cat (category)category = string.format ('[[Category:%s]]', category)n.category = n.category..(categoryHandler{category, nocat = n.nocat, page = n.page, talk = category, template = category} or '')endfunction p.modify_text ()n.spelling = ''n.extravariant = ''n.extraguide = ''bOxford = yesno(n.Oxford)bIUPAC = yesno(n.IUPAC)chemtext = "; ''aluminium'', ''sulfur'', and ''caesium''"if bOxford thenn.spelling_examples = "''colour'', ''realize'', ''organization'', ''analyse''; note that '''-ize''' is used instead of -ise"p.cat ('Wikipedia articles that use Oxford spelling')if n.bid then n.id = n.id..n.Oxford endif bIUPAC thenn.extravariant = ' with [[Oxford spelling|Oxford]] and [[IUPAC]] spelling'n.spelling_examples= n.spelling_examples..chemtextp.IUPAC ()returnendn.extravariant = n.extravariant..' with [[Oxford spelling]]'returnelseif bIUPAC thenn.extravariant = ' with [[IUPAC]] spelling'n.spelling_examples = n.spelling_examples and n.spelling_examples..chemtext or "''aluminium'', ''sulfur'', and ''caesium''"p.IUPAC ()returnend--only if there are spelling examples, put 'has its own spelling conventions'if n.spelling_examples then n.spelling = ', which has its own spelling conventions' endendfunction p.IUPAC ()n.extraguide = ' and [[Wikipedia:Naming conventions (chemistry)|chemistry naming conventions]]'p.cat('Wikipedia articles that use IUPAC spelling')n.flag = 'no'if n.bid then n.id = n.id..'iupac' endendfunction p.base_text (frame)n.subjectspace = require('Module:Pagetype').main()n.spelling_examples = n.spelling_examples and string.format(' (%s)', n.spelling_examples) or ''n.terms = n[1] or n.termsn.terms = n.terms and string.format(' (including %s)', n.terms) or ''n.compare = n.compare and (n.compare..' ') or ''n.text = string.format([=[This %s is '''written in [[%s]]%s'''%s%s, and some terms that are used in it%s may be different or absent from %sother [[List of dialects of the English language|varieties of English]]. According to the [[Wikipedia:Manual of Style#National varieties of English|relevant style guide]]%s, this should not be changed without broad consensus.]=],n.subjectspace, n.variant, n.extravariant, n.spelling, n.spelling_examples, n.terms, n.compare, n.extraguide)endfunction p.style (frame)local sizeif yesno(n.small) then size = '30px'elseif n.size then size = n.sizeelse size = '50px'endif n.image thenif n.flag == nil or yesno(n.flag) thenn.image = string.format('[[File:%s|%s]]', n.image, size)else--check if the globe should be "color" instead of "colour"if yesno(n.color) thenn.image = string.format('[[File:Globe spelling color.png|%s]]', size)elsen.image = string.format('[[File:Globe spelling colour.svg|%s]]', size)endendendif n.form == 'editnotice' thenif n.bid then n.id = n.id..'editnotice' endn.expiry = n.expiry or 'indefinite'--categorize editnotice if specifiedif yesno(n.editnotice_cat) thenp.cat(string.format('Pages with editnotice %s editnotice', n.variant))endreturn frame:expandTemplate{title = 'editnotice', args = n}elselocal message_box = require('Module:Message box').mainif not n.image then n.image = 'none' endn['type'] = 'style'return message_box ('tmbox', n)endendreturn p