https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3AEscape Modul:Escape - Versionsgeschichte 2025-04-26T03:03:09Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.44.0-wmf.25 https://de.wikipedia.org/w/index.php?title=Modul:Escape&diff=202698707&oldid=prev Marcus Cyron: AZ: Die Seite wurde neu angelegt: local escape = { char = function(self, chr, args) args = args or {} local safe = args.safeChr or… 2020-08-11T20:42:48Z <p><a href="/wiki/Hilfe:Zusammenfassung_und_Quellen#Auto-Zusammenfassung" title="Hilfe:Zusammenfassung und Quellen">AZ</a>: Die Seite wurde neu angelegt: local escape = { char = function(self, chr, args) args = args or {} local safe = args.safeChr or…</p> <p><b>Neue Seite</b></p><div>local escape = {<br /> char = function(self, chr, args)<br /> args = args or {}<br /> local safe = args.safeChr or string.char(13)<br /> chr = tostring(chr or &#039;\\&#039;)<br /> self[1] = (&#039;%s0%%s%s&#039;):format(<br /> (&#039;%x%s%s&#039;):format(chr:byte(), safe, safe),<br /> (&#039;%s%x&#039;):format(safe, chr:byte())<br /> )<br /> if not self[self[1]] then<br /> self[self[1]] = {<br /> char = chr,<br /> text = (&#039;%s(.)&#039;):format(chr),<br /> undo = self[1]:format&#039;(%d+)&#039;<br /> }<br /> end<br /> return args.text and self:text(args.text)<br /> or args.undo and self:undo(args.undo, chr)<br /> or args.kill and self:kill(args.kill)<br /> or self<br /> end,<br /> exec = function(self, text, mode, newEscape)<br /> local target = self[self[1] or self:char() and self[1]]<br /> for v in text:gfind(target[mode]) do<br /> text = text:gsub(<br /> mode == &#039;text&#039; and<br /> (&#039;%s%s&#039;):format(target.char, v:gsub(&#039;%W&#039;, &#039;%%%1&#039;))<br /> or self[1]:format(v),<br /> mode == &#039;text&#039; and<br /> self[1]:format(v:byte())<br /> or (newEscape or &#039;&#039;) .. v:char()<br /> )<br /> end<br /> return text<br /> end,<br /> text = function(self, text)<br /> return self:exec(type(text) == &#039;table&#039; and text[1] or text, &#039;text&#039;)<br /> end,<br /> undo = function(self, text, newEscape)<br /> if type(text) == &#039;table&#039; then<br /> text, newEscape = unpack(text)<br /> end<br /> return self:exec(text, &#039;undo&#039;, newEscape)<br /> end,<br /> kill = function(self, text, chars, newEscape)<br /> if type(text) == &#039;table&#039; then<br /> text, chars, newEscape = unpack(text)<br /> end<br /> return self:undo(self:text(text):gsub(chars or &#039;&#039;, &#039;&#039;), newEscape)<br /> end<br /> }<br /> <br /> function escape.main(frame)<br /> local args, family = {}, {frame:getParent(), frame}<br /> for f = 1, 2 do<br /> for k, v in pairs(family[f] and family[f].args or {}) do<br /> args[k] = args[k] or v:match(&#039;^%s*(.-)%s*$&#039;)<br /> end<br /> end<br /> if args.mode == &#039;char&#039; then<br /> return escape:char(args.char or args[2], args)<br /> end<br /> return escape[args.mode](escape:char(args.char), args)<br /> end<br /> <br /> return escape</div> Marcus Cyron