function reqns(nslist)
    return function(title)
        if type(nslist) ~= 'table' then
            nslist = {nslist}
        end
        text = {}
        for i, ns in ipairs(nslist) do
            if title:inNamespace(ns) then
                return nil
            end
            if mw.site.namespaces[ns].id ~= 0 then
                table.insert(text, mw.site.namespaces[ns].name)
            else
                table.insert(text, mw.site.namespaces[ns].displayName)
            end
        end
        if #text then
            return '仅适用于' .. mw.text.listToText(text, '、', '或') .. '[[WP:命名空间|命名空间]]'
        end
        return nil
    end
end

return {
    {
        code = 'G1',
        aliases = {'empty'},
        criteria = '没有实际内容的页面',
        description = '如「adfasddd」。參見Wikipedia:胡言亂語。但注意:圖片也算是內容。對於條目:建議使用A1。對於用戶頁:如果它是其他用戶建立的,請提交頁面存廢討論。用戶本人建立的,請不要管它。對於用戶討論頁:請加入{{subst:welcome}}。對於其他頁面(沙盒頁面除外):如果內容為空或符合Wikipedia:胡言亂語,請使用{{d|G1}}。'
    },
    {
        code = 'G2',
        aliases = {'test'},
        criteria = '测试页面',
        description = '例如:「這是一個測試。」對於用戶頁:如果它是其他用戶建立的,請提交頁面存廢討論。用戶本人建立的,請不要管它。對於用戶討論頁:請加入{{subst:welcome}}。'
    },
    {
        code = 'G3',
        aliases = {'r4', 'attack', 'van', 'g6'},
        criteria = '纯粹[[WP:VAN|破坏]],包括但不限于明显的[[WP:HOAX|恶作剧]]、错误信息、[[WP:PA|人身攻击]]等',
        description = '包括明顯的錯誤資訊、明顯的惡作劇、資訊明顯錯誤的圖片,以及清理移動破壞時留下的重新導向。'
    },
    {
        code = 'G5',
        aliases = {'rep'},
        criteria = "曾经根据[[WP:AFD|頁面存廢討論]]、[[WP:CV|侵權審核]]或[[WP:FFD|檔案存廢討論]]結果删除後又重新創建的内容,而有關內容與已刪除版本相同或非常相似,無論標題是否相同。",
        deletereason = '曾经根据[[WP:AFD|頁面存廢討論]]、[[WP:CV|侵權審核]]或[[WP:FFD|檔案存廢討論]]結果删除後又重新創建的内容',
        description = '該內容之前必須是經存廢討論刪除,其中:1. 之前經頁面存廢討論、檔案存廢討論刪除的,提請速刪者須在速刪模板標註原存廢討論頁面的位置;2. 之前經侵權稽核刪除的或所提報頁面目前疑似侵犯版權的,提請速刪者應一併加掛疑似侵權模板(使用Twinkle的編輯應先提掛侵權模板再提掛速刪模板,以免速刪模板被誤移除),並提供足以查證的相關刪除資訊(例如,頁面之前被刪除日期、相關刪除日誌、原存廢討論頁面的位置等)。如該內容之前屬於快速刪除,請以相同理由重新提送快速刪除。該內容如與被刪除的版本明顯不同,而提刪者認為需要刪除,請交到存廢討論,如果提刪者對此不肯定,請先聯絡上次執行刪除的管理人員。不適用於根據存廢覆核結果被恢復的內容。在某些情況下,重新建立的條目有機會發展,那麼不應提交快速刪除,而應該提交存廢覆核或存廢討論重新評核。'
    },
    {
        code = 'G8',
        aliases = {'rm'},
        criteria = '因技术原因删除页面',
        description = '包括解封用戶後刪除用戶頁、因用戶奪取而刪除、刪除無用的MediaWiki頁面、因移動請求而刪除頁面、以覆寫刪除重新導向。'
    },
    {
        code = 'G10',
        aliases = {'author', 'ad'},
        criteria = '原作者清空頁面或提出刪除,且實際貢獻者只有一人',
        description = '提請須出於善意,並附有合理原因。移動產生的重新導向頁面,移動前的建立者視為原作者。被匯入的頁面,匯入者視為原作者。'
    },
    {
        code = 'G11',
        aliases = {'spam'},
        criteria = '明顯的[[WP:SOAP|廣告宣傳]]頁面,或只有相关人物或團體的聯繫方法的页面',
        description = '頁面只收宣傳之用,並須完全重寫才能貼合百科全書要求。須注意,僅僅以某公司或產品為主題的條目,並不直接導致其自然滿足此速刪標準。即便該頁面具有宣傳情況,除非您可以非常確定該頁面建立僅為廣告宣傳而建,否則應以關注度提報或提刪替代。'
    },
    {
        code = 'G12',
        aliases = {'bio'},
        criteria = '未列明[[WP:可靠来源|可靠來源]]且語調負面的[[WP:生者傳記|生者傳記]]',
        deletereason = '未列明[[WP:可靠来源|可靠來源]]且語調負面的[[WP:生者傳記|生者傳記]]。',
        description = '“列明”指至少一個列出的來源可直接支撑条目中的任何資訊,並与其中的断言相匹配。如有用戶對條目中列出的來源是否屬於可靠來源提出合理異議,則應交由存廢討論處理。注意是未列明可靠來源且語調負面,須2項均符合方適用此項。'
    },
    {
        code = 'G13',
        aliases = {'mt'},
        criteria = '翻譯拙劣',
        description = '不適用於所有的討論命名空間、草稿命名空間和用戶命名空間。',
        check = function(title)
            if title.isTalkPage or title:inNamespaces('Draft', 'User') then
                return '不適用於所有的討論命名空間、草稿命名空間和用戶命名空間。'
            end
        end
    },
    {
        code = 'G14',
        aliases = {'nc'},
        criteria = '超過兩周沒有進行任何翻譯的非[[現代標準漢語]]页面',
        description = '包括所有未翻譯的外語、漢語方言以及文言文。此項僅適用於條目、專案、維基專題、使用說明和主題命名空間。可使用{{subst:NotMandarin/auto}}取代快速刪除,並將頁面列於翻譯請求,使其有機會被校閱和翻譯。',
        check = reqns({0, 'Wikipedia', 'WikiProject', 'Help', 'Portal'})
    },
    {
        code = 'G15',
        aliases = {'orphan', 'r1', 'o2'},
        criteria = '孤立页面,比如没有主页面的[[WP:TALK|讨论页]]、指向空页面的[[WP:R|重定向]]等',
        deletereason = '孤立页面',
        description = '包括以下幾種類型:1. 沒有對應檔案的檔案頁面;2. 沒有對應母頁面的子頁面,用戶頁子頁面除外;3. 指向不存在頁面的重新導向;4. 沒有對應內容頁面的討論頁,討論頁存檔和用戶討論頁除外;5. 不存在註冊用戶的用戶頁及用戶頁子頁面,localhost對應IP用戶的用戶頁和隨用戶更名產生的用戶頁重新導向除外。請在刪除時注意有無將內容移至他處的必要。不包括在主頁面掛有{{CSD Placeholder}}模板的討論頁。',
        check = function(title)
            if title.rootText == 'Liangent~zhwiki' and title:inNamespaces('User', 'User talk') then
                return '不要删除此页面,见[[phab:T95408]]。'
            end
        end
    },
    {
        code = 'G16',
        aliases = {'temp'},
        criteria = '頁面與介紹相同事物的原頁面同樣[[WP:侵权|侵权]]',
        description = '此條所適用的頁面包括但不限於草稿頁面、主命名空間(條目空間)頁面、用戶空間頁面等介紹相同事物,且在原頁面被提報侵權後建立的頁面。相關頁面不一定要掛上{{Draft Copyvio}}模板。提報時需同時附上已提報侵犯版權頁面的名稱,除非一眼能看出已提報侵犯版權頁面。'
    },
    {
       code = 'G17',
       aliases = {'wrongdab', 'wd'},
       criteria = '位於不恰當的命名空間的消歧義頁面',
       description = '此項不適用於條目、用戶、專案與草稿命名空間。在提請快速刪除前,請務必先檢查並清理相關消歧義頁面的連入。此項不論頁面是否引用消歧義模板或消歧義訊息模板均適用,惟對消歧義模板及消歧義訊息模板本身不適用。',
       check = function(title)
           if title:inNamespaces(0, 'User', 'Wikipedia', 'Draft') then
               return '此項不適用於條目、用戶、專案與草稿命名空間。'
           end
       end
    },
    {
        code = 'G18',
        aliases = {'a5'},
        criteria = "與現有頁面或其歷史版本重複的頁面",
        deletereason = "與現有頁面或其歷史版本重複的頁面",
        description = '頁面建立時,首個版本的內容與當時其他現存頁面或其歷史版本的全部或部分內容完全相同或非常相似,且其名稱不適合改為重新導向,就可以提送快速刪除。除非另有所指,否則「頁面」指條目、模板與草稿,其中「草稿」指:所有位於草稿命名空間的頁面及所有位於用戶命名空間且含{{AFC submission}}的頁面。如果名稱可以作為重新導向,就應直接改為重新導向,不要提送快速刪除。如果是多個頁面合併產生的新頁面,或是從主頁面拆分產生的頁面,不適用;如有疑慮,應提送存廢討論處理。如果草稿頁面晚於條目或模板建立,此條對該草稿頁面不適用。如果條目或模板晚於草稿頁面建立,兩個頁面的建立者為同一人,而該人在條目或模板建立後隨即對草稿頁面予以清空或提請快速刪除,此條對該條目或模板不適用。就與另一模板重複的模板而言,如果該模板嵌入了Lua指令碼,或屬於其他模板的定製資料盒,則要求該模板並不具備任何該另一模板或其歷史版本的全部內容所不存在的效果,但不要求原始碼完全相同或非常相似。',
        check = reqns(0, 'Template', 'Draft', 'User')
    },
    {
        code = 'A1',
        aliases = {'context', 'g4'},
        criteria = '内容空泛(包括但不限於沒有定義)',
        description = '條目的內容籠統,或甚至根本沒有提及條目主體,使條目不能用以區分其他事物。例如:「他是一個很有趣的人,他建立了工廠和莊園。並且,順便提一下,他的妻子也很好。」「內容空泛」與「沒有實際內容」的分別在於:後者乃是與主題完全無關,或是不知所云;前者可以與主題有一定關係,但沒有明確描述主題(包括但不限於沒有對主題作基本定義);前者同時包含後者。',
        check = reqns(0)
    },
    {
        code = 'A2',
        aliases = {'text'},
        criteria = '內容只包括外部链接、参见、图书参考、分类、模板、跨语言链接的条目([[WP:D|消歧義頁]]、[[WP:R|重定向]]、[[WP:SRD|軟重定向]]除外)',
        deletereason = '內容只包括外部链接、参见、图书参考、分类、模板、跨语言链接的条目',
        description = '請注意:有些維基人建立條目時會分開多次儲存,請避免刪除有人正在編輯的頁面。帶有{{inuse}}模板的不適用。',
        check = reqns(0)
    },
    {
        code = 'A3',
        aliases = {'g7'},
        criteria = '複製自其他[[T:Wikimedia project|中文维基项目]],或是與其他中文维基项目內容相同的文章',
        description = '其他「維基專案」指的是:維基詞典、維基教科書、維基語錄、維基文庫、維基物種、維基新聞、維基孵育場、維基學院等,但並不包括與中文維基百科其他條目內容重複之狀況。',
        check = reqns(0)
    },
    {
        code = 'A6',
        aliases = {'foreign'},
        criteria = '复制自其他维基百科语言版本,且完全没有翻译',
        description = '如果並不是複製於任何其他的維基百科語言版本,請換用{{notmandarin}}。帶有{{inuse}}模板的不適用。',
        check = reqns(0)
    },
    {
        code = 'A7',
        aliases = {},
        criteria = '因關注度問題被刪除而又被重建的條目',
        description = '該條目之前必須是經頁面存廢討論刪除,且刪除理由包括未滿足關注度指引的要求,而重新建立後的版本明顯同樣未滿足關注度指引的要求,且並未列出任何舊版本中未曾出現的可靠來源。提請速刪者須在速刪模板標註原存廢討論頁面的位置。如該條目重新建立後的版本並非明顯與被刪除的版本同樣未滿足關注度指引的要求,或列出了至少一個舊版本中未曾出現的可靠來源,而提刪者認為需要刪除,請交到頁面存廢討論或存廢覆核請求。如果提刪者對此不肯定,請先聯絡上次執行刪除的管理人員。不適用於根據存廢覆核結果被恢復或允許重建的內容。在某些情況下,重新建立的條目有機會發展,那麼不應提交快速刪除,而應該提交存廢覆核請求或頁面存廢討論重新評核。',
        check = reqns(0)
    },
    {
       code = 'R2',
       aliases = {'interwk', 'g9'},
       criteria = '跨[[WP:NS|命名空间]]的[[WP:R|重定向]]',
       description = '适用于条目命名空间和草稿命名空间。社群同意設立的[[Wikipedia:捷徑#偽命名空間|偽命名空間]]不适用。草稿重定向速删前,请确保草稿已经完成其作用,且其历史已移动到相应的正式页面。',
       check = reqns({0, 'Draft'})
    },
    {
        code = 'R3',
        aliases = {'wr'},
        criteria = '格式錯誤,或明显笔误的[[WP:R|重定向]]',
        description = '包括標題繁簡混用、消歧義使用的括弧或空格錯誤、間隔號使用錯誤、標題中使用非常見的錯別字。非一眼能看出的拼寫錯誤和翻譯或標題用字的爭議應交由存廢討論處理。將常見的拼寫錯誤名稱重新導向至正確名稱頁面,可使百科用戶縱使在查找文章時拼寫錯誤,也能夠找到尋求的文章。可參閱WP:重新導向#何時用重新導向?。如重新導向名稱與導向目標名稱(或其相關名稱)僅存在合理的大小寫差異及/或重新導向名稱為導向目標名稱(或其相關名稱)的ASCII字母表述的形式(例如Kurt Godel重新導向至Kurt Gödel),不視為存在任何拼寫錯誤。如有對相關大小寫差異是否合理的爭議,應交由存廢討論處理。因類推簡化字未收錄至《通用規範漢字表》導致的繁簡混雜情形,或系統無法自動進行繁簡處理的情形,則不適用。'
    },
    {
        code = 'R5',
        aliases = {'br'},
        criteria = '指向本身或循环的[[WP:R|重定向]]',
        description = '如A→B→C→……→A或A→A。繁簡重新導向不適用此項,請用{{d|R3}}。'
    },
    {
        code = 'R6',
        aliases = {},
        criteria = '移動檔案而產生的[[WP:R|重定向]],且頁面標題不符合[[WP:FNC|檔案名稱指引]]',
        check = reqns('File')
    },
    {
        code = 'R7',
        aliases = {},
        criteria = '明顯與導向目標所涵蓋的主題無關或比導向目標所涵蓋的主題更廣泛的[[WP:R|重定向]]',
        description = '掛有{{關注度重新導向}}或{{合併重新導向}}模板的頁面不適用,請改為提出存廢討論。如有用戶對標題用字存在未解決的爭議,則應交由存廢討論處理。'
    },
    {
       code = 'R8',
       aliases = {'dabr', 'dr'},
       criteria = '帶有「(消歧義)」字樣的重定向',
       description = '包括以下幾種類型:1. 無連入的重新導向。(若重新導向頁與導向目標頁同樣帶有「(消歧義)」字樣,且兩者的標題僅存在繁簡/地區詞差異,則不適用。)2. 並非指向消歧義頁面的重新導向。在提請快速刪除前,請務必先檢查並清理(如適用)相關重新導向的連入。如有用戶對應否使用消歧義及消歧義的方式存在未解決的爭議,則應交由存廢討論處理。'
    },
    {
        code = 'F1',
        aliases = {'i1', 'reppic'},
        criteria = '重复的檔案(完全相同或缩小),而且不再被條目使用',
        check = reqns('File')
    },
    {
        code = 'F3',
        aliases = {},
        criteria = '所有在提報後超過5天仍[[:CAT:來源不明檔案|來源不明的檔案]]',
        deletereason = '[[:CAT:來源不明檔案|來源不明的檔案]]',
        check = reqns('File')
    },
    {
        code = 'F4',
        aliases = {},
        criteria = '所有在提報後超過5天仍[[:CAT:未知版权的档案|未知版權或版權無法被查證的檔案]]',
        deletereason = '[[:CAT:未知版权的档案|未知版權或版權無法被查證的檔案]]',
        check = reqns('File')
    },
    {
        code = 'F5',
        aliases = {'i5', 'betterpic'},
        criteria = '被高解析度或[[SVG]]檔案取代的圖片',
        check = reqns('File')
    },
    {
        code = 'F6',
        aliases = {'i6', 'ui'},
        criteria = '沒有被條目使用的[[WP:合理使用|非自由版权]]檔案会在提交5日后刪除',
        deletereason = '沒有被條目使用的[[WP:合理使用|非自由版权]]檔案',
        check = reqns('File')
    },
    {
        code = 'F7',
        aliases = {'i7', 'nowcommons'},
        criteria = '与[[維基共享資源]]檔案重复的檔案',
        check = reqns('File')
    },
    {
        code = 'F8',
        aliases = {},
        criteria = '明顯侵權之檔案會在提報5日後刪除',
        deletereason = '明顯侵權之檔案',
        description = '包括以下兩種情況:1. 上載者宣稱擁有,而在其他來源找到的檔案。2. 檔案宣稱由某作者依據某自由版權協定發佈,但找不到該自由協定的聲明。',
        check = reqns('File')
    },
    {
        code = 'F9',
        aliases = {},
        criteria = '沒有填寫任何合理使用依據的非自由版權檔案會在提交5日後刪除',
        deletereason = '沒有填寫任何合理使用依據的非自由版權檔案',
        description = '空白的合理使用依據模板(如{{Non-free use rationale}})並不視為有效的合理使用依據,另外本方針也不適用於有爭議但完整的合理使用依據。如果非自由版權檔案只有部分條目的使用依據,但同時被使用於未提供合理使用依據的條目,則本方針也不適用,並應將後者使用中的檔案移除。',
        check = reqns('File')
    },
    {
        code = 'F10',
        aliases = {},
        criteria = '可被替代的非自由版权文件會在提交5日後刪除',
        deletereason = '可被替代的非自由版权文件',
        description = '檔案僅用於描述、辨識或評論檔案中展示的事物,或僅用作插圖(沒有和檔案內容相關的評論),且滿足以下四個條件之一:有其他自由版權檔案展示相同的事物。檔案描述的是在世或假定在世人物、仍然存在的建築、室外雕塑或仍然在售的商品,且預計自行拍攝的相片不受他人版權保護。檔案為可自行繪製的地圖或圖表。檔案來自商業圖片機構(如Getty)。如果給出了其他合理使用依據(如用於評論檔案本身),不適用本條。如對檔案的可替代性存在爭議,應交檔案存廢討論處理。本條也不適用於正在或曾經由檔案存廢討論處理過的檔案。',
        check = reqns('File')
    },
    {
        code = 'O1',
        aliases = {'aup', 'o6'},
        criteria = '用户请求删除自己的[[H:用户页|用户页]]或其子页面',
        description = '除了自己的用戶頁,只要是移動而來的頁面,皆須附有合理原因。',
        check = reqns('User')
    },
    {
        code = 'O3',
        aliases = {'ip'},
        criteria = '已超過一個月未有編輯動作的IP用户的用户[[WP:TALK|讨论页]],且已完成存檔',
        description = '避免給使用同一IP位址的用戶帶來混淆。不適用於用戶討論頁的存檔頁面。',
        check = reqns('User talk')
    },
    {
        code = 'O4',
        aliases = {'o5', 'uc'},
        criteria = '空分类',
        description = '該分類無收錄任何頁面或子分類。不適用於Category:不要刪除的分類中的空分類。',
        check = reqns('Category')
    },
    {
       code = 'O7',
       aliases = {},
       criteria = '廢棄草稿',
       description = '任何六個月內無編輯的草稿。「草稿」指:1. 所有位於草稿命名空間的頁面;及2. 所有位於用戶命名空間且含{{AFC submission}}的頁面。若相關編輯為機械人編輯或屬維護性操作,相關編輯應視同不存在。如果編者有意重新繼續編寫,可[[Wikipedia:存廢覆核請求|向管理員請求恢復相關草稿]]。',
       check = reqns({'Draft', 'User'})
    }
}