<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-twinklexfd.js</id>
	<title>MediaWiki:Gadget-twinklexfd.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-twinklexfd.js"/>
	<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-twinklexfd.js&amp;action=history"/>
	<updated>2026-05-04T07:27:57Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-twinklexfd.js&amp;diff=26448&amp;oldid=prev</id>
		<title>入我相思门：​创建页面，内容为“// &lt;nowiki&gt;   (function($) {   /*  ****************************************  *** twinklexfd.js: XFD module  ****************************************  * Mode of invocation:     Tab (&quot;XFD&quot;)  * Active on:              Existing, non-special pages, except for file pages with no local (non-Commons) file which are not redirects  */  Twinkle.xfd = function twinklexfd() { 	// Disable on: 	// * special pages 	// * Flow pages 	// * non-existent pages 	// * files on Common…”</title>
		<link rel="alternate" type="text/html" href="https://zybkcn.com/w/index.php?title=MediaWiki:Gadget-twinklexfd.js&amp;diff=26448&amp;oldid=prev"/>
		<updated>2022-12-08T06:57:35Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“// &amp;lt;nowiki&amp;gt;   (function($) {   &lt;span class=&quot;autocomment&quot;&gt;****************************************  *** twinklexfd.js: XFD module  ****************************************  * Mode of invocation:     Tab (&amp;quot;XFD&amp;quot;)  * Active on:              Existing, non-special pages, except for file pages with no local (non-Commons) file which are not redirects：​&lt;/span&gt;  Twinkle.xfd = function twinklexfd() { 	// Disable on: 	// * special pages 	// * Flow pages 	// * non-existent pages 	// * files on Common…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function($) {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 ****************************************&lt;br /&gt;
 *** twinklexfd.js: XFD module&lt;br /&gt;
 ****************************************&lt;br /&gt;
 * Mode of invocation:     Tab (&amp;quot;XFD&amp;quot;)&lt;br /&gt;
 * Active on:              Existing, non-special pages, except for file pages with no local (non-Commons) file which are not redirects&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd = function twinklexfd() {&lt;br /&gt;
	// Disable on:&lt;br /&gt;
	// * special pages&lt;br /&gt;
	// * Flow pages&lt;br /&gt;
	// * non-existent pages&lt;br /&gt;
	// * files on Commons, whether there is a local page or not (unneeded local pages of files on Commons are eligible for CSD F2)&lt;br /&gt;
	// * file pages without actual files (these are eligible for CSD G8)&lt;br /&gt;
	if (mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) &amp;lt; 0 || mw.config.get(&amp;#039;wgPageContentModel&amp;#039;) === &amp;#039;flow-board&amp;#039; || !mw.config.get(&amp;#039;wgArticleId&amp;#039;) || (mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 6 &amp;amp;&amp;amp; (document.getElementById(&amp;#039;mw-sharedupload&amp;#039;) || (!document.getElementById(&amp;#039;mw-imagepage-section-filehistory&amp;#039;) &amp;amp;&amp;amp; !Morebits.isPageRedirect())))) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	Twinkle.addPortletLink(Twinkle.xfd.callback, wgULS(&amp;#039;提删&amp;#039;, &amp;#039;提刪&amp;#039;), &amp;#039;tw-xfd&amp;#039;, wgULS(&amp;#039;提交删除讨论&amp;#039;, &amp;#039;提交刪除討論&amp;#039;));&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.currentRationale = null;&lt;br /&gt;
&lt;br /&gt;
// error callback on Morebits.status.object&lt;br /&gt;
Twinkle.xfd.printRationale = function twinklexfdPrintRationale() {&lt;br /&gt;
	if (Twinkle.xfd.currentRationale) {&lt;br /&gt;
		Morebits.status.printUserText(Twinkle.xfd.currentRationale, wgULS(&amp;#039;您的理由已在下方提供，如果您想重新提交，请将其复制到一新窗口中：&amp;#039;, &amp;#039;您的理由已在下方提供，如果您想重新提交，請將其複製到一新視窗中：&amp;#039;));&lt;br /&gt;
		// only need to print the rationale once&lt;br /&gt;
		Twinkle.xfd.currentRationale = null;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.callback = function twinklexfdCallback() {&lt;br /&gt;
	var Window = new Morebits.simpleWindow(600, 350);&lt;br /&gt;
	Window.setTitle(wgULS(&amp;#039;提交存废讨论&amp;#039;, &amp;#039;提交存廢討論&amp;#039;));&lt;br /&gt;
	Window.setScriptName(&amp;#039;Twinkle&amp;#039;);&lt;br /&gt;
	Window.addFooterLink(wgULS(&amp;#039;关于存废讨论&amp;#039;, &amp;#039;關於存廢討論&amp;#039;), &amp;#039;WP:XFD&amp;#039;);&lt;br /&gt;
	Window.addFooterLink(wgULS(&amp;#039;提删设置&amp;#039;, &amp;#039;提刪設定&amp;#039;), &amp;#039;WP:TW/PREF#xfd&amp;#039;);&lt;br /&gt;
	Window.addFooterLink(wgULS(&amp;#039;Twinkle帮助&amp;#039;, &amp;#039;Twinkle說明&amp;#039;), &amp;#039;WP:TW/DOC#xfd&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
	var form = new Morebits.quickForm(Twinkle.xfd.callback.evaluate);&lt;br /&gt;
	var categories = form.append({&lt;br /&gt;
		type: &amp;#039;select&amp;#039;,&lt;br /&gt;
		name: &amp;#039;category&amp;#039;,&lt;br /&gt;
		label: wgULS(&amp;#039;提交类型：&amp;#039;, &amp;#039;提交類別：&amp;#039;),&lt;br /&gt;
		event: Twinkle.xfd.callback.change_category&lt;br /&gt;
	});&lt;br /&gt;
	categories.append({&lt;br /&gt;
		type: &amp;#039;option&amp;#039;,&lt;br /&gt;
		label: wgULS(&amp;#039;页面存废讨论&amp;#039;, &amp;#039;頁面存廢討論&amp;#039;),&lt;br /&gt;
		selected: mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 0,  // Main namespace&lt;br /&gt;
		value: &amp;#039;afd&amp;#039;&lt;br /&gt;
	});&lt;br /&gt;
	categories.append({&lt;br /&gt;
		type: &amp;#039;option&amp;#039;,&lt;br /&gt;
		label: wgULS(&amp;#039;文件存废讨论&amp;#039;, &amp;#039;檔案存廢討論&amp;#039;),&lt;br /&gt;
		selected: mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 6,  // File namespace&lt;br /&gt;
		value: &amp;#039;ffd&amp;#039;&lt;br /&gt;
	});&lt;br /&gt;
	form.append({&lt;br /&gt;
		type: &amp;#039;checkbox&amp;#039;,&lt;br /&gt;
		list: [&lt;br /&gt;
			{&lt;br /&gt;
				label: wgULS(&amp;#039;如可能，通知页面创建者&amp;#039;, &amp;#039;如可能，通知頁面建立者&amp;#039;),&lt;br /&gt;
				value: &amp;#039;notify&amp;#039;,&lt;br /&gt;
				name: &amp;#039;notify&amp;#039;,&lt;br /&gt;
				tooltip: wgULS(&amp;#039;在页面创建者讨论页上放置一通知模板。&amp;#039;, &amp;#039;在頁面建立者討論頁上放置一通知模板。&amp;#039;),&lt;br /&gt;
				checked: true&lt;br /&gt;
			}&lt;br /&gt;
		]&lt;br /&gt;
	}&lt;br /&gt;
	);&lt;br /&gt;
	form.append({&lt;br /&gt;
		type: &amp;#039;field&amp;#039;,&lt;br /&gt;
		label: &amp;#039;工作区&amp;#039;,&lt;br /&gt;
		name: &amp;#039;work_area&amp;#039;&lt;br /&gt;
	});&lt;br /&gt;
	form.append({ type: &amp;#039;submit&amp;#039; });&lt;br /&gt;
&lt;br /&gt;
	var result = form.render();&lt;br /&gt;
	Window.setContent(result);&lt;br /&gt;
	Window.display();&lt;br /&gt;
&lt;br /&gt;
	if (mw.config.get(&amp;#039;wgPageContentModel&amp;#039;) !== &amp;#039;wikitext&amp;#039;) {&lt;br /&gt;
		form = new Morebits.quickForm(Twinkle.xfd.callback.evaluate);&lt;br /&gt;
		form.append({&lt;br /&gt;
			type: &amp;#039;div&amp;#039;,&lt;br /&gt;
			label: [&lt;br /&gt;
				wgULS(&amp;#039;Twinkle不支持在页面内容模型为&amp;#039;, &amp;#039;Twinkle不支援在頁面內容模型為&amp;#039;),&lt;br /&gt;
				mw.config.get(&amp;#039;wgPageContentModel&amp;#039;),&lt;br /&gt;
				wgULS(&amp;#039;的页面上挂上存废讨论模板，请参见&amp;#039;, &amp;#039;的頁面上掛上存廢討論模板，請參見&amp;#039;),&lt;br /&gt;
				$(&amp;#039;&amp;lt;a&amp;gt;&amp;#039;).attr({ target: &amp;#039;_blank&amp;#039;, href: mw.util.getUrl(&amp;#039;WP:SPECIALSD&amp;#039;) }).text(wgULS(&amp;#039;手动放置模板时的注意事项&amp;#039;, &amp;#039;手動放置模板時的注意事項&amp;#039;))[0],&lt;br /&gt;
				&amp;#039;。&amp;#039;&lt;br /&gt;
			]&lt;br /&gt;
		});&lt;br /&gt;
		Window.setContent(form.render());&lt;br /&gt;
		Window.display();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// We must init the controls&lt;br /&gt;
	var evt = document.createEvent(&amp;#039;Event&amp;#039;);&lt;br /&gt;
	evt.initEvent(&amp;#039;change&amp;#039;, true, true);&lt;br /&gt;
	result.category.dispatchEvent(evt);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.callback.change_category = function twinklexfdCallbackChangeCategory(e) {&lt;br /&gt;
	var value = e.target.value;&lt;br /&gt;
	var form = e.target.form;&lt;br /&gt;
	var old_area = Morebits.quickForm.getElements(e.target.form, &amp;#039;work_area&amp;#039;)[0];&lt;br /&gt;
	var work_area = null;&lt;br /&gt;
&lt;br /&gt;
	var oldreasontextbox = form.getElementsByTagName(&amp;#039;textarea&amp;#039;)[0];&lt;br /&gt;
	var oldreason = oldreasontextbox ? oldreasontextbox.value : &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	var appendReasonBox = function twinklexfdAppendReasonBox(xfd_cat) {&lt;br /&gt;
		switch (xfd_cat) {&lt;br /&gt;
			case &amp;#039;fwdcsd&amp;#039;:&lt;br /&gt;
				oldreason = decodeURIComponent($(&amp;#039;#delete-reason&amp;#039;).text()).replace(/\+/g, &amp;#039; &amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;fame&amp;#039;:&lt;br /&gt;
				oldreason = Twinkle.getPref(&amp;#039;afdFameDefaultReason&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;substub&amp;#039;:&lt;br /&gt;
				oldreason = Twinkle.getPref(&amp;#039;afdSubstubDefaultReason&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
		work_area.append({&lt;br /&gt;
			type: &amp;#039;textarea&amp;#039;,&lt;br /&gt;
			name: &amp;#039;xfdreason&amp;#039;,&lt;br /&gt;
			label: wgULS(&amp;#039;提删理由：&amp;#039;, &amp;#039;提刪理由：&amp;#039;),&lt;br /&gt;
			value: oldreason,&lt;br /&gt;
			tooltip: wgULS(&amp;#039;您可以使用维基格式，Twinkle将自动为您加入签名。如果您使用批量提删功能，存废讨论页只会使用第一次提交的理由，但之后您仍需提供以用于删除通告模板的参数。&amp;#039;, &amp;#039;您可以使用維基格式，Twinkle將自動為您加入簽名。如果您使用批次提刪功能，存廢討論頁只會使用第一次提交的理由，但之後您仍需提供以用於刪除通告模板的參數。&amp;#039;),&lt;br /&gt;
			placeholder: wgULS(&amp;#039;此值亦显示于页面的删除通告模板内，故务必提供此值，避免使用“同上”等用语。&amp;#039;, &amp;#039;此值亦顯示於頁面的刪除通告模板內，故務必提供此值，避免使用「同上」等用語。&amp;#039;)&lt;br /&gt;
		});&lt;br /&gt;
		// TODO possible future &amp;quot;preview&amp;quot; link here&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	switch (value) {&lt;br /&gt;
		case &amp;#039;afd&amp;#039;:&lt;br /&gt;
			work_area = new Morebits.quickForm.element({&lt;br /&gt;
				type: &amp;#039;field&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;页面存废讨论&amp;#039;, &amp;#039;頁面存廢討論&amp;#039;),&lt;br /&gt;
				name: &amp;#039;work_area&amp;#039;&lt;br /&gt;
			});&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: &amp;#039;checkbox&amp;#039;,&lt;br /&gt;
				list: [&lt;br /&gt;
					{&lt;br /&gt;
						label: &amp;#039;使用&amp;amp;lt;noinclude&amp;amp;gt;包裹模板&amp;#039;,&lt;br /&gt;
						value: &amp;#039;noinclude&amp;#039;,&lt;br /&gt;
						name: &amp;#039;noinclude&amp;#039;,&lt;br /&gt;
						checked: mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 10, // Template namespace&lt;br /&gt;
						tooltip: wgULS(&amp;#039;使其不会在被包含时出现。&amp;#039;, &amp;#039;使其不會在被包含時出現。&amp;#039;)&lt;br /&gt;
					}&lt;br /&gt;
				]&lt;br /&gt;
			});&lt;br /&gt;
			var afd_category = work_area.append({&lt;br /&gt;
				type: &amp;#039;select&amp;#039;,&lt;br /&gt;
				name: &amp;#039;xfdcat&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;选择提删类型：&amp;#039;, &amp;#039;選擇提刪類別：&amp;#039;),&lt;br /&gt;
				event: Twinkle.xfd.callback.change_afd_category&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			var afd_cat = &amp;#039;delete&amp;#039;;&lt;br /&gt;
			if (Twinkle.getPref(&amp;#039;afdDefaultCategory&amp;#039;) === &amp;#039;same&amp;#039;) {&lt;br /&gt;
				if (localStorage.Twinkle_afdCategory === undefined) {&lt;br /&gt;
					localStorage.Twinkle_afdCategory = &amp;#039;delete&amp;#039;;&lt;br /&gt;
				} else {&lt;br /&gt;
					afd_cat = localStorage.Twinkle_afdCategory;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;删除&amp;#039;, &amp;#039;刪除&amp;#039;), value: &amp;#039;delete&amp;#039;, selected: afd_cat === &amp;#039;delete&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;合并&amp;#039;, &amp;#039;合併&amp;#039;), value: &amp;#039;merge&amp;#039;, selected: afd_cat === &amp;#039;merge&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基词典&amp;#039;, &amp;#039;移動到維基詞典&amp;#039;), value: &amp;#039;vmd&amp;#039;, selected: afd_cat === &amp;#039;vmd&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基文库&amp;#039;, &amp;#039;移動到維基文庫&amp;#039;), value: &amp;#039;vms&amp;#039;, selected: afd_cat === &amp;#039;vms&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基教科书&amp;#039;, &amp;#039;移動到維基教科書&amp;#039;), value: &amp;#039;vmb&amp;#039;, selected: afd_cat === &amp;#039;vmb&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基语录&amp;#039;, &amp;#039;移動到維基語錄&amp;#039;), value: &amp;#039;vmq&amp;#039;, selected: afd_cat === &amp;#039;vmq&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基导游&amp;#039;, &amp;#039;移動到維基導遊&amp;#039;), value: &amp;#039;vmvoy&amp;#039;, selected: afd_cat === &amp;#039;vmvoy&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;移动到维基学院&amp;#039;, &amp;#039;移動到維基學院&amp;#039;), value: &amp;#039;vmv&amp;#039;, selected: afd_cat === &amp;#039;vmv&amp;#039; });&lt;br /&gt;
			if (Twinkle.getPref(&amp;#039;FwdCsdToXfd&amp;#039;)) {&lt;br /&gt;
				afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;转交自快速删除候选&amp;#039;, &amp;#039;轉交自快速刪除候選&amp;#039;), value: &amp;#039;fwdcsd&amp;#039;, selected: afd_cat === &amp;#039;fwdcsd&amp;#039; });&lt;br /&gt;
			}&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;批量关注度提删&amp;#039;, &amp;#039;批次關注度提刪&amp;#039;), value: &amp;#039;fame&amp;#039;, selected: afd_cat === &amp;#039;fame&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;批量小小作品提删&amp;#039;, &amp;#039;批次小小作品提刪&amp;#039;), value: &amp;#039;substub&amp;#039;, selected: afd_cat === &amp;#039;substub&amp;#039; });&lt;br /&gt;
			afd_category.append({ type: &amp;#039;option&amp;#039;, label: wgULS(&amp;#039;批量其他提删&amp;#039;, &amp;#039;批次其他提刪&amp;#039;), value: &amp;#039;batch&amp;#039;, selected: afd_cat === &amp;#039;batch&amp;#039; });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: &amp;#039;input&amp;#039;,&lt;br /&gt;
				name: &amp;#039;mergeinto&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;合并到：&amp;#039;, &amp;#039;合併到：&amp;#039;),&lt;br /&gt;
				hidden: true&lt;br /&gt;
			});&lt;br /&gt;
			appendReasonBox(afd_cat);&lt;br /&gt;
			work_area.append({&lt;br /&gt;
				type: &amp;#039;textarea&amp;#039;,&lt;br /&gt;
				name: &amp;#039;fwdcsdreason&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;转交理由：&amp;#039;, &amp;#039;轉交理由：&amp;#039;),&lt;br /&gt;
				tooltip: wgULS(&amp;#039;您可以使用维基格式，Twinkle将自动为您加入签名。&amp;#039;, &amp;#039;您可以使用維基格式，Twinkle將自動為您加入簽名。&amp;#039;),&lt;br /&gt;
				hidden: true&lt;br /&gt;
			});&lt;br /&gt;
&lt;br /&gt;
			work_area = work_area.render();&lt;br /&gt;
			old_area.parentNode.replaceChild(work_area, old_area);&lt;br /&gt;
&lt;br /&gt;
			var evt = document.createEvent(&amp;#039;Event&amp;#039;);&lt;br /&gt;
			evt.initEvent(&amp;#039;change&amp;#039;, true, true);&lt;br /&gt;
			form.xfdcat.dispatchEvent(evt);&lt;br /&gt;
			break;&lt;br /&gt;
		case &amp;#039;ffd&amp;#039;:&lt;br /&gt;
			work_area = new Morebits.quickForm.element({&lt;br /&gt;
				type: &amp;#039;field&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;文件存废讨论&amp;#039;, &amp;#039;檔案存廢討論&amp;#039;),&lt;br /&gt;
				name: &amp;#039;work_area&amp;#039;&lt;br /&gt;
			});&lt;br /&gt;
			appendReasonBox(&amp;#039;ffd&amp;#039;);&lt;br /&gt;
			work_area = work_area.render();&lt;br /&gt;
			old_area.parentNode.replaceChild(work_area, old_area);&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
			work_area = new Morebits.quickForm.element({&lt;br /&gt;
				type: &amp;#039;field&amp;#039;,&lt;br /&gt;
				label: wgULS(&amp;#039;未定义&amp;#039;, &amp;#039;未定義&amp;#039;),&lt;br /&gt;
				name: &amp;#039;work_area&amp;#039;&lt;br /&gt;
			});&lt;br /&gt;
			work_area = work_area.render();&lt;br /&gt;
			old_area.parentNode.replaceChild(work_area, old_area);&lt;br /&gt;
			break;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// Return to checked state when switching&lt;br /&gt;
	form.notify.checked = true;&lt;br /&gt;
	form.notify.disabled = false;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.callback.change_afd_category = function twinklexfdCallbackChangeAfdCategory(e) {&lt;br /&gt;
	if (e.target.value === &amp;#039;merge&amp;#039;) {&lt;br /&gt;
		e.target.form.mergeinto.parentElement.removeAttribute(&amp;#039;hidden&amp;#039;);&lt;br /&gt;
		e.target.form.fwdcsdreason.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.mergeinto.previousElementSibling.innerHTML = wgULS(&amp;#039;合并到：&amp;#039;, &amp;#039;合併到：&amp;#039;);&lt;br /&gt;
	} else if (e.target.value === &amp;#039;fwdcsd&amp;#039;) {&lt;br /&gt;
		e.target.form.mergeinto.parentElement.removeAttribute(&amp;#039;hidden&amp;#039;);&lt;br /&gt;
		e.target.form.fwdcsdreason.parentElement.removeAttribute(&amp;#039;hidden&amp;#039;);&lt;br /&gt;
		e.target.form.mergeinto.previousElementSibling.innerHTML = &amp;#039;提交人：&amp;#039;;&lt;br /&gt;
		e.target.form.xfdreason.value = decodeURIComponent($(&amp;#039;#delete-reason&amp;#039;).text()).replace(/\+/g, &amp;#039; &amp;#039;);&lt;br /&gt;
	} else if (e.target.value === &amp;#039;fame&amp;#039;) {&lt;br /&gt;
		e.target.form.mergeinto.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.fwdcsdreason.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.xfdreason.value = Twinkle.getPref(&amp;#039;afdFameDefaultReason&amp;#039;);&lt;br /&gt;
	} else if (e.target.value === &amp;#039;substub&amp;#039;) {&lt;br /&gt;
		e.target.form.mergeinto.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.fwdcsdreason.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.xfdreason.value = Twinkle.getPref(&amp;#039;afdSubstubDefaultReason&amp;#039;);&lt;br /&gt;
	} else {&lt;br /&gt;
		e.target.form.mergeinto.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
		e.target.form.fwdcsdreason.parentElement.setAttribute(&amp;#039;hidden&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
	}&lt;br /&gt;
	if (Twinkle.getPref(&amp;#039;afdDefaultCategory&amp;#039;) === &amp;#039;same&amp;#039;) {&lt;br /&gt;
		localStorage.Twinkle_afdCategory = e.target.value;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.callbacks = {&lt;br /&gt;
	afd: {&lt;br /&gt;
		main: function(tagging_page) {&lt;br /&gt;
			var params = tagging_page.getCallbackParameters();&lt;br /&gt;
&lt;br /&gt;
			Twinkle.xfd.callbacks.afd.taggingArticle(tagging_page);&lt;br /&gt;
&lt;br /&gt;
			// Adding discussion&lt;br /&gt;
			var discussion_page = new Morebits.wiki.page(params.logpage, wgULS(&amp;#039;加入讨论到当日列表&amp;#039;, &amp;#039;加入討論到當日列表&amp;#039;));&lt;br /&gt;
			discussion_page.setFollowRedirect(true);&lt;br /&gt;
			discussion_page.setCallbackParameters(params);&lt;br /&gt;
			discussion_page.load(Twinkle.xfd.callbacks.afd.todaysList);&lt;br /&gt;
&lt;br /&gt;
			// Notification to first contributor&lt;br /&gt;
			if (params.notify) {&lt;br /&gt;
				// Disallow warning yourself&lt;br /&gt;
				if (params.creator === mw.config.get(&amp;#039;wgUserName&amp;#039;)) {&lt;br /&gt;
					Morebits.status.warn(wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;, wgULS(&amp;#039;您创建了该页，跳过通知&amp;#039;, &amp;#039;您建立了該頁，跳過通知&amp;#039;));&lt;br /&gt;
					params.creator = null;&lt;br /&gt;
				} else {&lt;br /&gt;
					var talkPageName = &amp;#039;User talk:&amp;#039; + params.creator;&lt;br /&gt;
					Morebits.wiki.flow.check(talkPageName, function () {&lt;br /&gt;
						var flowpage = new Morebits.wiki.flow(talkPageName, wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;);&lt;br /&gt;
						flowpage.setTopic(&amp;#039;页面[[:&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]存废讨论通知&amp;#039;);&lt;br /&gt;
						flowpage.setContent(&amp;#039;{{subst:AFDNote|&amp;#039; + Morebits.pageNameNorm + &amp;#039;|flow=yes}}&amp;#039;);&lt;br /&gt;
						flowpage.newTopic();&lt;br /&gt;
					}, function () {&lt;br /&gt;
						var usertalkpage = new Morebits.wiki.page(talkPageName, wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;);&lt;br /&gt;
						var notifytext = &amp;#039;\n{{subst:AFDNote|&amp;#039; + Morebits.pageNameNorm + &amp;#039;}}--~~~~&amp;#039;;&lt;br /&gt;
						usertalkpage.setAppendText(notifytext);&lt;br /&gt;
						usertalkpage.setEditSummary(&amp;#039;通知：页面[[&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]存废讨论提名&amp;#039;);&lt;br /&gt;
						usertalkpage.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
						usertalkpage.setCreateOption(&amp;#039;recreate&amp;#039;);&lt;br /&gt;
						usertalkpage.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchUser&amp;#039;));&lt;br /&gt;
						usertalkpage.setFollowRedirect(true, false);&lt;br /&gt;
						usertalkpage.append();&lt;br /&gt;
					});&lt;br /&gt;
				}&lt;br /&gt;
				// add this nomination to the user&amp;#039;s userspace log, if the user has enabled it&lt;br /&gt;
				if (params.lognomination) {&lt;br /&gt;
					Twinkle.xfd.callbacks.addToLog(params, params.creator);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
			// or, if not notifying, add this nomination to the user&amp;#039;s userspace log without the initial contributor&amp;#039;s name&lt;br /&gt;
			} else if (params.lognomination) {&lt;br /&gt;
				Twinkle.xfd.callbacks.addToLog(params, null);&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		taggingArticle: function(pageobj) {&lt;br /&gt;
			var text = pageobj.getPageText();&lt;br /&gt;
			var params = pageobj.getCallbackParameters();&lt;br /&gt;
&lt;br /&gt;
			var tag = &amp;#039;{{vfd|&amp;#039; + Morebits.string.formatReasonText(params.xfdreason);&lt;br /&gt;
&lt;br /&gt;
			switch (params.xfdcat) {&lt;br /&gt;
				case &amp;#039;vmd&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|wikt&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;vms&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|s&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;vmb&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|b&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;vmq&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|q&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;vmvoy&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|voy&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;vmv&amp;#039;:&lt;br /&gt;
					tag += &amp;#039;|v&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				default:&lt;br /&gt;
					break;&lt;br /&gt;
			}&lt;br /&gt;
			if (Morebits.isPageRedirect()) {&lt;br /&gt;
				tag += &amp;#039;|r&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
			tag += &amp;#039;|date={{subst:#time:Y/m/d}}}}&amp;#039;;&lt;br /&gt;
			if (params.noinclude) {&lt;br /&gt;
				tag = &amp;#039;&amp;lt;noinclude&amp;gt;&amp;#039; + tag + &amp;#039;&amp;lt;/noinclude&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
				// 只有表格需要单独加回车，其他情况加回车会破坏模板。&lt;br /&gt;
				if (text.indexOf(&amp;#039;{|&amp;#039;) === 0) {&lt;br /&gt;
					tag += &amp;#039;\n&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				tag += &amp;#039;\n&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Then, test if there are speedy deletion-related templates on the article.&lt;br /&gt;
			var textNoSd = text.replace(/\{\{\s*(db(-\w*)?|d|delete|(?:hang|hold)[- ]?on)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}\s*/ig, &amp;#039;&amp;#039;);&lt;br /&gt;
			if (text !== textNoSd &amp;amp;&amp;amp; confirm(wgULS(&amp;#039;在页面上找到快速删除模板，要移除吗？&amp;#039;, &amp;#039;在頁面上找到快速刪除模板，要移除嗎？&amp;#039;))) {&lt;br /&gt;
				text = textNoSd;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var textNoNotMandarin = text.replace(/\{\{\s*(NotMandarin|Notchinese|非中文|非現代漢語|非现代汉语|非現代標準漢語|非现代标准汉语)\s*(\|(?:\{\{[^{}]*\}\}|[^{}])*)?\}\}\s*/ig, &amp;#039;&amp;#039;);&lt;br /&gt;
			if (text !== textNoNotMandarin &amp;amp;&amp;amp; confirm(wgULS(&amp;#039;在页面上找到非现代标准汉语模板，要移除吗？&amp;#039;, &amp;#039;在頁面上找到非現代標準漢語模板，要移除嗎？&amp;#039;))) {&lt;br /&gt;
				text = textNoNotMandarin;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Mark the page as patrolled, if wanted&lt;br /&gt;
			if (Twinkle.getPref(&amp;#039;markXfdPagesAsPatrolled&amp;#039;)) {&lt;br /&gt;
				pageobj.patrol();&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Insert tag after short description or any hatnotes&lt;br /&gt;
			var wikipage = new Morebits.wikitext.page(text);&lt;br /&gt;
			text = wikipage.insertAfterTemplates(tag, Twinkle.hatnoteRegex).getText();&lt;br /&gt;
&lt;br /&gt;
			pageobj.setPageText(text);&lt;br /&gt;
			pageobj.setEditSummary(wgULS(&amp;#039;页面存废讨论：[[&amp;#039;, &amp;#039;頁面存廢討論：[[&amp;#039;) + params.logpage + &amp;#039;#&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]&amp;#039;);&lt;br /&gt;
			pageobj.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
			pageobj.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchPage&amp;#039;));&lt;br /&gt;
			pageobj.save();&lt;br /&gt;
		},&lt;br /&gt;
		todaysList: function(pageobj) {&lt;br /&gt;
			var text = pageobj.getPageText();&lt;br /&gt;
			var params = pageobj.getCallbackParameters();&lt;br /&gt;
			var type = &amp;#039;&amp;#039;;&lt;br /&gt;
			var to = &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
			switch (params.xfdcat) {&lt;br /&gt;
				case &amp;#039;vmd&amp;#039;:&lt;br /&gt;
				case &amp;#039;vms&amp;#039;:&lt;br /&gt;
				case &amp;#039;vmb&amp;#039;:&lt;br /&gt;
				case &amp;#039;vmq&amp;#039;:&lt;br /&gt;
				case &amp;#039;vmvoy&amp;#039;:&lt;br /&gt;
				case &amp;#039;vmv&amp;#039;:&lt;br /&gt;
					type = &amp;#039;vm&amp;#039;;&lt;br /&gt;
					to = params.xfdcat;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;fwdcsd&amp;#039;:&lt;br /&gt;
				case &amp;#039;merge&amp;#039;:&lt;br /&gt;
					to = params.mergeinto;&lt;br /&gt;
					/* Fall through */&lt;br /&gt;
				default:&lt;br /&gt;
					type = params.xfdcat;&lt;br /&gt;
					break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var append = true;&lt;br /&gt;
			switch (type) {&lt;br /&gt;
				case &amp;#039;fame&amp;#039;:&lt;br /&gt;
				case &amp;#039;substub&amp;#039;:&lt;br /&gt;
				case &amp;#039;batch&amp;#039;:&lt;br /&gt;
					var commentText = &amp;#039;&amp;lt;!-- Twinkle: User:&amp;#039; + mw.config.get(&amp;#039;wgUserName&amp;#039;) + &amp;#039; 的 &amp;#039; + type + &amp;#039; 提刪插入點，請勿變更或移除此行，除非不再於此頁提刪 --&amp;gt;&amp;#039;;&lt;br /&gt;
					var newText = &amp;#039;===[[:&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]===&amp;#039;;&lt;br /&gt;
					if (type === &amp;#039;fame&amp;#039;) {&lt;br /&gt;
						newText += &amp;#039;\n{{Findsources|&amp;#039; + Morebits.pageNameNorm + &amp;#039;}}&amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
					if (text.indexOf(commentText) !== -1) {&lt;br /&gt;
						text = text.replace(commentText, newText + &amp;#039;\n\n&amp;#039; + commentText);&lt;br /&gt;
						pageobj.setPageText(text);&lt;br /&gt;
						append = false;&lt;br /&gt;
					} else {&lt;br /&gt;
						var appendText = &amp;#039;\n{{safesubst:SafeAfdHead}}\n&amp;#039; +&lt;br /&gt;
							{&lt;br /&gt;
								fame: &amp;#039;==30天后仍掛有{{tl|notability}}模板的條目==\n&amp;#039; +&lt;br /&gt;
									&amp;#039;&amp;lt;span style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;(已掛[[template:notability|關注度模板]]30天)&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
								substub: &amp;#039;==到期篩選的小小作品==&amp;#039;,&lt;br /&gt;
								batch: &amp;#039;==批量提刪==&amp;#039;&lt;br /&gt;
							}[type] + &amp;#039;\n&amp;#039; +&lt;br /&gt;
							newText + &amp;#039;\n\n&amp;#039; +&lt;br /&gt;
							commentText + &amp;#039;\n&amp;#039; +&lt;br /&gt;
							&amp;#039;----\n&amp;#039; +&lt;br /&gt;
							&amp;#039;:{{删除}}理據：&amp;#039; + Morebits.string.formatReasonText(params.xfdreason) + &amp;#039;\n&amp;#039; +&lt;br /&gt;
							&amp;#039;提报以上&amp;#039; + {&lt;br /&gt;
							fame: &amp;#039;&amp;lt;u&amp;gt;关注度不足&amp;lt;/u&amp;gt;条目&amp;#039;,&lt;br /&gt;
							substub: &amp;#039;&amp;lt;u&amp;gt;小小作品&amp;lt;/u&amp;gt;&amp;#039;,&lt;br /&gt;
							batch: &amp;#039;頁面&amp;#039;&lt;br /&gt;
						}[type] + &amp;#039;的維基人及時間：&amp;lt;br id=&amp;quot;no-new-title&amp;quot; /&amp;gt;~~~~&amp;#039;;&lt;br /&gt;
						pageobj.setAppendText(appendText);&lt;br /&gt;
					}&lt;br /&gt;
					break;&lt;br /&gt;
				default:&lt;br /&gt;
					pageobj.setAppendText(&amp;#039;\n{{subst:DRItem|Type=&amp;#039; + type + &amp;#039;|DRarticles=&amp;#039; + Morebits.pageNameNorm + &amp;#039;|Reason=&amp;#039; + Morebits.string.formatReasonText(params.xfdreason) + (params.fwdcsdreason.trim() !== &amp;#039;&amp;#039; ? &amp;#039;&amp;lt;br&amp;gt;\n轉交理由：&amp;#039; + params.fwdcsdreason : &amp;#039;&amp;#039;) + &amp;#039;|To=&amp;#039; + to + &amp;#039;}}~~~~&amp;#039;);&lt;br /&gt;
					break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			pageobj.setEditSummary(&amp;#039;加入[[&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]&amp;#039;);&lt;br /&gt;
			pageobj.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
			pageobj.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchDiscussion&amp;#039;));&lt;br /&gt;
			pageobj.setCreateOption(&amp;#039;recreate&amp;#039;);&lt;br /&gt;
			if (append) {&lt;br /&gt;
				pageobj.append();&lt;br /&gt;
			} else {&lt;br /&gt;
				pageobj.save();&lt;br /&gt;
			}&lt;br /&gt;
			Twinkle.xfd.currentRationale = null;  // any errors from now on do not need to print the rationale, as it is safely saved on-wiki&lt;br /&gt;
		},&lt;br /&gt;
		lookupCreation: function (target_page) {&lt;br /&gt;
			target_page.getStatusElement().info(&amp;#039;完成&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			var params = target_page.getCallbackParameters();&lt;br /&gt;
			params.creator = target_page.getCreator();&lt;br /&gt;
&lt;br /&gt;
			// Tagging page&lt;br /&gt;
			var tagging_page = new Morebits.wiki.page(mw.config.get(&amp;#039;wgPageName&amp;#039;), wgULS(&amp;#039;加入存废讨论模板到页面&amp;#039;, &amp;#039;加入存廢討論模板到頁面&amp;#039;));&lt;br /&gt;
			tagging_page.setFollowRedirect(false);&lt;br /&gt;
			tagging_page.setCallbackParameters(params);&lt;br /&gt;
			tagging_page.load(Twinkle.xfd.callbacks.afd.tryTagging);&lt;br /&gt;
		},&lt;br /&gt;
		tryTagging: function (tagging_page) {&lt;br /&gt;
			var statelem = tagging_page.getStatusElement();&lt;br /&gt;
			// defaults to /doc for lua modules, which may not exist&lt;br /&gt;
			if (!tagging_page.exists()) {&lt;br /&gt;
				statelem.error(wgULS(&amp;#039;页面不存在，可能已被删除&amp;#039;, &amp;#039;頁面不存在，可能已被刪除&amp;#039;));&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var text = tagging_page.getPageText();&lt;br /&gt;
&lt;br /&gt;
			var xfd = /(?:\{\{([rsaiftcmv]fd|md1|proposed deletion)[^{}]*?\}\})/i.exec(text);&lt;br /&gt;
			if (xfd &amp;amp;&amp;amp; !confirm(wgULS(&amp;#039;删除相关模板{{&amp;#039;, &amp;#039;刪除相關模板{{&amp;#039;) + xfd[1] + wgULS(&amp;#039;}}已被置于页面中，您是否仍想继续提报？&amp;#039;, &amp;#039;}}已被置於頁面中，您是否仍想繼續提報？&amp;#039;))) {&lt;br /&gt;
				statelem.error(wgULS(&amp;#039;页面已被提交至存废讨论。&amp;#039;, &amp;#039;頁面已被提交至存廢討論。&amp;#039;));&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var copyvio = /(?:\{\{\s*(copyvio)[^{}]*?\}\})/i.exec(text);&lt;br /&gt;
			if (copyvio) {&lt;br /&gt;
				statelem.error(wgULS(&amp;#039;页面中已有著作权验证模板。&amp;#039;, &amp;#039;頁面中已有著作權驗證模板。&amp;#039;));&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			Twinkle.xfd.callbacks.afd.main(tagging_page);&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	ffd: {&lt;br /&gt;
		main: function(tagging_page) {&lt;br /&gt;
			var params = tagging_page.getCallbackParameters();&lt;br /&gt;
&lt;br /&gt;
			Twinkle.xfd.callbacks.ffd.taggingImage(tagging_page);&lt;br /&gt;
&lt;br /&gt;
			// Adding discussion&lt;br /&gt;
			var wikipedia_page = new Morebits.wiki.page(params.logpage, wgULS(&amp;#039;加入讨论到当日列表&amp;#039;, &amp;#039;加入討論到當日列表&amp;#039;));&lt;br /&gt;
			wikipedia_page.setFollowRedirect(true);&lt;br /&gt;
			wikipedia_page.setCallbackParameters(params);&lt;br /&gt;
			wikipedia_page.load(Twinkle.xfd.callbacks.ffd.todaysList);&lt;br /&gt;
&lt;br /&gt;
			// Notification to first contributor&lt;br /&gt;
			if (params.notify) {&lt;br /&gt;
				// Disallow warning yourself&lt;br /&gt;
				if (params.creator === mw.config.get(&amp;#039;wgUserName&amp;#039;)) {&lt;br /&gt;
					Morebits.status.warn(wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;, wgULS(&amp;#039;您创建了该页，跳过通知&amp;#039;, &amp;#039;您建立了該頁，跳過通知&amp;#039;));&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var talkPageName = &amp;#039;User talk:&amp;#039; + params.creator;&lt;br /&gt;
&lt;br /&gt;
				Morebits.wiki.flow.check(talkPageName, function () {&lt;br /&gt;
					var flowpage = new Morebits.wiki.flow(talkPageName, wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;);&lt;br /&gt;
					flowpage.setTopic(&amp;#039;文件[[:File:&amp;#039; + mw.config.get(&amp;#039;wgTitle&amp;#039;) + &amp;#039;]]存废讨论通知&amp;#039;);&lt;br /&gt;
					flowpage.setContent(&amp;#039;{{subst:idw|File:&amp;#039; + mw.config.get(&amp;#039;wgTitle&amp;#039;) + &amp;#039;|flow=yes}}&amp;#039;);&lt;br /&gt;
					flowpage.newTopic();&lt;br /&gt;
				}, function () {&lt;br /&gt;
					var usertalkpage = new Morebits.wiki.page(talkPageName, wgULS(&amp;#039;通知页面创建者（&amp;#039;, &amp;#039;通知頁面建立者（&amp;#039;) + params.creator + &amp;#039;）&amp;#039;);&lt;br /&gt;
					var notifytext = &amp;#039;\n{{subst:idw|File:&amp;#039; + mw.config.get(&amp;#039;wgTitle&amp;#039;) + &amp;#039;}}--~~~~&amp;#039;;&lt;br /&gt;
					usertalkpage.setAppendText(notifytext);&lt;br /&gt;
					usertalkpage.setEditSummary(&amp;#039;通知：文件[[&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]存废讨论提名&amp;#039;);&lt;br /&gt;
					usertalkpage.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
					usertalkpage.setCreateOption(&amp;#039;recreate&amp;#039;);&lt;br /&gt;
					usertalkpage.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchUser&amp;#039;));&lt;br /&gt;
					usertalkpage.setFollowRedirect(true, false);&lt;br /&gt;
					usertalkpage.append();&lt;br /&gt;
				});&lt;br /&gt;
				// add this nomination to the user&amp;#039;s userspace log, if the user has enabled it&lt;br /&gt;
				if (params.lognomination) {&lt;br /&gt;
					Twinkle.xfd.callbacks.addToLog(params, params.creator);&lt;br /&gt;
				}&lt;br /&gt;
			// or, if not notifying, add this nomination to the user&amp;#039;s userspace log without the initial contributor&amp;#039;s name&lt;br /&gt;
			} else if (params.lognomination) {&lt;br /&gt;
				Twinkle.xfd.callbacks.addToLog(params, null);&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		taggingImage: function(pageobj) {&lt;br /&gt;
			var text = pageobj.getPageText();&lt;br /&gt;
			var params = pageobj.getCallbackParameters();&lt;br /&gt;
&lt;br /&gt;
			pageobj.setPageText(&amp;#039;{{ifd|&amp;#039; + Morebits.string.formatReasonText(params.xfdreason) + &amp;#039;|date={{subst:#time:Y/m/d}}}}\n&amp;#039; + text);&lt;br /&gt;
			pageobj.setEditSummary(wgULS(&amp;#039;文件存废讨论：[[&amp;#039;, &amp;#039;檔案存廢討論：[[&amp;#039;) + params.logpage + &amp;#039;#&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]&amp;#039;);&lt;br /&gt;
			pageobj.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
			pageobj.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchPage&amp;#039;));&lt;br /&gt;
			pageobj.setCreateOption(&amp;#039;recreate&amp;#039;);  // it might be possible for a file to exist without a description page&lt;br /&gt;
			pageobj.save();&lt;br /&gt;
		},&lt;br /&gt;
		todaysList: function(pageobj) {&lt;br /&gt;
			// var text = pageobj.getPageText();&lt;br /&gt;
			var params = pageobj.getCallbackParameters();&lt;br /&gt;
&lt;br /&gt;
			pageobj.setAppendText(&amp;#039;\n{{subst:IfdItem|Filename=&amp;#039; + mw.config.get(&amp;#039;wgTitle&amp;#039;) + &amp;#039;|Uploader=&amp;#039; + params.creator + &amp;#039;|Reason=&amp;#039; + Morebits.string.formatReasonText(params.xfdreason) + &amp;#039;}}--~~~~&amp;#039;);&lt;br /&gt;
			pageobj.setEditSummary(&amp;#039;加入[[&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]&amp;#039;);&lt;br /&gt;
			pageobj.setChangeTags(Twinkle.changeTags);&lt;br /&gt;
			pageobj.setWatchlist(Twinkle.getPref(&amp;#039;xfdWatchDiscussion&amp;#039;));&lt;br /&gt;
			pageobj.setCreateOption(&amp;#039;recreate&amp;#039;);&lt;br /&gt;
			pageobj.append(function() {&lt;br /&gt;
				Twinkle.xfd.currentRationale = null;  // any errors from now on do not need to print the rationale, as it is safely saved on-wiki&lt;br /&gt;
			});&lt;br /&gt;
		},&lt;br /&gt;
		lookupCreation: function (target_page) {&lt;br /&gt;
			target_page.getStatusElement().info(&amp;#039;完成&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			var params = target_page.getCallbackParameters();&lt;br /&gt;
			params.creator = target_page.getCreator();&lt;br /&gt;
&lt;br /&gt;
			// Tagging file&lt;br /&gt;
			var tagging_page = new Morebits.wiki.page(mw.config.get(&amp;#039;wgPageName&amp;#039;), wgULS(&amp;#039;加入存废讨论模板到文件描述页&amp;#039;, &amp;#039;加入存廢討論模板到檔案描述頁&amp;#039;));&lt;br /&gt;
			tagging_page.setFollowRedirect(false);&lt;br /&gt;
			tagging_page.setCallbackParameters(params);&lt;br /&gt;
			tagging_page.load(Twinkle.xfd.callbacks.ffd.tryTagging);&lt;br /&gt;
		},&lt;br /&gt;
		tryTagging: function (tagging_page) {&lt;br /&gt;
			var statelem = tagging_page.getStatusElement();&lt;br /&gt;
			if (!tagging_page.exists()) {&lt;br /&gt;
				statelem.error(wgULS(&amp;#039;页面不存在，可能已被删除&amp;#039;, &amp;#039;頁面不存在，可能已被刪除&amp;#039;));&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var text = tagging_page.getPageText();&lt;br /&gt;
&lt;br /&gt;
			var xfd = /(?:\{\{([rsaiftcmv]fd|md1|proposed deletion)[^{}]*?\}\})/i.exec(text);&lt;br /&gt;
			if (xfd &amp;amp;&amp;amp; !confirm(wgULS(&amp;#039;删除相关模板{{&amp;#039;, &amp;#039;刪除相關模板{{&amp;#039;) + xfd[1] + wgULS(&amp;#039;}}已被置于页面中，您是否仍想继续提报？&amp;#039;, &amp;#039;}}已被置於頁面中，您是否仍想繼續提報？&amp;#039;))) {&lt;br /&gt;
				statelem.error(wgULS(&amp;#039;页面已被提交至存废讨论。&amp;#039;, &amp;#039;頁面已被提交至存廢討論。&amp;#039;));&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			Twinkle.xfd.callbacks.ffd.main(tagging_page);&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	addToLog: function(params, initialContrib) {&lt;br /&gt;
		var editsummary = wgULS(&amp;#039;记录对[[&amp;#039;, &amp;#039;記錄對[[&amp;#039;) + Morebits.pageNameNorm + wgULS(&amp;#039;]]的存废讨论提名&amp;#039;, &amp;#039;]]的存廢討論提名&amp;#039;);&lt;br /&gt;
		var usl = new Morebits.userspaceLogger(Twinkle.getPref(&amp;#039;xfdLogPageName&amp;#039;));&lt;br /&gt;
		usl.initialText =&lt;br /&gt;
			wgULS(&amp;#039;这是该用户使用[[WP:TW|Twinkle]]的提删模块做出的[[WP:XFD|存废讨论]]提名列表。\n\n&amp;#039; +&lt;br /&gt;
			&amp;#039;如果您不再想保留此日志，请在[[&amp;#039; + Twinkle.getPref(&amp;#039;configPage&amp;#039;) + &amp;#039;|参数设置]]中关掉，并&amp;#039; +&lt;br /&gt;
			&amp;#039;使用[[WP:CSD#O1|CSD O1]]提交快速删除。&amp;#039;,&lt;br /&gt;
			&amp;#039;這是該使用者使用[[WP:TW|Twinkle]]的提刪模塊做出的[[WP:XFD|存廢討論]]提名列表。\n\n&amp;#039; +&lt;br /&gt;
			&amp;#039;如果您不再想保留此日誌，請在[[&amp;#039; + Twinkle.getPref(&amp;#039;configPage&amp;#039;) + &amp;#039;|偏好設定]]中關掉，並&amp;#039; +&lt;br /&gt;
			&amp;#039;使用[[WP:CSD#O1|CSD O1]]提交快速刪除。&amp;#039;);&lt;br /&gt;
		var xfdCatName;&lt;br /&gt;
		switch (params.xfdcat) {&lt;br /&gt;
			case &amp;#039;delete&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;删除&amp;#039;, &amp;#039;刪除&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;merge&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;合并到&amp;#039;, &amp;#039;合併到&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vmd&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基词典&amp;#039;, &amp;#039;移動到維基詞典&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vms&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基文库&amp;#039;, &amp;#039;移動到維基文庫&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vmb&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基教科书&amp;#039;, &amp;#039;移動到維基教科書&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vmq&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基语录&amp;#039;, &amp;#039;移動到維基語錄&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vmvoy&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基导游&amp;#039;, &amp;#039;移動到維基導遊&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;vmv&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;移动到维基学院&amp;#039;, &amp;#039;移動到維基學院&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;fwdcsd&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;转交自快速删除候选&amp;#039;, &amp;#039;轉交自快速刪除候選&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;fame&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;批量关注度提删&amp;#039;, &amp;#039;批次關注度提刪&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;substub&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;批量小小作品提删&amp;#039;, &amp;#039;批次小小作品提刪&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			case &amp;#039;batch&amp;#039;:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;批量其他提删&amp;#039;, &amp;#039;批次其他提刪&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
				xfdCatName = wgULS(&amp;#039;文件存废讨论&amp;#039;, &amp;#039;檔案存廢討論&amp;#039;);&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a logged file is deleted but exists on commons, the wikilink will be blue, so provide a link to the log&lt;br /&gt;
		var appendText = &amp;#039;# [[:&amp;#039; + Morebits.pageNameNorm + &amp;#039;]]&amp;#039;;&lt;br /&gt;
		if (mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;) === 6) {&lt;br /&gt;
			appendText += &amp;#039;（[{{fullurl:Special:Log|page=&amp;#039; + mw.util.wikiUrlencode(mw.config.get(&amp;#039;wgPageName&amp;#039;)) + &amp;#039;}} &amp;#039; + wgULS(&amp;#039;日志&amp;#039;, &amp;#039;日誌&amp;#039;) + &amp;#039;]）&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		appendText += &amp;#039;：&amp;#039; + xfdCatName;&lt;br /&gt;
		if (params.xfdcat === &amp;#039;merge&amp;#039;) {&lt;br /&gt;
			appendText += &amp;#039;[[:&amp;#039; + params.mergeinto + &amp;#039;]]&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		appendText += &amp;#039;。&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
		if (params.xfdreason) {&lt;br /&gt;
			appendText += &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; + (params.xfdcat === &amp;#039;fwdcsd&amp;#039; ? wgULS(&amp;#039;原删除理据&amp;#039;, &amp;#039;原刪除理據&amp;#039;) : wgULS(&amp;#039;理据&amp;#039;, &amp;#039;理據&amp;#039;)) + &amp;quot;&amp;#039;&amp;#039;&amp;#039;：&amp;quot; + Morebits.string.formatReasonForLog(params.xfdreason);&lt;br /&gt;
			appendText = Morebits.string.appendPunctuation(appendText);&lt;br /&gt;
		}&lt;br /&gt;
		if (params.fwdcsdreason) {&lt;br /&gt;
			appendText += &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; + (params.xfdcat === &amp;#039;fwdcsd&amp;#039; ? wgULS(&amp;#039;转交理据&amp;#039;, &amp;#039;轉交理據&amp;#039;) : wgULS(&amp;#039;理据&amp;#039;, &amp;#039;理據&amp;#039;)) + &amp;quot;&amp;#039;&amp;#039;&amp;#039;：&amp;quot; + Morebits.string.formatReasonForLog(params.fwdcsdreason);&lt;br /&gt;
			appendText = Morebits.string.appendPunctuation(appendText);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (initialContrib) {&lt;br /&gt;
			appendText += &amp;#039;；通知{{user|&amp;#039; + initialContrib + &amp;#039;}}&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		appendText += &amp;#039; ~~~~~\n&amp;#039;;&lt;br /&gt;
		usl.changeTags = Twinkle.changeTags;&lt;br /&gt;
		usl.log(appendText, editsummary);&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.xfd.callback.evaluate = function(e) {&lt;br /&gt;
	var params = Morebits.quickForm.getInputData(e.target);&lt;br /&gt;
	if (params.xfdcat === &amp;#039;merge&amp;#039; &amp;amp;&amp;amp; params.mergeinto.trim() === &amp;#039;&amp;#039;) {&lt;br /&gt;
		alert(wgULS(&amp;#039;请提供合并目标！&amp;#039;, &amp;#039;請提供合併目標！&amp;#039;));&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	Morebits.simpleWindow.setButtonsEnabled(false);&lt;br /&gt;
	Morebits.status.init(e.target);&lt;br /&gt;
&lt;br /&gt;
	Twinkle.xfd.currentRationale = params.xfdreason;&lt;br /&gt;
	Morebits.status.onError(Twinkle.xfd.printRationale);&lt;br /&gt;
&lt;br /&gt;
	if (!params.category) {&lt;br /&gt;
		Morebits.status.error(&amp;#039;错误&amp;#039;, &amp;#039;未定义的动作&amp;#039;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var target_page;&lt;br /&gt;
	var date = new Morebits.date(); // XXX: avoid use of client clock, still used by TfD, FfD and CfD&lt;br /&gt;
	switch (params.category) {&lt;br /&gt;
		case &amp;#039;afd&amp;#039;: // AFD&lt;br /&gt;
			params.logpage = &amp;#039;Wikipedia:頁面存廢討論/記錄/&amp;#039; + date.format(&amp;#039;YYYY/MM/DD&amp;#039;, &amp;#039;utc&amp;#039;);&lt;br /&gt;
			params.lognomination = Twinkle.getPref(&amp;#039;logXfdNominations&amp;#039;) &amp;amp;&amp;amp; Twinkle.getPref(&amp;#039;noLogOnXfdNomination&amp;#039;).indexOf(params.xfdcat) === -1;&lt;br /&gt;
&lt;br /&gt;
			Morebits.wiki.addCheckpoint();&lt;br /&gt;
			// Updating data for the action completed event&lt;br /&gt;
			Morebits.wiki.actionCompleted.redirect = params.logpage;&lt;br /&gt;
			Morebits.wiki.actionCompleted.notice = wgULS(&amp;#039;提名完成，重定向到讨论页&amp;#039;, &amp;#039;提名完成，重新導向到討論頁&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			// Lookup creation&lt;br /&gt;
			target_page = new Morebits.wiki.page(mw.config.get(&amp;#039;wgPageName&amp;#039;), wgULS(&amp;#039;获取页面创建信息&amp;#039;, &amp;#039;取得頁面建立資訊&amp;#039;));&lt;br /&gt;
			target_page.setCallbackParameters(params);&lt;br /&gt;
			if (mw.config.get(&amp;#039;wgPageContentModel&amp;#039;) === &amp;#039;wikitext&amp;#039;) {&lt;br /&gt;
				target_page.setLookupNonRedirectCreator(true); // Look for author of first non-redirect revision&lt;br /&gt;
			}&lt;br /&gt;
			target_page.lookupCreation(Twinkle.xfd.callbacks.afd.lookupCreation);&lt;br /&gt;
&lt;br /&gt;
			Morebits.wiki.removeCheckpoint();&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case &amp;#039;ffd&amp;#039;: // FFD&lt;br /&gt;
			params.logpage = &amp;#039;Wikipedia:檔案存廢討論/記錄/&amp;#039; + date.format(&amp;#039;YYYY/MM/DD&amp;#039;, &amp;#039;utc&amp;#039;);&lt;br /&gt;
			params.lognomination = Twinkle.getPref(&amp;#039;logXfdNominations&amp;#039;) &amp;amp;&amp;amp; Twinkle.getPref(&amp;#039;noLogOnXfdNomination&amp;#039;).indexOf(&amp;#039;ffd&amp;#039;) === -1;&lt;br /&gt;
&lt;br /&gt;
			Morebits.wiki.addCheckpoint();&lt;br /&gt;
			// Updating data for the action completed event&lt;br /&gt;
			Morebits.wiki.actionCompleted.redirect = params.logpage;&lt;br /&gt;
			Morebits.wiki.actionCompleted.notice = wgULS(&amp;#039;提名完成，重定向到讨论页&amp;#039;, &amp;#039;提名完成，重新導向到討論頁&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			// Lookup creation&lt;br /&gt;
			var wikipedia_page = new Morebits.wiki.page(mw.config.get(&amp;#039;wgPageName&amp;#039;), wgULS(&amp;#039;获取页面创建信息&amp;#039;, &amp;#039;取得頁面建立資訊&amp;#039;));&lt;br /&gt;
			wikipedia_page.setCallbackParameters(params);&lt;br /&gt;
			wikipedia_page.setLookupNonRedirectCreator(true); // Look for author of first non-redirect revision&lt;br /&gt;
			wikipedia_page.lookupCreation(Twinkle.xfd.callbacks.ffd.lookupCreation);&lt;br /&gt;
&lt;br /&gt;
			Morebits.wiki.removeCheckpoint();&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		default:&lt;br /&gt;
			alert(&amp;#039;twinklexfd：未定义的类别&amp;#039;);&lt;br /&gt;
			break;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Twinkle.addInitCallback(Twinkle.xfd, &amp;#039;xfd&amp;#039;);&lt;br /&gt;
})(jQuery);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>入我相思门</name></author>
	</entry>
</feed>