Module:User:Mr. Stradivarius/Anagramator
Appearance
-- This module takes text and puts the letters of all the words in random
-- order. You probably shouldn't use it in articles.
local mRandom = require('Module:Random')
local lang = mw.language.getContentLanguage()
local p = {}
function p._main(text)
text = mw.ustring.gsub(text, '%f[^%s\0]%w+%f[%s\0]', function (s)
local isFirstCapitalized = mw.ustring.find(s, '^%u%l*$')
s = mRandom.main('list', mw.text.split(s, '')) -- Make an array of characters, randomize it, and concatenate the result.
if isFirstCapitalized then
s = mw.ustring.lower(s)
s = lang:ucfirst(s)
end
return s
end)
return text
end
function p.main(frame)
local text = frame.args[1]
text = mw.text.trim(text)
return p._main(text)
end
return p