미디어위키:Common.js
보이기
참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function () {
// 검색 결과 페이지(Special:Search)가 아니면 종료
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') {
return;
}
var api = new mw.Api();
var titles = [];
// 검색 결과에서 문서 제목 수집
$('.mw-search-result-heading a').each(function () {
var t = $(this).attr('title');
if (t) {
titles.push(t);
}
});
if (!titles.length) {
return;
}
// 한 번에 displaytitle(pageprops) 조회
api.get({
action: 'query',
titles: titles.join('|'),
prop: 'pageprops',
ppprop: 'displaytitle',
formatversion: 2
}).done(function (data) {
if (!data.query || !data.query.pages) {
return;
}
var map = {};
data.query.pages.forEach(function (p) {
if (p.pageprops && p.pageprops.displaytitle) {
map[p.title] = p.pageprops.displaytitle;
}
});
// 검색 결과 제목을 displaytitle로 교체
$('.mw-search-result-heading a').each(function () {
var $a = $(this);
var t = $a.attr('title');
var dt = map[t];
if (dt) {
$a.html(dt); // 링크 텍스트만 교체 (URL은 그대로)
}
});
});
});