利用者:Cpro/sectionUtil.js
表示
< 利用者:Cpro
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
mw.loader.using(['mediawiki.util', 'oojs-ui-core', 'oojs-ui-widgets']).done(function() {
var SectionButton = (function() {
var $buttonContainer = $('<div id="sectionutil-buttoncontainer"></div>')
.css({
position: 'absolute',
font: '1em sans-serif',
left: '-1em',
});
var $sectionButton = $('<a href="#">§</a>').appendTo($buttonContainer);
var infoPopup;
function show(heading) {
$(heading).prepend($buttonContainer);
$buttonContainer.show();
}
function hide() {
$buttonContainer.hide();
}
function setup() {
$('h2,h3,h4,h5,h6').has('.mw-headline').on({
mouseenter: function(e) {
show(e.target);
},
mouseleave: function(e) {
hide();
if(infoPopup)
infoPopup.toggle(false);
}
});
$sectionButton.on('click', function(e) {
var currentHeadline = $('.mw-headline', $(e.target).closest('h2,h3,h4,h5,h6'));
var info = getSectionInfo(currentHeadline);
var $content = $('<ul></ul>')
.append('<li>' + info.wikiLinkText + '</li>');
infoPopup = new OO.ui.PopupWidget({
$content: $content,
padded: true,
align: 'forwards'
});
$('body').append(infoPopup.$element);
infoPopup.toggle(true);
e.preventDefault();
});
}
return {
setup: setup
};
})();
var conf = mw.config.get([
'wgServer',
'wgPageName'
]);
var SITE_URI = window.location.protocol + conf.wgServer;
var PAGE_URI = SITE_URI + mw.util.getUrl();
function getSectionInfo(mwHeadline) {
var sectionTitle = $(mwHeadline).text();
var fragment = $(mwHeadline).attr('id');
var fullUri = PAGE_URI + '#' + fragment;
var wikiLinkText = '[[' + conf.wgPageName + '#' + sectionTitle + ']]';
// transcluded
var transcluded = {};
var transcludedEditLinkUri = $('a[href*="§ion=T-"]', $(mwHeadline).parent()).attr('href');
if(transcludedEditLinkUri) {
var transcludedTitle = (new mw.Uri(transcludedEditLinkUri)).query.title;
transcluded = {
title: transcludedTitle,
fullUri: SITE_URI + mw.util.getUrl(transcludedTitle)
};
}
return {
sectionTitle: sectionTitle,
fullUri: fullUri,
wikiLinkText: wikiLinkText,
transcluded: transcluded
};
}
$(function() {
SectionButton.setup();
});
});