跳转到内容

MediaWiki:Gadget-edit0.js:修订间差异

勤求古训,博采众方
无编辑摘要
无编辑摘要
第1行: 第1行:
// [[en:MediaWiki:Gadget-edittop.js]]
// [[en:MediaWiki:Gadget-edittop.js]]
// **********************************************************************
// **                ***WARNING GLOBAL GADGET FILE***                **
// **            changes to this file affect many users.            **
// **          please discuss on the talk page before editing        **
// **                                                                  **
// **********************************************************************
// Simplified and optimized version for Chinese (zh) locales.


(function() {
(function() {
     'use strict';
     'use strict';


    // 确保 mediawiki.util 和 jquery 模块加载完成后再执行
     mw.loader.using(['mediawiki.util', 'jquery']).then(function() {
     mw.loader.using(['mediawiki.util', 'jquery']).then(function() {
        // 一次性获取所有需要的配置变量
         const config = mw.config.get([
         const config = mw.config.get([
             'wgAction',
             'wgAction',
第12行: 第22行:
         ]);
         ]);


        // 仅在查看或清除缓存页面,且为内容命名空间时运行
         if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) {
         if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) {
             return;
             return;
         }
         }


        // 定义常量
         const EDIT_SUMMARY = '/* top */ ';
         const EDIT_SUMMARY = '/* top */ ';
         const TITLES = {
         const TITLES = {
第23行: 第35行:
         };
         };


        // DOM 加载完成后执行
         $(function() {
         $(function() {
             const userLang = config.wgUserLanguage;
             const userLang = config.wgUserLanguage;
            // 根据用户语言获取对应的编辑链接文本
             const editTitle = TITLES[userLang] || '编辑首段';
             const editTitle = TITLES[userLang] || '编辑首段';


            // 获取内容区域和第一个编辑区块
             const $content = $('#content, #mw_content').first();
             const $content = $('#content, #mw_content').first();
             const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first');
             const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first');


            // 如果找不到编辑区块,则停止执行
             if (!$firstEditSection.length) {
             if (!$firstEditSection.length) {
                 return;
                 return;
             }
             }


            // 复制编辑区块并添加到标题后面
             const $clonedEditSection = $firstEditSection.clone();
             const $clonedEditSection = $firstEditSection.clone();
             $('#mw_header h1, #content h1').first().append($clonedEditSection);
             $('#mw_header h1, #content h1').first().append($clonedEditSection);


            // 修改复制出的编辑链接的文本和 href 属性
             $clonedEditSection.find('a').text(editTitle).each(function() {
             $clonedEditSection.find('a').text(editTitle).each(function() {
                 const $link = $(this);
                 const $link = $(this);
第43行: 第61行:


                 if (!/&(ve|)section=T/.test(originalHref)) {
                 if (!/&(ve|)section=T/.test(originalHref)) {
                     newHref = originalHref.replace(/&(ve|)section=\d+/, `&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`);
                    // 非嵌入页面:替换 section 参数
                     newHref = originalHref.replace(
                        /&(ve|)section=\d+/,
                        `&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`
                    );
                 } else if (/&vesection=/.test(originalHref)) {
                 } else if (/&vesection=/.test(originalHref)) {
                    // 嵌入页面,使用VE编辑器:构建新URL
                     newHref = mw.util.getUrl(config.wgPageName, {
                     newHref = mw.util.getUrl(config.wgPageName, {
                         veaction: 'edit',
                         veaction: 'edit',
第51行: 第74行:
                     });
                     });
                 } else {
                 } else {
                    // 嵌入页面,使用传统编辑器:构建新URL
                     newHref = mw.util.getUrl(config.wgPageName, {
                     newHref = mw.util.getUrl(config.wgPageName, {
                         action: 'edit',
                         action: 'edit',

2025年11月12日 (三) 11:40的版本

// [[en:MediaWiki:Gadget-edittop.js]]

// **********************************************************************
// **                 ***WARNING GLOBAL GADGET FILE***                 **
// **             changes to this file affect many users.             **
// **           please discuss on the talk page before editing         **
// **                                                                  **
// **********************************************************************
// Simplified and optimized version for Chinese (zh) locales.

(function() {
    'use strict';

    // 确保 mediawiki.util 和 jquery 模块加载完成后再执行
    mw.loader.using(['mediawiki.util', 'jquery']).then(function() {
        // 一次性获取所有需要的配置变量
        const config = mw.config.get([
            'wgAction',
            'wgNamespaceNumber',
            'wgUserLanguage',
            'wgPageName'
        ]);

        // 仅在查看或清除缓存页面,且为内容命名空间时运行
        if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) {
            return;
        }

        // 定义常量
        const EDIT_SUMMARY = '/* top */ ';
        const TITLES = {
            'zh': '编辑首段',
            'zh-hans': '编辑首段',
            'zh-hant': '編輯首段'
        };

        // DOM 加载完成后执行
        $(function() {
            const userLang = config.wgUserLanguage;
            // 根据用户语言获取对应的编辑链接文本
            const editTitle = TITLES[userLang] || '编辑首段';

            // 获取内容区域和第一个编辑区块
            const $content = $('#content, #mw_content').first();
            const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first');

            // 如果找不到编辑区块,则停止执行
            if (!$firstEditSection.length) {
                return;
            }

            // 复制编辑区块并添加到标题后面
            const $clonedEditSection = $firstEditSection.clone();
            $('#mw_header h1, #content h1').first().append($clonedEditSection);

            // 修改复制出的编辑链接的文本和 href 属性
            $clonedEditSection.find('a').text(editTitle).each(function() {
                const $link = $(this);
                const originalHref = $link.attr('href') || '';
                let newHref;

                if (!/&(ve|)section=T/.test(originalHref)) {
                    // 非嵌入页面:替换 section 参数
                    newHref = originalHref.replace(
                        /&(ve|)section=\d+/,
                        `&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`
                    );
                } else if (/&vesection=/.test(originalHref)) {
                    // 嵌入页面,使用VE编辑器:构建新URL
                    newHref = mw.util.getUrl(config.wgPageName, {
                        veaction: 'edit',
                        vesection: 0,
                        summary: EDIT_SUMMARY
                    });
                } else {
                    // 嵌入页面,使用传统编辑器:构建新URL
                    newHref = mw.util.getUrl(config.wgPageName, {
                        action: 'edit',
                        section: 0,
                        summary: EDIT_SUMMARY
                    });
                }

                $link.attr('href', newHref);
            });
        });
    });
})();