利用者:Naggy Nagumo/Edit Main.js
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
// <nowiki>
const EDIT = {
テキストボックスID: 'wpTextbox1',
要約欄ID: 'wpSummary',
コメント退避開始識別子: '◆◆◇◆',
コメント退避終了識別子: '◆◆◇◆',
退避コメントフォーマットを取得: function (i) {
return `${EDIT.コメント退避開始識別子}[${i}]${EDIT.コメント退避終了識別子}`;
},
importScripts: function () {
importScript('利用者:Naggy Nagumo/Edit Constants.js');
importScript('利用者:Naggy Nagumo/Edit_SortSection.js');
importScript('利用者:Naggy Nagumo/Edit_Formatter.js');
importScript('利用者:Naggy Nagumo/英語版ウィクショナリーからのコピーをサポート.js');
const agent = window.navigator.userAgent.toLowerCase();
const chrome = (agent.indexOf('chrome') !== -1) && (agent.indexOf('edge') === -1) && (agent.indexOf('opr') === -1);
if (chrome) {
importScript('利用者:Naggy Nagumo/翻訳並べ替え.js');
}
},
preloadText: function () {
if (window.preloadedText) {
return;
}
window.preloadedText = true;
const text = mw.util.getParamValue('preloadtext');
if (!text) {
return;
}
const textBox = $('#wpTextbox1');
if (!(textBox.val())) {
textBox.val(text);
}
},
言語名の漢字の読み方を推測: function (言語名) {
return 言語名
.replace(/北朝鮮/, 'きたちょうせん')
.replace(/中国/, 'ちゅうごく')
.replace(/韓国/, 'かんこく')
.replace(/朝鮮/, 'ちょうせん')
.replace(/^現代/, 'げんだい')
.replace(/^古典/, 'こてん')
.replace(/^北部/, 'ほくぶ')
.replace(/^南部/, 'なんぶ')
.replace(/^東部/, 'とうぶ')
.replace(/^西部/, 'せいぶ')
.replace(/^中部/, 'ちゅうぶ')
.replace(/^古/, 'こ')
.replace(/^北/, 'きた')
.replace(/^南/, 'みなみ')
.replace(/^東/, 'ひがし')
.replace(/^西/, 'にし')
.replace(/^中/, 'ちゅう')
.replace(/語$/, 'ご');
},
コメントを退避: function (ウィキテキスト, コメント) {
let コメント正規表現 = /<!--[\w\W]*?-->/g;
let 正規表現実行結果;
let i = 0;
while ((正規表現実行結果 = コメント正規表現.exec(ウィキテキスト)) !== null) {
// 全く同じコメントが複数あった場合、一つ目のデータを保持しておいて、すべて同じ番号でマークする。
console.log(正規表現実行結果);
コメント.push(正規表現実行結果[0]);
ウィキテキスト = ウィキテキスト.split(正規表現実行結果[0]).join(this.退避コメントフォーマットを取得(i));
i++;
}
return ウィキテキスト;
},
コメントを戻す: function (ウィキテキスト, コメント) {
Object.keys(コメント).forEach(function (i) {
ウィキテキスト = ウィキテキスト.split(EDIT.退避コメントフォーマットを取得(i)).join(コメント[i]);
});
return ウィキテキスト;
},
退避済みコメントを除去: function (ウィキテキスト) {
let コメント正規表現 = new RegExp(`${EDIT.コメント退避開始識別子}\\[\\d+\\]${EDIT.コメント退避終了識別子}`, 'g');
return ウィキテキスト.replace(コメント正規表現, '');
},
コメントを除去: function (ウィキテキスト) {
let コメント正規表現 = /<!--[\w\W]*?-->/g;
let 正規表現実行結果;
while ((正規表現実行結果 = コメント正規表現.exec(ウィキテキスト)) !== null) {
console.log(正規表現実行結果);
ウィキテキスト = ウィキテキスト.split(正規表現実行結果[0]).join('');
}
return ウィキテキスト;
},
要約欄にメッセージを挿入: function (メッセージ) {
let 要約 = $('#' + EDIT.要約欄ID).val();
if (要約.indexOf(メッセージ) === -1) {
$('#' + EDIT.要約欄ID).val(要約 + メッセージ);
}
}
};
EDIT.importScripts();
$(EDIT.preloadText);
// </nowiki>