Module:Korean transliteration notice/sandbox explained

require('strict')

local p = local categoryHandler = require('Module:Category handler').mainlocal yesno = require('Module:Yesno')local mArguments = require('Module:Arguments')local n

-- Define functionslocal function cat(category) category = string.format('', category) n.category = n.category .. categoryend

local function RR mw.log('Inside RR function') n.variant = 'Revised Romanization of Korean' n.transliteration_examples = "Joseon, Tteokbokki, Pansori" cat('Wikipedia articles that use the Revised Romanization of Korean') if n.bid then n.id = n.id .. 'rr' endend

local function MR mw.log('Inside MR function') n.variant = 'McCune-Reischauer romanization of Korean' n.extraguide = ' and Korean naming conventions' cat('Wikipedia articles that use the McCune-Reischauer romanization of Korean') n.flag = 'no' if n.bid then n.id = n.id .. 'mr' endend

local function Yale mw.log('Inside Yale function') n.variant = 'Yale romanization of Korean' n.extraguide = ' and Korean naming conventions' cat('Wikipedia articles that use the Yale romanization of Korean') n.flag = 'no' if n.bid then n.id = n.id .. 'yale' endend

local function modify_text mw.log('Inside modify_text function') n.transliteration = n.extravariant = n.extraguide = local bRR = yesno(n.RR) local bMR = yesno(n.MR) local bYale = yesno(n.Yale)

if bRR then RR return elseif bMR then MR return elseif bYale then Yale return end

if n.transliteration_examples then n.transliteration = ', which has its own transliteration conventions' endend

local function base_text(frame) mw.log('Inside base_text function') n.subjectspace = require('Module:Pagetype').main n.transliteration_examples = n.transliteration_examples and string.format(' (e.g., %s)', n.transliteration_examples) or n.terms = n[1] or n.terms n.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 '''uses the [[%s]]%s%s%s and some terms that are used in it%s may be different or absent from %sor other romanizations of Korean. According to the relevant Korean style guide%s, this should not be changed without broad consensus. Per, use words commonly established in English over any transliteration if they exist.]=], n.subjectspace, n.variant, n.extravariant, n.transliteration, n.transliteration_examples, n.terms, n.compare, n.extraguide)end

local function style(frame) mw.log('Inside style function') local size if yesno(n.small) then size = '30px' elseif n.size then size = n.size else size = '50px' end if n.image then n.image = string.format('', n.image, size) end if n.form

'editnotice' then if n.bid then n.id = n.id .. 'editnotice' end n.expiry = n.expiry or 'indefinite' if yesno(n.editnotice_cat) then cat(string.format('Pages with the %s editnotice', n.variant)) end return frame:expandTemplate else local message_box = require('Module:Message box').main if not n.image then n.image = 'none' end n['type'] = 'style' return message_box('tmbox', n) endend

local function getBasePageName mw.log('Inside getBasePageName function') local title = mw.title.getCurrentTitle local basePageName = title.text

-- Handle specific cases if basePageName:find("McCune-Reischauer romanization of Korean") then basePageName = "McCune-Reischauer" elseif basePageName:find("Yale romanization of Korean") then basePageName = "Yale romanization" elseif basePageName:find("Revised Romanization of Korean") then basePageName = "Revised Romanization" else basePageName = basePageName:gsub(" romanization of Korean", "") basePageName = basePageName:gsub(" of Korean", "") end

return basePageNameendp.getBasePageName = getBasePageName

local function _main(frame, templatetitle) mw.log('Inside _main function') n = mArguments.getArgs(frame,) n.variant = n.variant or templatetitle -- automatically use title generated from template name n.category = n.transliteration_examples = n.transliteration_examples or n['transliteration examples'] n.bid = not not n.id

if not n.text then modify_text base_text(frame) end cat('Wikipedia articles that use the ' .. n.variant) return style(frame) .. (n.category or )endp._main = _main

-- Main functionfunction p.main(frame) mw.log('Inside main function') 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 doc n = mArguments.getArgs(frame,) n.variant = n.variant or templatetitle -- automatically use title generated from template name if n.doc ~= 'no' then return frame:expandTemplate end end return _main(frame, templatetitle)end

return p