MediaWiki talk:Gadget-SimplifyRefNotesTag.js
添加话题外观
Dabao qian在话题““参注分组简化显示”小工具似乎坏了”中的最新留言:12天前
编辑请求:简化
[编辑]{{editprotected}}
用 jq 选择器整理了一下,在User:Artoria2e5/gadget-simp-refnote-tags.js。注意我放弃 gsub 而用稍精确的匹配,因此改成放在 mergeRefBracket 之前运行了。
看了一下 MediaWiki:Gadget-MergeRefBracket.js,似乎对内部格式并无要求,所以改变运行顺序应该没事。(代码本身也是史前还没有选择器——连 JQ 都没有——的时代的味道就是了)(并且 Array 还没 join?) --Artoria2e5 更改·工具 2016年5月21日 (六) 00:32 (UTC)
- 原来就没坏?未见必要。--Jimmy Xu 论 2016年5月21日 (六) 00:59 (UTC)
編輯請求 2026-10-10
[编辑]見Wikipedia:互助客栈/技术#“参注分组简化显示”小工具似乎坏了,因應原本的註腳元素變成了<span class="cite-bracket">[</span>參 1<span class="cite-bracket">]</span>格式進行修復。--象象🐘(留言|貢獻) 2026年10月10日 (六) 15:02 (UTC)
- 之前做过另一个版本,比这个要更干净些,只暴露
load_Merge_Simplify这一个接口且用完即销毁,其他全部放在闭包内。
代码
|
|---|
(function ($) {
'use strict';
// 数字按顺序转换英文字母
function num2alp(n) {
let chk = parseInt(n, 10);
if (isNaN(chk)) return null;
let digit = [];
let result = '';
while (chk > 0) {
digit.unshift(chk % 26);
chk = Math.floor(chk / 26);
}
for (let j = digit.length; j-- > 0; ) {
if (digit[j] <= 0) {
if (j > 0) {
digit[j] += 26;
digit[j - 1] -= 1;
} else {
break;
}
}
result = String.fromCharCode('a'.charCodeAt(0) + (digit[j] - 1)) + result;
}
return result;
}
// 将各上标简化开始
$('sup.reference[id^="cite_ref"] > a').each(function () {
const $a = $(this);
const rawText = $a.text();
const noteMatch = rawText.match(/[註注]\s(\d+)/);
if (noteMatch && noteMatch[1]) {
let num = parseInt(noteMatch[1], 10);
let alp = num2alp(num);
$a.contents().each(function () {
if (this.nodeType !== 3) return;
let val = this.nodeValue;
if (/[註注]\s\d+/.test(val)) {
this.nodeValue = val.replace(/[註注]\s\d+/, alp);
} else if (/\d+/.test(val) && /[註注]/.test(rawText)) {
this.nodeValue = val.replace(/\d+/, alp);
}
});
return;
}
if (/[參参]/.test(rawText)) {
$a.contents().each(function () {
if (this.nodeType === 3 && /[參参]/.test(this.nodeValue)) {
this.nodeValue = this.nodeValue.replace(/[參参]\s/g, '');
}
});
}
});
// 将各上标简化结束
// 将备注列表项目用英文字母排序开始
$("#references-NoteFoot > ol.references").css('list-style-type', 'lower-alpha');
// 将备注列表项目用英文字母排序结束
})(jQuery);
|
- --Dabao qian℡ 2026年10月10日 (六) 16:23 (UTC)
- 考慮到load_Merge_Simplify是為了確保MediaWiki:Gadget-MergeRefBracket.js會在此小工具前載入,或許要不然同時暴露load_Merge_Simplify和simplifyRefNotesTag要不然都不暴露比較好。 象象🐘(留言|貢獻) 2026年10月10日 (六) 16:28 (UTC)
- 合并角标括号似乎现在没再用到了。--Dabao qian℡ 2026年10月10日 (六) 16:31 (UTC)
- 那就直接用simplifyRefNotesTag,去掉load_Merge_Simplify 象象🐘(留言|貢獻) 2026年10月10日 (六) 16:32 (UTC)
- MergeRefBracket已被移除,原因见这笔编辑。如果没有计划复活它的话,直接引用上方的代码应该不会有问题。--Dabao qian℡ 2026年10月10日 (六) 16:40 (UTC)
- 那就直接用simplifyRefNotesTag,去掉load_Merge_Simplify 象象🐘(留言|貢獻) 2026年10月10日 (六) 16:32 (UTC)
- 合并角标括号似乎现在没再用到了。--Dabao qian℡ 2026年10月10日 (六) 16:31 (UTC)
- 考慮到load_Merge_Simplify是為了確保MediaWiki:Gadget-MergeRefBracket.js會在此小工具前載入,或許要不然同時暴露load_Merge_Simplify和simplifyRefNotesTag要不然都不暴露比較好。 象象🐘(留言|貢獻) 2026年10月10日 (六) 16:28 (UTC)
完成,先基於象象君的這個版本進行修復,因為接近原先的DOM版本。改為jQuery版本差異較大,我想可能需要更多時間試驗。--街燈電箱150號 開箱維修 抄錶 檢驗證明 2026年10月10日 (六) 23:23 (UTC)
“参注分组简化显示”小工具似乎坏了
[编辑]RT,都已经坏了几年了,注脚无法自动转换,只有{{NoteFoot}}的列表会自动转换,就没人能修吗?--Dabao qian℡ 2026年8月22日 (六) 19:38 (UTC)
- 效果長什麼樣子?—— Eric Liu 創造は生命(留言・留名・學生會) 2026年9月28日 (一) 10:53 (UTC)
- 完全没有作用,{{NoteTag}}产生的角标仍然显示为[注 1][注 2][注 3]的形式,而不是预期的[a][b][c]。--Dabao qian℡ 2026年10月1日 (四) 08:26 (UTC)
- 看了一下,应该是Extension:Cite输出的DOM结构变了,所以小工具直接坏掉了。--Dabao qian℡ 2026年10月1日 (四) 15:37 (UTC)
- 或許可以先照Special:Diff/17516606修{{NoteTag}}? 象象🐘(留言|貢獻) 2026年10月10日 (六) 14:41 (UTC)
- @Dabao qian:修好了:User:臺灣象象/Gadget-SimplifyRefNotesTag.js 象象🐘(留言|貢獻) 2026年10月10日 (六) 14:59 (UTC)
- MediaWiki_talk:Gadget-SimplifyRefNotesTag.js#編輯請求_2026-10-10 象象🐘(留言|貢獻) 2026年10月10日 (六) 15:03 (UTC)
- 另外我認為或許可以將現有以id判別的方式改成用class? 象象🐘(留言|貢獻) 2026年10月10日 (六) 15:18 (UTC)
已修复,但希望如遇此情況至少通知原作者。--街燈電箱150號 開箱維修 抄錶 檢驗證明 2026年10月10日 (六) 23:33 (UTC)
- 移除{{NoteTag}}的
id属性是刻意为之,因为{{NoteFoot}}正常情况下一页只能用一次,所以用id没什么大问题;但是{{NoteTag}}一页要反复多次使用,这种情况下用id就会触发Lint错误。--Dabao qian℡ 2026年10月23日 (五) 22:39 (UTC)
- 移除{{NoteTag}}的