<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://test.zybkcn.com/w/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://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-PreviewWithVariant.js"/>
	<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;action=history"/>
	<updated>2026-07-18T01:06:50Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;diff=297&amp;oldid=prev</id>
		<title>鹿野耕云：​创建页面，内容为“/**  * SPDX-License-Identifier: MIT + CC-BY-SA-4.0  * _addText: &#039;{{Gadget Header|license=CC-BY-SA-4.0}}&#039;  * _addText: &#039;{{Gadget Header|license=MIT|attribution=Diskdance, Lt2818}}&#039;  *  * @base {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWithVariant.js}  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/PreviewWithVariant}  * @license MIT {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWith…”</title>
		<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-PreviewWithVariant.js&amp;diff=297&amp;oldid=prev"/>
		<updated>2026-06-14T07:29:25Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“/**  * SPDX-License-Identifier: MIT + CC-BY-SA-4.0  * _addText: &amp;#039;{{Gadget Header|license=CC-BY-SA-4.0}}&amp;#039;  * _addText: &amp;#039;{{Gadget Header|license=MIT|attribution=Diskdance, Lt2818}}&amp;#039;  *  * @base {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWithVariant.js}  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/PreviewWithVariant}  * @license MIT {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWith…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * SPDX-License-Identifier: MIT + CC-BY-SA-4.0&lt;br /&gt;
 * _addText: &amp;#039;{{Gadget Header|license=CC-BY-SA-4.0}}&amp;#039;&lt;br /&gt;
 * _addText: &amp;#039;{{Gadget Header|license=MIT|attribution=Diskdance, Lt2818}}&amp;#039;&lt;br /&gt;
 *&lt;br /&gt;
 * @base {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWithVariant.js}&lt;br /&gt;
 * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/PreviewWithVariant}&lt;br /&gt;
 * @license MIT {@link https://zh.wikipedia.org/wiki/MediaWiki:Gadget-PreviewWithVariant.js}&lt;br /&gt;
 * @license CC-BY-SA-4.0 {@link https://www.qiuwenbaike.cn/wiki/H:CC-BY-SA-4.0}&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright Diskdance, Lt2818&lt;br /&gt;
 *&lt;br /&gt;
 * Permission is hereby granted, free of charge, to any person obtaining&lt;br /&gt;
 * a copy of this software and associated documentation files (the&lt;br /&gt;
 * &amp;quot;Software&amp;quot;), to deal in the Software without restriction, including&lt;br /&gt;
 * without limitation the rights to use, copy, modify, merge, publish,&lt;br /&gt;
 * distribute, sublicense, and/or sell copies of the Software, and to&lt;br /&gt;
 * permit persons to whom the Software is furnished to do so, subject to&lt;br /&gt;
 * the following conditions:&lt;br /&gt;
 *&lt;br /&gt;
 * The above copyright notice and this permission notice shall be&lt;br /&gt;
 * included in all copies or substantial portions of the Software.&lt;br /&gt;
 *&lt;br /&gt;
 * THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND,&lt;br /&gt;
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF&lt;br /&gt;
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE&lt;br /&gt;
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION&lt;br /&gt;
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION&lt;br /&gt;
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |            === WARNING: GLOBAL GADGET FILE ===             |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |       All changes should be made in the repository,        |&lt;br /&gt;
 * |                otherwise they will be lost.                |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |        Changes to this page may affect many users.         |&lt;br /&gt;
 * | Please discuss changes by opening an issue before editing. |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 */&lt;br /&gt;
