Benutzer:Dietzel/lix.js

aus Wikipedia, der freien Enzyklopädie

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
// <nowiki>

window.lix = jQuery.extend({

	load : function() {
		jQuery( document ).ready( function () {
			mw.loader.using( [ "mediawiki.util", "jquery.ui" ], function () {
				mw.util.addPortletLink("p-tb", "javascript:lix.clickText();", "Lesbarkeitsindex", "tb-lix", "Lesbarkeitsindex", "", null);
				var gui = jQuery('<div/>', {id: 'tb-lix-gui', style: 'display: none; width: 300px; background-color: white; border: 1px solid gray; padding: 3px'});

				var hideButton = jQuery('<button/>', {id: 'tb-lix-hideButton', style: 'float: right; margin: 12px'});
				hideButton.button({ icons: {
					primary: 'ui-icon-circle-close'
				}, text: false
				}).click(function()
				{
					jQuery('#tb-lix-gui').hide();
			 	});

				var updateButton = jQuery('<button/>', {text: 'aktualisieren', id: 'tb-lix-updateButton', style: 'float: right'});
				updateButton.button({ icons: {
					primary: 'ui-icon-circle-check'
				}}).click(function()
				{
					lix.update();
			 	});
				gui.append(jQuery('<p/>').append(hideButton).append(updateButton));
				gui.append(jQuery('<p style="margin-top: 50px">Flesch Reading Ease<br/>0 = sehr schwer, 100 = sehr leicht<br/><span id="numFRE" style="font-weight: bold">0</span></p>').get(0));
				gui.append(jQuery('<p>Wiener Sachtextformel<br/>15 = sehr schwer, 4 = sehr leicht<br/><span id="numWSTF" style="font-weight: bold">0</span></p>').get(0));
				gui.append(jQuery('<p>Gunning-Fog-Index<br/>Anzahl Schuljahre, die zum Verstehen nötig sind<br/><span id="numGFI" style="font-weight: bold">0</span></p>').get(0));
				jQuery('#tb-lix').append(gui);
				lix.update();
			} );
		} );

	},

	clickText : function() {
		jQuery('#tb-lix-gui').toggle();
	},

	update : function() {
		var pageText = jQuery('#mw-content-text').text().toLowerCase();
		var sentenceCount = pageText.match(/((.+[\.|\?|\.|\:])|.+((\.)"))/g).length;
		var words = pageText.match(/\S+/g);
		var wordCount = words.length;
		var syllablesI = 0; var syllablesIII = 0; var lettersVI = 0;
		for (var i = 0; i < wordCount; i++) {
			j = 0;
			if (words[i].length > 5) {lettersVI++;}
			if (words[i].match(/[aeiouäöüy]{1,2}/g)) {j = words[i].match(/[aeiouäöüy]{1,2}/g).length;}
			if (j==1) {syllablesI++;}
			if (j>2) {syllablesIII++;}
		}
		var syllableCount = pageText.match(/[aeiouäöüy]{1,2}/g).length;
		var FRE = Math.round(180 - (wordCount / sentenceCount) - (syllableCount / wordCount * 58.5));
		var WSTF = (Math.round(0.1935 * (syllablesIII / wordCount * 100) + 0.1672 * (wordCount / sentenceCount) + 0.1297 * (lettersVI / wordCount * 100) - 0.0327 * (syllablesI / wordCount * 100) - 0.875)*10)/10;
		var GFI = Math.round(((wordCount / sentenceCount) + (syllablesIII / wordCount * 100)) * 4)/10;
//alert(sentenceCount + ', ' + wordCount + ', ' + syllableCount + ', ' + syllablesI + ', ' + syllablesIII + ', ' + lettersVI);
		jQuery('#numFRE').text(FRE);
		jQuery('#numWSTF').text(WSTF);
		jQuery('#numGFI').text(GFI);
	}

});

lix.load();

// </nowiki>