Module:User:Mr. Stradivarius/Anagramator

-- 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