跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
分类索引
最近更改
随便看看
灵兰秘典
捐助本站
帮助
帮助
联系我们
关于本站
MediaWiki帮助
中医百科
搜索
搜索
外观
登录
个人工具
登录
查看“︁MediaWiki:Gadget-defaultsummaries.js”︁的源代码
系统消息
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
清除缓存
常规
链入页面
相关更改
特殊页面
页面信息
Cargo数据
短URL
外观
移至侧栏
隐藏
←
MediaWiki:Gadget-defaultsummaries.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
(() => { 'use strict'; const SUMMARY_OPTIONS = [ '新条目', '修饰语句', '修正笔误', '内容扩充', '排版(调整格式)', '来源(增加/调整参考资料)', '内部链接(增加/调整)', '分类(增加/调整)', '消歧义', '维基化(适配维基格式)', '维护清理' ]; // 样式调整:移除圆角,贴近MediaWiki原生风格(方角、浅灰背景、无阴影) const STYLES = { dropdownContainer: { width: '100%', margin: '6px 0', // 原生控件常见间距 fontSize: '0.9em' // 匹配原生文字大小 }, dropdown: ` .summary-helper-dropdown .oo-ui-dropdownWidget-handle { border: 1px solid #aaa; /* 原生控件边框色 */ padding: 3px 8px; /* 紧凑内边距,贴近原生 */ background: #f8f9fa; /* 原生浅灰背景 */ transition: border-color 0.2s; /* 仅保留边框过渡 */ } .summary-helper-dropdown .oo-ui-dropdownWidget-handle:hover { border-color: #777; /* hover时边框加深,原生常见效果 */ background: #f0f0f0; } .summary-helper-dropdown .oo-ui-menuOptionWidget { padding: 4px 10px; /* 原生选项间距 */ color: #000; /* 原生文字色 */ } .summary-helper-dropdown .oo-ui-menuOptionWidget:hover { background: #e5f1ff; /* 维基原生hover浅蓝 */ color: #0645ad; /* 维基链接蓝,保持一致性 */ } .summary-helper-dropdown .oo-ui-menuOptionWidget.oo-ui-selected { background: #c8e4fd; /* 选中时稍深的蓝色,贴近原生选中态 */ } ` }; class SummaryHelper { constructor() { this.summaryBox = $('#wpSummary'); this.initialized = false; this.init(); } init() { if (this.initialized) return; this.injectStyles(); this.setupVisualEditorHook(); this.setupWikiEditor(); this.initialized = true; } injectStyles() { const style = document.createElement('style'); style.textContent = STYLES.dropdown; document.head.appendChild(style); } setupVisualEditorHook() { mw.hook('ve.saveDialog.stateChanged').add(() => { if ($('body').hasClass('has-summary-dropdowns')) return; const target = ve.init.target; const $saveOptions = target.saveDialog.$saveOptions; this.summaryBox = target.saveDialog.editSummaryInput.$input; if (!$saveOptions.length) return; $('body').addClass('has-summary-dropdowns'); $saveOptions.before(this.createDropdown()); }); } setupWikiEditor() { Promise.all([ mw.loader.using('oojs-ui-core'), $.ready ]).then(() => { const $editCheckboxes = $('.editCheckboxes'); if (!$editCheckboxes.length) return; $editCheckboxes.before( this.createDropdown().css(STYLES.dropdownContainer) ); }); } createDropdown() { const dropdown = new OO.ui.DropdownWidget({ label: '快捷摘要', // 更贴近原生控件的标题 classes: ['summary-helper-dropdown'] }); dropdown.menu.on('select', this.handleSummarySelect.bind(this)); this.addOptionsToDropdown(dropdown, SUMMARY_OPTIONS); return dropdown.$element; } addOptionsToDropdown(dropdown, optionTexts) { dropdown.menu.addItems( optionTexts.map(text => new OO.ui.MenuOptionWidget({ label: text })) ); } // 保留轻量反馈,避免突兀 handleSummarySelect(option) { const originalValue = this.summaryBox.val(); const newSummary = originalValue.length && !originalValue.endsWith(' ') ? `${originalValue} ${option.getLabel()}` : originalValue + option.getLabel(); this.summaryBox.val(newSummary).trigger('change'); // 弱化反馈:仅轻微高亮边框,更贴近原生 this.summaryBox.css('border-color', '#72b3ff'); setTimeout(() => { this.summaryBox.css('border-color', ''); }, 400); } } $(() => new SummaryHelper()); })();
返回
MediaWiki:Gadget-defaultsummaries.js
。