Module:Bad title suggestion
Revision as of 15:52, 11 October 2022 by Attorney David King (talk | contribs) (1 revision imported)
Documentation for this module may be created at Module:Bad title suggestion/doc
local getArgs = require("Module:Arguments").getArgs local p = {} function p.main(frame) local args = getArgs(frame) -- The invalid character, e.g. ">" or "}" local chr = args[1] -- The escaped bad title, e.g. "Foobar>" or "Foobar|text" local title = args[2] -- A pipe (|) as the invalid character is a special case; it is not -- escaped, so instead the module thinks it got two empty arguments -- and the title as the third argument. if chr == nil and title == nil then chr = "|" title = args[3] end if chr == nil or title == nil then return "" end -- Determine the suggested title by taking a prefix of the bad title -- up to the first invalid character. Only display the suggestion box -- if the page exists. local index = mw.ustring.find(title, mw.text.nowiki(chr), 1, true) if index == nil then return "" end local page = mw.title.new(mw.ustring.sub(title, 1, index - 1)) if page == nil or not page.exists then return "" end return '<div class="mw-parser-output">' .. frame:expandTemplate{ title = "Did you mean box", args = { page.fullText } } .. '</div>' end return p