<?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-WikidataDesc.js</id>
	<title>MediaWiki:Gadget-WikidataDesc.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-WikidataDesc.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-WikidataDesc.js&amp;action=history"/>
	<updated>2026-07-18T17:48:22Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-WikidataDesc.js&amp;diff=2930362&amp;oldid=prev</id>
		<title>2024年6月23日 (日) 08:22 imported&gt;Shizhao</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-WikidataDesc.js&amp;diff=2930362&amp;oldid=prev"/>
		<updated>2024-06-23T08:22:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * WikidataDesc&lt;br /&gt;
 *&lt;br /&gt;
 * 在条目顶端显示/编辑维基数据描述&lt;br /&gt;
 *&lt;br /&gt;
 * 原作者：User:Alexander Misel （[[Special:Permalink/45559457]]）&lt;br /&gt;
 * 改进  ：User:逆襲的天邪鬼&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
mw.loader.using(&amp;#039;mediawiki.ForeignApi&amp;#039;).done(function () {&lt;br /&gt;
    &amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    var UI = [&amp;#039;zh-hk&amp;#039;,&amp;#039;zh-mo&amp;#039;,&amp;#039;zh-tw&amp;#039;].indexOf(mw.config.get(&amp;#039;wgUserLanguage&amp;#039;))!==-1 ? {&lt;br /&gt;
        SAVING: &amp;#039;正在儲存&amp;#039;,&lt;br /&gt;
        EDIT: &amp;#039;編輯&amp;#039;,&lt;br /&gt;
        SAVE: &amp;#039;儲存&amp;#039;,&lt;br /&gt;
        CANCEL: &amp;#039;取消&amp;#039;,&lt;br /&gt;
        PLACEHOLDER: &amp;#039;維基數據描述&amp;#039;,&lt;br /&gt;
        EMPTY: &amp;#039;無描述&amp;#039;,&lt;br /&gt;
        SUCCESS: &amp;#039;儲存成功&amp;#039;,&lt;br /&gt;
        ERROR: &amp;#039;發生错误&amp;#039;,&lt;br /&gt;
    } : {&lt;br /&gt;
        SAVING: &amp;#039;正在保存&amp;#039;,&lt;br /&gt;
        EDIT: &amp;#039;编辑&amp;#039;,&lt;br /&gt;
        SAVE: &amp;#039;保存&amp;#039;,&lt;br /&gt;
        CANCEL: &amp;#039;取消&amp;#039;,&lt;br /&gt;
        PLACEHOLDER: &amp;#039;维基数据描述&amp;#039;,&lt;br /&gt;
        EMPTY: &amp;#039;无描述&amp;#039;,&lt;br /&gt;
        SUCCESS: &amp;#039;保存成功&amp;#039;,&lt;br /&gt;
        ERROR: &amp;#039;发生错误&amp;#039;,&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var $desc = $(&amp;#039;&amp;lt;div id=&amp;quot;wikidatadesc&amp;quot; class=&amp;quot;noprint&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
    var $saving = $(&amp;#039;&amp;lt;span id=&amp;quot;wikidatadesc_loading&amp;quot; class=&amp;quot;text option&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;（&amp;#039; + UI.SAVING + &amp;#039;）&amp;lt;/span&amp;gt;&amp;#039;);&lt;br /&gt;
    var $text = $(&amp;#039;&amp;lt;span id=&amp;quot;wikidatadesc_text&amp;quot; class=&amp;quot;text&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
    var $editlink = $(&amp;#039;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;option&amp;quot;&amp;gt;[&amp;#039; + UI.EDIT + &amp;#039;]&amp;lt;/a&amp;gt;&amp;#039;);&lt;br /&gt;
    var $descbox = $(&amp;#039;&amp;lt;div id=&amp;quot;wikidatadesc_descbox&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
                        .append($text)&lt;br /&gt;
                        .append(&amp;#039;&amp;amp;nbsp;&amp;#039;)&lt;br /&gt;
                        .append($saving)&lt;br /&gt;
                        .append($editlink);&lt;br /&gt;
    var $input = $(&amp;#039;&amp;lt;input class=&amp;quot;editbox&amp;quot; type=&amp;quot;text&amp;quot; placeHolder=&amp;quot;&amp;#039; + UI.PLACEHOLDER + &amp;#039;&amp;quot;&amp;gt;&amp;#039;);&lt;br /&gt;
    var $save = $(&amp;#039;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;option&amp;quot; id=&amp;quot;wikidatadesc_save&amp;quot;&amp;gt;[&amp;#039; + UI.SAVE + &amp;#039;]&amp;lt;/a&amp;gt;&amp;#039;);&lt;br /&gt;
    var $cancel = $(&amp;#039;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;option&amp;quot; id=&amp;quot;wikidatadesc_cancel&amp;quot;&amp;gt;[&amp;#039; + UI.CANCEL + &amp;#039;]&amp;lt;/a&amp;gt;&amp;#039;);&lt;br /&gt;
    var $editbox = $(&amp;#039;&amp;lt;div id=&amp;quot;wikidatadesc_editbox&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
                        .append($input)&lt;br /&gt;
                        .append(&amp;#039;&amp;lt;br&amp;gt;&amp;#039;)&lt;br /&gt;
                        .append($save)&lt;br /&gt;
                        .append($cancel);&lt;br /&gt;
    var CSS = &amp;#039;#wikidatadesc .text { color: var(--color-subtle,#54595d); font-size: medium; } #wikidatadesc .editbox { width: 100%; padding: 4px; border: none; border-bottom: 1px solid #ccc; box-sizing: border-box; } #wikidatadesc .editbox:focus { border-bottom: 1px solid #0645ad; } #wikidatadesc .option { font-size: smaller; }&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    var status = 0;         // 0 显示，1 编辑&lt;br /&gt;
    var loaded = false;&lt;br /&gt;
    var saving = false;&lt;br /&gt;
    var id = &amp;#039;&amp;#039;;&lt;br /&gt;
    var label = &amp;#039;&amp;#039;;&lt;br /&gt;
    var lastdesc = &amp;#039;&amp;#039;;&lt;br /&gt;
    var pagename = mw.config.get(&amp;#039;wgPageName&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    var loadCtl = function () {&lt;br /&gt;
        $(&amp;#039;body&amp;#039;).append($(&amp;#039;&amp;lt;style&amp;gt;&amp;#039;).text(CSS));&lt;br /&gt;
        $desc.append($descbox).append($editbox);&lt;br /&gt;
        $(&amp;quot;#siteSub&amp;quot;).hide().before($desc);&lt;br /&gt;
&lt;br /&gt;
        $editlink.click(function () {&lt;br /&gt;
            if (status !== 0 || saving) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            status = 1;&lt;br /&gt;
&lt;br /&gt;
            $descbox.hide();&lt;br /&gt;
            $editbox.show();&lt;br /&gt;
            $input.focus();&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $save.click(function () {&lt;br /&gt;
            if (status !== 1) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            status = 0;&lt;br /&gt;
            saving = true;&lt;br /&gt;
&lt;br /&gt;
            var newdesc = $input.val();&lt;br /&gt;
&lt;br /&gt;
            $text.text(newdesc);&lt;br /&gt;
            $saving.show();&lt;br /&gt;
            $editlink.hide();&lt;br /&gt;
            $descbox.show();&lt;br /&gt;
            $editbox.hide();&lt;br /&gt;
&lt;br /&gt;
            save(newdesc, function (success, error) {&lt;br /&gt;
                saving = false;&lt;br /&gt;
                $saving.hide();&lt;br /&gt;
                $editlink.show();&lt;br /&gt;
                if (success) {&lt;br /&gt;
                    lastdesc = newdesc;&lt;br /&gt;
                    mw.notify(UI.SUCCESS);&lt;br /&gt;
                } else {&lt;br /&gt;
                    $text.text(lastdesc);&lt;br /&gt;
                    mw.notify(UI.ERROR);&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $cancel.click(function () {&lt;br /&gt;
            if (status !== 1) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            status = 0;&lt;br /&gt;
            $input.val(lastdesc);&lt;br /&gt;
            $descbox.show();&lt;br /&gt;
            $editbox.hide();&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        $input.keydown(function (e) {&lt;br /&gt;
            if (e.which === 13) {&lt;br /&gt;
                $save.click();&lt;br /&gt;
            } else if (e.which === 27) {&lt;br /&gt;
                $cancel.click();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        loaded = true;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var show = function (desc) {&lt;br /&gt;
        if (!loaded) {&lt;br /&gt;
            loadCtl();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (desc !== null) {&lt;br /&gt;
            $text.text(desc);&lt;br /&gt;
            $input.val(desc);&lt;br /&gt;
            lastdesc = desc;&lt;br /&gt;
        } else {&lt;br /&gt;
            $text.text(&amp;#039;（&amp;#039; + UI.EMPTY + &amp;#039;）&amp;#039;);&lt;br /&gt;
            $input.val(&amp;#039;&amp;#039;);&lt;br /&gt;
            lastdesc = &amp;#039;&amp;#039;;&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var load = function (callback) {&lt;br /&gt;
        var ns = mw.config.get(&amp;#039;wgNamespaceNumber&amp;#039;);&lt;br /&gt;
        if (ns === 0) {&lt;br /&gt;
            var api = new mw.ForeignApi(&amp;#039;https://www.wikidata.org/w/api.php&amp;#039;);&lt;br /&gt;
            var res = &amp;#039;&amp;#039;;&lt;br /&gt;
            api.get( {&lt;br /&gt;
                action: &amp;#039;wbgetentities&amp;#039;,&lt;br /&gt;
                props:  &amp;#039;labels|descriptions&amp;#039;,&lt;br /&gt;
                sites:  &amp;#039;zhwiki&amp;#039;,&lt;br /&gt;
                titles: pagename,&lt;br /&gt;
                languages: &amp;#039;zh&amp;#039;&lt;br /&gt;
            }).done(function(data){&lt;br /&gt;
                $.each( data.entities, function( i, item ) {&lt;br /&gt;
                    if (i == &amp;#039;-1&amp;#039;) {&lt;br /&gt;
                        id = &amp;#039;NE&amp;#039;;&lt;br /&gt;
                        callback(null);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        id = item.id;&lt;br /&gt;
                        var labels = item.labels;&lt;br /&gt;
                        if (labels.zh) {&lt;br /&gt;
                            label = labels.zh.value;&lt;br /&gt;
                        } else {&lt;br /&gt;
                            label = &amp;#039;&amp;#039;;&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
                        var desc = item.descriptions;&lt;br /&gt;
                        if (desc.zh) {&lt;br /&gt;
                            res = desc.zh.value;&lt;br /&gt;
                            callback(res);&lt;br /&gt;
                        } else {&lt;br /&gt;
                            callback(null);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var save = function (newdesc, callback) {&lt;br /&gt;
        var api = new mw.ForeignApi(&amp;#039;https://www.wikidata.org/w/api.php&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        api.get( {&lt;br /&gt;
            action: &amp;#039;query&amp;#039;,&lt;br /&gt;
            meta:   &amp;#039;tokens&amp;#039;&lt;br /&gt;
        }).done(function (data) {&lt;br /&gt;
            if (id == &amp;#039;NE&amp;#039;) {&lt;br /&gt;
                var jdata = JSON.stringify({&lt;br /&gt;
				    labels: {zh: {language: &amp;#039;zh&amp;#039;, value: pagename}},&lt;br /&gt;
				    descriptions: {zh: {language: &amp;#039;zh&amp;#039;, value: newdesc}},&lt;br /&gt;
				    sitelinks: {zhwiki: {site: &amp;#039;zhwiki&amp;#039;, title: pagename}},&lt;br /&gt;
				});&lt;br /&gt;
                api.post({&lt;br /&gt;
                    action: &amp;#039;wbeditentity&amp;#039;,&lt;br /&gt;
                    &amp;#039;new&amp;#039;:    &amp;#039;item&amp;#039;,&lt;br /&gt;
                    token:  data.query.tokens.csrftoken,&lt;br /&gt;
                    data:   jdata&lt;br /&gt;
                }).done(function () {&lt;br /&gt;
                    callback(true);&lt;br /&gt;
                }).fail(function () {&lt;br /&gt;
                    callback(false);&lt;br /&gt;
                });&lt;br /&gt;
            } else {&lt;br /&gt;
                api.post({&lt;br /&gt;
                    action: &amp;#039;wbsetdescription&amp;#039;,&lt;br /&gt;
                    id: id,&lt;br /&gt;
                    token: data.query.tokens.csrftoken,&lt;br /&gt;
                    language: &amp;#039;zh&amp;#039;,&lt;br /&gt;
                    value: newdesc,&lt;br /&gt;
                }).done(function () {&lt;br /&gt;
                    if (label === &amp;#039;&amp;#039;) {&lt;br /&gt;
                        api.post({&lt;br /&gt;
                            action: &amp;#039;wbsetlabel&amp;#039;,&lt;br /&gt;
                            id: id,&lt;br /&gt;
                            token: data.query.tokens.csrftoken,&lt;br /&gt;
                            language: &amp;#039;zh&amp;#039;,&lt;br /&gt;
                            value: pagename,&lt;br /&gt;
                        }).always(function () {&lt;br /&gt;
                            callback(true);&lt;br /&gt;
                        });&lt;br /&gt;
                    } else {&lt;br /&gt;
                        callback(true);&lt;br /&gt;
                    }&lt;br /&gt;
                }).fail(function () {&lt;br /&gt;
                    callback(false);&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        }).fail(function () {&lt;br /&gt;
            callback(false);&lt;br /&gt;
        });&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    load(show);&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>imported&gt;Shizhao</name></author>
	</entry>
</feed>