Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// Alter anzeigen
var mw = mw ?? null;
(function() {
var metadata = $('#Vorlage_Personendaten');
if ($('#jw-age').length==0 && metadata.length>0) {
$('head').append(
'<link href="/w/index.php?title=Benutzer:Wiegels/css/indicator.css&action=raw&ctype=text/css" rel="stylesheet" type="text/css"/>'+
'<link href="/w/index.php?title=Benutzer:Wiegels/css/age.css&action=raw&ctype=text/css" rel="stylesheet" type="text/css"/>'
);
metadata = metadata.clone().attr('id', '').addClass('jw-indicator');
$('.mw-indicators').append('<div id="jw-age" class="jw-indicator"></div>').append(metadata);
var dates = [];
var intro = $('.mw-parser-output > p').
filter((index, element) =>
$(element).html().replace(/<span style="display:none;">.*?<\/span>/, '').replace(/\s/g, '')!='' &&
$(element).text().replace(/\s/g, '')!=''
).
first().text().replace(/\s+/g, ' ').replace(/\[[^\]]+\]/g, '');
var months = mw.config.get('wgMonthNames').join('|').replace(/(Januar)/, 'Jänner|$1');
var matches = [
metadata.text().match(/GEBURTSDATUM\n\n([^\n]+)/),
metadata.text().match(/STERBEDATUM\n\n([^\n]+)/)
];
$(matches).each(function(index, match) {
if (match) {
var date = match[1].match(RegExp('^.*?(\\d{1,2}\. |)('+months+'|) ?(\\d{4})$'));
if (date) {
if (
!intro.replace(/(\(.*?)\(.*?\)(.*?\))/g, '$1$2').replace(/\s+/g, ' ').
match(RegExp((date[1]+date[2].replace(/(Januar)/, '($1|Jänner)')).replace(/ $/, '')+' '+date[3]))
) {
metadata.html(metadata.html().
replace(RegExp('('+['GEBURTSDATUM', 'STERBEDATUM'][index]+'\\n<\\/td>\\n<td>)([^<]+)'), '$1<mark>$2</mark>'
));
}
dates[index] = [
0,
parseInt('0'+date[1]),
Math.max(months.replace(RegExp(date[2]+'.*$'), '').replace(/[^|]/g, '').length-1, 0),
parseInt(date[3])
];
}
}
});
var date0 = dates[0];
var today = new Date();
var date1 = dates[1] || [0, today.getDate(), today.getMonth()+1, today.getFullYear()];
var age = date0 ?
(Math.max(date0[2], date1[2])>12 || Math.min(date0[1], date1[1])==0 ? '≈' : '')+
(date1[3]-date0[3]-(date1[2]*32+date1[1]<date0[2]*32+date0[1] ? 1 : 0)) :
null;
var cats = '|'+mw.config.get('wgCategories').join('|')+'|';
$('#jw-age').append(
'<span><a href="#" accesskey="b" title="Personendaten umschalten [Alt+Umschalt+b]">'+
(age ? age+ ' Jahr'+(age.replace('≈', '')!=1 ? 'e' : '')+' alt' : 'Alter unbekannt')+'</a></span>'
);
$('#jw-age').addClass(
(cats.match(/\|Frau\|/) ? 'jw-female' : cats.match(/\|Mann\|/) ? 'jw-male' : '')+
(dates[1] ? ' jw-died' : date0[2]+'-'+date0[1]==date1[2]+'-'+date1[1] ? ' jw-birthday' : '')
);
$('#jw-age a').on('click', function(event) {
event.preventDefault();
metadata.toggle();
});
metadata.filter(':has(mark)').on('mouseenter mouseleave', function(event) {
$(this).find('tr:not(:has(mark))').toggle(event.type=='mouseenter');
});
if (metadata.html().match(/<mark>/)!=null) {
metadata.toggle().find('tr:not(:has(mark))').toggle();
}
}
})();