<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://calcwiki.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AUser%3AQinyongr%2F1%2FTemplate%3ADelete</id>
	<title>Module:User:Qinyongr/1/Template:Delete - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://calcwiki.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AUser%3AQinyongr%2F1%2FTemplate%3ADelete"/>
	<link rel="alternate" type="text/html" href="https://calcwiki.org/index.php?title=Module:User:Qinyongr/1/Template:Delete&amp;action=history"/>
	<updated>2026-04-06T13:55:54Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://calcwiki.org/index.php?title=Module:User:Qinyongr/1/Template:Delete&amp;diff=4373&amp;oldid=prev</id>
		<title>Qinyongr：​创建页面，内容为“local data = require( &#039;Module:Template:Delete/data&#039; )  local z = {}  function extractAliases( item )     allnames = { item[1] }     for j, alias in ipairs( item[2] )...”</title>
		<link rel="alternate" type="text/html" href="https://calcwiki.org/index.php?title=Module:User:Qinyongr/1/Template:Delete&amp;diff=4373&amp;oldid=prev"/>
		<updated>2016-02-17T08:45:23Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“local data = require( &amp;#039;Module:Template:Delete/data&amp;#039; )  local z = {}  function extractAliases( item )     allnames = { item[1] }     for j, alias in ipairs( item[2] )...”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local data = require( &amp;#039;Module:Template:Delete/data&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
local z = {}&lt;br /&gt;
&lt;br /&gt;
function extractAliases( item )&lt;br /&gt;
    allnames = { item[1] }&lt;br /&gt;
    for j, alias in ipairs( item[2] ) do&lt;br /&gt;
        table.insert( allnames, alias )&lt;br /&gt;
    end&lt;br /&gt;
    return allnames&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function extractShortDesc( item )&lt;br /&gt;
    pieces = {}&lt;br /&gt;
    for m in mw.text.trim( item[4] ):gmatch( &amp;#039;%!%(.-%)%!&amp;#039; ) do&lt;br /&gt;
        table.insert( pieces, m:sub( 3, -3 ) )&lt;br /&gt;
    end&lt;br /&gt;
    return table.concat( pieces )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function desc( frame, name, short )&lt;br /&gt;
    name = mw.text.trim( name ):upper()&lt;br /&gt;
    wt = {}&lt;br /&gt;
    for i, item in ipairs( data ) do&lt;br /&gt;
        if name == &amp;#039;&amp;#039; or #name == 1 and item[1]:sub( 1, 1 ) == name or item[1] == name then&lt;br /&gt;
            if short then&lt;br /&gt;
                para = extractShortDesc( item )&lt;br /&gt;
                if para ~= &amp;#039;&amp;#039; then&lt;br /&gt;
                    table.insert( wt, para )&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                allnames = extractAliases( item )&lt;br /&gt;
                para = item[4]:gsub( &amp;#039;%!%(.-%)%!&amp;#039;, function( m ) return m:sub( 3, -3 ) end )&lt;br /&gt;
                tinfo = item[5]&lt;br /&gt;
                if tinfo == nil then&lt;br /&gt;
                    tusage = {}&lt;br /&gt;
                    for k, aname in ipairs( allnames ) do&lt;br /&gt;
                        table.insert( tusage, &amp;#039;{{tl|d|&amp;#039; .. aname .. &amp;#039;}}&amp;#039; )&lt;br /&gt;
                    end&lt;br /&gt;
                    tinfo = &amp;#039;使用模板&amp;#039; .. mw.text.listToText( tusage, &amp;#039;、&amp;#039;, &amp;#039;或&amp;#039; ) .. &amp;#039;。&amp;#039;&lt;br /&gt;
                end&lt;br /&gt;
                snippet = &amp;#039;; {{anchor|&amp;#039; .. table.concat( allnames, &amp;#039;|&amp;#039; ) .. &amp;#039;}} &amp;#039; .. item[1] .. &amp;#039;. &amp;#039; .. item[3] .. &amp;#039;\n&amp;#039; .. para .. &amp;#039;\n* &amp;#039; .. tinfo&lt;br /&gt;
                table.insert( wt, snippet )&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if short then&lt;br /&gt;
        return table.concat( wt, &amp;#039;\n&amp;#039; )&lt;br /&gt;
    else&lt;br /&gt;
        return frame:preprocess( table.concat( wt, &amp;#039;\n&amp;#039; ) )&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function z.desc( frame )&lt;br /&gt;
    return desc( frame, frame.args[1] )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function z.shortDesc( frame )&lt;br /&gt;
    return desc( frame, frame.args[1], true )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function z.reasons( frame )&lt;br /&gt;
    wt = {}&lt;br /&gt;
    for i, item in ipairs( data ) do&lt;br /&gt;
        allnames = extractAliases( item )&lt;br /&gt;
        table.insert( wt, &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039; .. mw.text.listToText( allnames, &amp;#039;、&amp;#039;, &amp;#039;或&amp;#039; ) .. &amp;#039;&amp;lt;td title=&amp;quot;&amp;#039; .. extractShortDesc( item ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. item[3] .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; )&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;#039;&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;#039; .. table.concat( wt ) .. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function z.input( frame )&lt;br /&gt;
    if frame.args.parent then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        args = frame.args&lt;br /&gt;
    end&lt;br /&gt;
    -- precache&lt;br /&gt;
    map = {}&lt;br /&gt;
    for i, item in ipairs( data ) do&lt;br /&gt;
        map[item[1]:lower()] = i&lt;br /&gt;
        for j, alias in ipairs( item[2] ) do&lt;br /&gt;
            map[alias:lower()] = i&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- parse&lt;br /&gt;
    i = 1&lt;br /&gt;
    rows = {}&lt;br /&gt;
    pretext = {}&lt;br /&gt;
    while i &amp;lt; 10 do&lt;br /&gt;
        arg = args[i]&lt;br /&gt;
        if arg and map[mw.text.trim( arg:lower() )] then&lt;br /&gt;
            item = data[map[mw.text.trim( arg:lower() )]]&lt;br /&gt;
            if frame.args.reasoncode then&lt;br /&gt;
                return item[1]&lt;br /&gt;
            end&lt;br /&gt;
            title = mw.title.getCurrentTitle()&lt;br /&gt;
            checkfunc = item[6]&lt;br /&gt;
            if checkfunc then&lt;br /&gt;
                check = checkfunc( title )&lt;br /&gt;
            else&lt;br /&gt;
                check = nil&lt;br /&gt;
            end&lt;br /&gt;
            -- special case for F1&lt;br /&gt;
            rowsuffix2 = &amp;#039;&amp;#039;&lt;br /&gt;
            deletesuffix = &amp;#039;&amp;#039;&lt;br /&gt;
            if item[1] == &amp;#039;F1&amp;#039; or item[1] == &amp;#039;F5&amp;#039; then&lt;br /&gt;
                i = i + 1&lt;br /&gt;
                if args[i] then&lt;br /&gt;
                    img = mw.text.trim( args[i] )&lt;br /&gt;
                else&lt;br /&gt;
                    img = nil&lt;br /&gt;
                end&lt;br /&gt;
                if img then&lt;br /&gt;
                    imgtitle = mw.title.new( img, &amp;#039;Media&amp;#039; )&lt;br /&gt;
                else&lt;br /&gt;
                    imgtitle = nil&lt;br /&gt;
                end&lt;br /&gt;
                if imgtitle and imgtitle.exists then&lt;br /&gt;
                    table.insert( pretext, &amp;#039;[[File:&amp;#039; .. imgtitle.text .. &amp;#039;|64px|right|保留檔案]]&amp;#039; )&lt;br /&gt;
                    deletesuffix = &amp;#039;：[[File:&amp;#039; .. imgtitle.text .. &amp;#039;]]&amp;#039;&lt;br /&gt;
                else&lt;br /&gt;
                    if check then&lt;br /&gt;
                        rowsuffix2 = &amp;#039;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;為方便管理員檢查，請加上保留檔案的名稱。&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
                    else&lt;br /&gt;
                        check = &amp;#039;為方便管理員檢查，請加上保留檔案的名稱。&amp;#039;&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if check then&lt;br /&gt;
                rowsuffix = &amp;#039;&amp;lt;br&amp;gt;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; .. check .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
            else&lt;br /&gt;
                if frame.args.deletelink then&lt;br /&gt;
                    return &amp;#039;[[WP:CSD#&amp;#039; .. item[1] .. &amp;#039;|CSD &amp;#039; .. item[1] .. &amp;#039;]]：&amp;#039; .. item[3] .. deletesuffix&lt;br /&gt;
                end&lt;br /&gt;
                rowsuffix = args.cat or args.cate or args.category or ( &amp;#039;[[Category:快速删除候选|&amp;#039; .. ( item[7] or &amp;#039;速&amp;#039; ) .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
            end&lt;br /&gt;
            row = &amp;#039;* &amp;lt;span id=&amp;quot;speedy-delete-&amp;#039; .. item[1] .. &amp;#039;&amp;quot; title=&amp;quot;&amp;#039; .. extractShortDesc( item ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. item[3] .. &amp;#039;（[[WP:CSD#&amp;#039; .. item[1] .. &amp;#039;|CSD &amp;#039; .. item[1] .. &amp;#039;]]）&amp;#039; .. rowsuffix .. rowsuffix2&lt;br /&gt;
            table.insert( rows, row )&lt;br /&gt;
        elseif arg and mw.text.trim( arg ) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            if frame.args.reasoncode then&lt;br /&gt;
                return &amp;#039;&amp;#039;&lt;br /&gt;
            end&lt;br /&gt;
            -- try to read it as a title&lt;br /&gt;
            title = mw.title.new( mw.text.trim( arg ) )&lt;br /&gt;
            cat = args.cat or args.cate or args.category or &amp;#039;[[Category:快速删除候选|速]]&amp;#039;&lt;br /&gt;
            if title and title.exists then&lt;br /&gt;
                if frame.args.deletelink then&lt;br /&gt;
                    return &amp;#039;[[WP:CSD|CSD]]：[[:&amp;#039; .. arg .. &amp;#039;]]&amp;#039;&lt;br /&gt;
                end&lt;br /&gt;
                table.insert( rows, &amp;#039;* &amp;#039; .. cat .. &amp;#039;[[:&amp;#039; .. arg .. &amp;#039;]]&amp;#039; )&lt;br /&gt;
            else&lt;br /&gt;
                if frame.args.deletelink then&lt;br /&gt;
                    return &amp;#039;[[WP:CSD|CSD]]：&amp;#039; .. arg&lt;br /&gt;
                end&lt;br /&gt;
                table.insert( rows, &amp;#039;* &amp;#039; .. cat .. arg )&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    end&lt;br /&gt;
    if frame.args.deletelink then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    if #rows &amp;gt; 0 then&lt;br /&gt;
        return mw.text.trim( table.concat( pretext ) .. &amp;#039;\n&amp;#039; .. table.concat( rows, &amp;#039;\n&amp;#039; ) )&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;#039;&amp;lt;span style=&amp;quot;font-weight:bold;color:red;&amp;quot;&amp;gt;（請填寫理由）&amp;lt;/span&amp;gt;&amp;#039; .. ( args.cat or args.cate or args.category or &amp;#039;[[Category:快速删除候选|错]]&amp;#039; )&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return z&lt;/div&gt;</summary>
		<author><name>Qinyongr</name></author>
	</entry>
</feed>