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 '\\')<br />
self[1] = ('%s0%%s%s'):format(<br />
('%x%s%s'):format(chr:byte(), safe, safe),<br />
('%s%x'):format(safe, chr:byte())<br />
)<br />
if not self[self[1]] then<br />
self[self[1]] = {<br />
char = chr,<br />
text = ('%s(.)'):format(chr),<br />
undo = self[1]:format'(%d+)'<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 == 'text' and<br />
('%s%s'):format(target.char, v:gsub('%W', '%%%1'))<br />
or self[1]:format(v),<br />
mode == 'text' and<br />
self[1]:format(v:byte())<br />
or (newEscape or '') .. v:char()<br />
)<br />
end<br />
return text<br />
end,<br />
text = function(self, text)<br />
return self:exec(type(text) == 'table' and text[1] or text, 'text')<br />
end,<br />
undo = function(self, text, newEscape)<br />
if type(text) == 'table' then<br />
text, newEscape = unpack(text)<br />
end<br />
return self:exec(text, 'undo', newEscape)<br />
end,<br />
kill = function(self, text, chars, newEscape)<br />
if type(text) == 'table' then<br />
text, chars, newEscape = unpack(text)<br />
end<br />
return self:undo(self:text(text):gsub(chars or '', ''), 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('^%s*(.-)%s*$')<br />
end<br />
end<br />
if args.mode == 'char' 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