<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-PreviewWithVariant.js</id>
	<title>MediaWiki:Gadget-PreviewWithVariant.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-PreviewWithVariant.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;action=history"/>
	<updated>2026-07-09T17:47:23Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;diff=755220&amp;oldid=prev</id>
		<title>imported&gt;Shizhao：​ep</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;diff=755220&amp;oldid=prev"/>
		<updated>2024-12-24T09:28:20Z</updated>

		<summary type="html">&lt;p&gt;ep&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * @file Add a &amp;quot;Preview with variant&amp;quot; option to the edit form.&lt;br /&gt;
 * @author [[zh:User:Diskdance]]&lt;br /&gt;
 * @author [[zh:User:Lt2818]]&lt;br /&gt;
 * @license MIT&lt;br /&gt;
 */&lt;br /&gt;
// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
( function () {&lt;br /&gt;
	var conv = require( &amp;#039;ext.gadget.HanAssist&amp;#039; ).conv;&lt;br /&gt;
	var initialized = false;&lt;br /&gt;
	// This is initialized by ext.WikiEditor.realtimepreview.enable hook below&lt;br /&gt;
	// which is always called when Realtime Preview is enabled&lt;br /&gt;
	var realtimePreviewClass;&lt;br /&gt;
	mw.hook( &amp;#039;ext.WikiEditor.realtimepreview.enable&amp;#039; ).add( function ( realtimePreview ) {&lt;br /&gt;
		if ( !realtimePreviewClass ) {&lt;br /&gt;
			realtimePreviewClass = realtimePreview;&lt;br /&gt;
		}&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	mw.hook( &amp;#039;wikipage.editform&amp;#039; ).add( function ( $editForm ) {&lt;br /&gt;
		if ( initialized ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var $templateSandboxPreview = $editForm.find( &amp;#039;input[name=&amp;quot;wpTemplateSandboxPreview&amp;quot;]&amp;#039; );&lt;br /&gt;
		// It is possible that a user want to preview a page with a non-wikitext module&lt;br /&gt;
		// Do not return in this case&lt;br /&gt;
		if (&lt;br /&gt;
			mw.config.get( &amp;#039;wgPageContentModel&amp;#039; ) !== &amp;#039;wikitext&amp;#039; &amp;amp;&amp;amp;&lt;br /&gt;
			!$templateSandboxPreview.length&lt;br /&gt;
		) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var $layout = $editForm.find( &amp;#039;.editCheckboxes .oo-ui-horizontalLayout&amp;#039; );&lt;br /&gt;
		if ( !$layout.length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		initialized = true;&lt;br /&gt;
&lt;br /&gt;
		var VARIANTS = [&lt;br /&gt;
			{ data: &amp;#039;zh&amp;#039;, label: conv( { hans: &amp;#039;不转换&amp;#039;, hant: &amp;#039;不轉換&amp;#039; } ) },&lt;br /&gt;
			{ data: &amp;#039;zh-hans&amp;#039;, label: &amp;#039;简体&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-hant&amp;#039;, label: &amp;#039;繁體&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-cn&amp;#039;, label: &amp;#039;大陆简体&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-hk&amp;#039;, label: &amp;#039;香港繁體&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-mo&amp;#039;, label: &amp;#039;澳門繁體&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-my&amp;#039;, label: &amp;#039;大马简体&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-sg&amp;#039;, label: &amp;#039;新加坡简体&amp;#039; },&lt;br /&gt;
			{ data: &amp;#039;zh-tw&amp;#039;, label: &amp;#039;臺灣正體&amp;#039; }&lt;br /&gt;
		];&lt;br /&gt;
		var uriVariant = new URL( window.location.href ).searchParams.get( &amp;#039;variant&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
		/**&lt;br /&gt;
		 * @param {string|null} variant null for default variant&lt;br /&gt;
		 */&lt;br /&gt;
		function setVariant( variant ) {&lt;br /&gt;
			// Normal Preview&lt;br /&gt;
			var originalAction = $editForm.attr( &amp;#039;action&amp;#039; );&lt;br /&gt;
			if ( originalAction ) {&lt;br /&gt;
				var url = new URL( originalAction, window.location.href );&lt;br /&gt;
				if ( variant === null ) {&lt;br /&gt;
					url.searchParams.delete( &amp;#039;variant&amp;#039; );&lt;br /&gt;
				} else {&lt;br /&gt;
					url.searchParams.set( &amp;#039;variant&amp;#039;, variant );&lt;br /&gt;
				}&lt;br /&gt;
				$editForm.attr( &amp;#039;action&amp;#039;, url.href );&lt;br /&gt;
			}&lt;br /&gt;
			// Live Preview&lt;br /&gt;
			mw.config.set( &amp;#039;wgUserVariant&amp;#039;, variant || uriVariant || mw.user.options.get( &amp;#039;variant&amp;#039; ) );&lt;br /&gt;
			// Realtime Preview&lt;br /&gt;
			if ( realtimePreviewClass ) {&lt;br /&gt;
				realtimePreviewClass.doRealtimePreview( true );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var checkbox = new OO.ui.CheckboxInputWidget( {&lt;br /&gt;
			selected: !!uriVariant&lt;br /&gt;
		} );&lt;br /&gt;
		var dropdown = new OO.ui.DropdownInputWidget( {&lt;br /&gt;
			$overlay: true,&lt;br /&gt;
			disabled: !checkbox.isSelected(),&lt;br /&gt;
			options: VARIANTS,&lt;br /&gt;
			value: mw.config.get( &amp;#039;wgUserVariant&amp;#039; ) || uriVariant || mw.user.options.get( &amp;#039;variant&amp;#039; )&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
		checkbox.on( &amp;#039;change&amp;#039;, function ( selected ) {&lt;br /&gt;
			dropdown.setDisabled( !selected );&lt;br /&gt;
			setVariant( selected ? dropdown.getValue() : null );&lt;br /&gt;
		} );&lt;br /&gt;
		dropdown.on( &amp;#039;change&amp;#039;, setVariant );&lt;br /&gt;
&lt;br /&gt;
		var checkboxField = new OO.ui.FieldLayout( checkbox, {&lt;br /&gt;
			align: &amp;#039;inline&amp;#039;,&lt;br /&gt;
			label: conv( { hans: &amp;#039;预览字词转换&amp;#039;, hant: &amp;#039;預覽字詞轉換&amp;#039; } )&lt;br /&gt;
		} );&lt;br /&gt;
		var dropdownField = new OO.ui.FieldLayout( dropdown, {&lt;br /&gt;
			align: &amp;#039;top&amp;#039;,&lt;br /&gt;
			label: conv( { hans: &amp;#039;使用该语言变体显示预览：&amp;#039;, hant: &amp;#039;使用該語言變體顯示預覽：&amp;#039; } ),&lt;br /&gt;
			invisibleLabel: true&lt;br /&gt;
		} );&lt;br /&gt;
		$layout.append( checkboxField.$element, dropdownField.$element );&lt;br /&gt;
	} );&lt;br /&gt;
&lt;br /&gt;
	// Register 2017 wikitext editor version to VE&lt;br /&gt;
	mw.loader.using( &amp;#039;ext.visualEditor.desktopArticleTarget.init&amp;#039; ).then( function () {&lt;br /&gt;
		mw.libs.ve.addPlugin( &amp;#039;ext.gadget.PreviewWithVariant2017&amp;#039; );&lt;br /&gt;
	} );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>imported&gt;Shizhao</name></author>
	</entry>
</feed>