/* &amp;lt;nowiki&amp;gt; */&lt;br /&gt;
&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// dist/PreviewWithVariant/PreviewWithVariant.js&lt;br /&gt;
//! src/PreviewWithVariant/options.json&lt;br /&gt;
var configKey = &amp;quot;gadget-PreviewWithVariant__Initialized&amp;quot;;&lt;br /&gt;
//! src/PreviewWithVariant/modules/processWikiEditor.ts&lt;br /&gt;
var import_ext_gadget = require(&amp;quot;ext.gadget.Util&amp;quot;);&lt;br /&gt;
//! src/PreviewWithVariant/modules/constant.ts&lt;br /&gt;
var VARIANTS = [{&lt;br /&gt;
  data: &amp;quot;zh&amp;quot;,&lt;br /&gt;
  label: window.wgULS(&amp;quot;不转换&amp;quot;, &amp;quot;不轉換&amp;quot;)&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-hans&amp;quot;,&lt;br /&gt;
  label: &amp;quot;简体&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-hant&amp;quot;,&lt;br /&gt;
  label: &amp;quot;繁體&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-cn&amp;quot;,&lt;br /&gt;
  label: &amp;quot;中国大陆简体&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-hk&amp;quot;,&lt;br /&gt;
  label: &amp;quot;中國香港繁體&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-mo&amp;quot;,&lt;br /&gt;
  label: &amp;quot;中國澳門繁體&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-my&amp;quot;,&lt;br /&gt;
  label: &amp;quot;马来西亚简体&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-sg&amp;quot;,&lt;br /&gt;
  label: &amp;quot;新加坡简体&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
  data: &amp;quot;zh-tw&amp;quot;,&lt;br /&gt;
  label: &amp;quot;中國臺灣繁體&amp;quot;&lt;br /&gt;
}];&lt;br /&gt;
//! src/PreviewWithVariant/modules/processWikiEditor.ts&lt;br /&gt;
var processWikiEditor = ($editForm) =&amp;gt; {&lt;br /&gt;
  if (mw.config.get(configKey)) {&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  const {&lt;br /&gt;
    wgPageContentModel,&lt;br /&gt;
    wgUserVariant&lt;br /&gt;
  } = mw.config.get();&lt;br /&gt;
  const $templateSandboxPreview = $editForm.find(&amp;#039;input[name=&amp;quot;wpTemplateSandboxPreview&amp;quot;]&amp;#039;);&lt;br /&gt;
  if (wgPageContentModel !== &amp;quot;wikitext&amp;quot; &amp;amp;&amp;amp; !$templateSandboxPreview.length) {&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  const $layout = $editForm.find(&amp;quot;.editCheckboxes .oo-ui-horizontalLayout&amp;quot;);&lt;br /&gt;
  if (!$layout.length) {&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  mw.config.set(configKey, true);&lt;br /&gt;
  const uriVariant = mw.util.getParamValue(&amp;quot;variant&amp;quot;);&lt;br /&gt;
  const checkbox = new OO.ui.CheckboxInputWidget({&lt;br /&gt;
    selected: Boolean(uriVariant)&lt;br /&gt;
  });&lt;br /&gt;
  const dropdown = new OO.ui.DropdownWidget({&lt;br /&gt;
    $overlay: true,&lt;br /&gt;
    disabled: !checkbox.isSelected(),&lt;br /&gt;
    menu: {&lt;br /&gt;
      items: VARIANTS.map(({&lt;br /&gt;
        data,&lt;br /&gt;
        label&lt;br /&gt;
      }) =&amp;gt; {&lt;br /&gt;
        return new OO.ui.MenuOptionWidget({&lt;br /&gt;
          data,&lt;br /&gt;
          label&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  dropdown.getMenu().selectItemByData(wgUserVariant || uriVariant || mw.user.options.get(&amp;quot;variant&amp;quot;));&lt;br /&gt;
  checkbox.on(&amp;quot;change&amp;quot;, (selected) =&amp;gt; {&lt;br /&gt;
    dropdown.setDisabled(!selected);&lt;br /&gt;
  });&lt;br /&gt;
  const getSelectedVariant = () =&amp;gt; {&lt;br /&gt;
    if (!checkbox.isSelected()) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    const selectedItem = dropdown.getMenu().findSelectedItem();&lt;br /&gt;
    return selectedItem ? selectedItem.getData() : void 0;&lt;br /&gt;
  };&lt;br /&gt;
  const manipulateActionUrl = () =&amp;gt; {&lt;br /&gt;
    const selectedVariant = getSelectedVariant();&lt;br /&gt;
    const originalAction = $editForm.attr(&amp;quot;action&amp;quot;);&lt;br /&gt;
    if (selectedVariant &amp;amp;&amp;amp; originalAction) {&lt;br /&gt;
      $editForm.attr(&amp;quot;action&amp;quot;, new import_ext_gadget.MwUri(originalAction).extend({&lt;br /&gt;
        variant: selectedVariant&lt;br /&gt;
      }).getRelativePath());&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  const manipulateVariantConfig = () =&amp;gt; {&lt;br /&gt;
    mw.config.set(&amp;quot;wgUserVariant&amp;quot;, getSelectedVariant() || mw.user.options.get(&amp;quot;variant&amp;quot;));&lt;br /&gt;
  };&lt;br /&gt;
  $editForm.find(&amp;quot;input[name=wpPreview]&amp;quot;).on(&amp;quot;click&amp;quot;, mw.user.options.get(&amp;quot;uselivepreview&amp;quot;) ? manipulateVariantConfig : manipulateActionUrl);&lt;br /&gt;
  $templateSandboxPreview.on(&amp;quot;click&amp;quot;, manipulateActionUrl);&lt;br /&gt;
  dropdown.getMenu().on(&amp;quot;select&amp;quot;, manipulateVariantConfig);&lt;br /&gt;
  const checkboxField = new OO.ui.FieldLayout(checkbox, {&lt;br /&gt;
    align: &amp;quot;inline&amp;quot;,&lt;br /&gt;
    label: window.wgULS(&amp;quot;预览字词转换&amp;quot;, &amp;quot;預覽字詞轉換&amp;quot;)&lt;br /&gt;
  });&lt;br /&gt;
  const dropdownField = new OO.ui.FieldLayout(dropdown, {&lt;br /&gt;
    align: &amp;quot;top&amp;quot;,&lt;br /&gt;
    label: window.wgULS(&amp;quot;使用该语言变体显示预览：&amp;quot;, &amp;quot;使用該語言變體顯示預覽：&amp;quot;),&lt;br /&gt;
    invisibleLabel: true&lt;br /&gt;
  });&lt;br /&gt;
  $layout.append($(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;).attr(&amp;quot;id&amp;quot;, &amp;quot;pwv-area&amp;quot;).append(checkboxField.$element, dropdownField.$element));&lt;br /&gt;
};&lt;br /&gt;
//! src/PreviewWithVariant/PreviewWithVariant.ts&lt;br /&gt;
(function previewWithVariants() {&lt;br /&gt;
  mw.hook(&amp;quot;wikipage.editform&amp;quot;).add(($editForm) =&amp;gt; {&lt;br /&gt;
    processWikiEditor($editForm);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* &amp;lt;/nowiki&amp;gt; */&lt;/div&gt;</summary>
		<author><name>鹿野耕云</name></author>
	</entry>
</feed>