MediaWiki討論:Gadget-SimplifyRefNotesTag.js
新增話題外觀
由Dabao qian在話題「參注分組簡化顯示」小工具似乎壞了上作出的最新留言:17 天前
編輯請求:簡化
[編輯]{{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}}的